python模塊簡單說明:
xlsxwriter:負責寫入數據
xlrd:負責讀取數據
xlsxwriter 官方文檔:http://xlsxwriter.readthedocs.org
本實例是剛寫出來的,目前比較粗糙。
寫這實例主要是結合平時工作內容,把手動操作改成自動化。
平時線上更新游戲版本號后,需要把版本號記錄到一個excel文件中,每次更新都要修改,比較蛋疼,雖然版本號在數據庫中也有存在,但還是要往excel記錄一份。
這些代碼目前只是測試代碼,從原excel中讀取所有內容,然后修改,再重成新的excel(其實我代碼中並沒有修改,只是把內容讀出來,再寫回去,唯一的就是做了些表格屬性設定吧,其實我放到運維工具上后,就會結合平台,及數據庫,去修改要修改的數據)。
- #coding=utf-8
- #/usr/bin/env python
- 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) # 打開fname文件
- data.sheet_names() # 獲取xls文件中所有sheet的名稱
- table = data.sheet_by_index(0) # 通過索引獲取xls文件第0個sheet
- nrows = table.nrows # 獲取table工作表總行數
- ncols = table.ncols # 獲取table工作表總列數
- workbook = xlsxwriter.Workbook('zm6.xlsx') #創建一個excel文件
- worksheet = workbook.add_worksheet() #創建一個工作表對象
- worksheet.set_column(0,ncols,22) #設定列的寬度為22像素
- #border:邊框,align:對齊方式,bg_color:背景顏色,font_size:字體大小,bold:字體加粗
- 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) #設定第i行單元格屬性,高度為22像素,行索引從0開始
- for j in xrange(ncols):
- cell_value = table.cell_value(i,j,) #獲取第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文件內容:
