python模块简单说明:
xlsxwriter:负责写入数据
xlrd:负责读取数据
xlsxwriter 官方文档:http://xlsxwriter.readthedocs.org
本实例是刚写出来的,目前比较粗糙。
写这实例主要是结合平时工作内容,把手动操作改成自动化。
平时线上更新游戏版本号后,需要把版本号记录到一个excel文件中,每次更新都要修改,比较蛋疼,虽然版本号在数据库中也有存在,但还是要往excel记录一份。
这些代码目前只是测试代码,从原excel中读取所有内容,然后修改,再重成新的excel(其实我代码中并没有修改,只是把内容读出来,再写回去,唯一的就是做了些表格属性设定吧,其实我放到运维工具上后,就会结合平台,及数据库,去修改要修改的数据)。
-
-
- import xlsxwriter,xlrd
- import sys,os.path
-
- fname = 'zm6.xlsx'
- if not os.path.isfile(fname):
- print u'文件路径不存在'
- sys.exit()
- data = xlrd.open_workbook(fname)
- data.sheet_names()
- table = data.sheet_by_index(0)
- nrows = table.nrows
- ncols = table.ncols
-
- workbook = xlsxwriter.Workbook('zm6.xlsx')
- worksheet = workbook.add_worksheet()
- worksheet.set_column(0,ncols,22)
-
-
- top = workbook.add_format({'border':1,'align':'center','bg_color':'cccccc','font_size':13,'bold':True})
- green = workbook.add_format({'border':1,'align':'center','bg_color':'green','font_size':12})
- yellow = workbook.add_format({'border':1,'bg_color':'yellow','font_size':12})
- red = workbook.add_format({'border':1,'align':'center','bg_color':'red','font_size':12})
- blank = workbook.add_format({'border':1})
-
- for i in xrange(nrows):
- worksheet.set_row(i,22)
- for j in xrange(ncols):
- cell_value = table.cell_value(i,j,)
- if i == 0:
- format = top
- elif i == 3 or i == 6:
- format = blank
- else:
- if j == 0 or j == 2:
- format = yellow
- elif j == 1:
- format = red
- elif j == 3:
- format = green
- green.set_num_format('yyyy-mm-dd')
- worksheet.write(i,j,cell_value,format)
- format.set_align('vcenter')
- workbook.close()
看完代码,再来看我修改之前,即原始的excel文件内容:
python xlsxwriter修改之前
读取内容后,新生成的excel文件内容:
python xlsxwriter修改之后
这些代码格式属性,是因为我特意根据原来的文件格式制定的,所以在代码中,能看到好几个if语句。
正因为这样,看到的前后图对比,很相像。