教你用Python寫excel
阿新 • • 發佈:2018-12-22
質量、速度、廉價,選擇其中兩個
在書寫這些程式碼之前你應該安裝一個庫 xlsxwriter
Xlsx是python用來構造xlsx檔案的模組,可以向excel2007+中寫text,numbers,formulas 公式以及hyperlinks超連結
可以完成xlsx檔案的自動化構造,包括:合併單元格,製作excel圖表等功能
workbook = xlsxwriter.Workbook('test.xlsx')
使用這段程式碼建立一個指定路徑名稱的xlsx檔案
worksheet = workbook.add_worksheet()
向其中新增一張表
expenses = ( ['Rent', 1000], ['Gas', 100], ['Food', 300], ['Gym', 50], )
定義表內顯示的資料,我這裡沒有寫表頭
for item, cost in (expenses):
worksheet.write(row, col, item)
worksheet.write(row, col + 1, cost)
row += 1
然後迴圈寫入資料,write第一個引數是所在行,第二個引數是所在列,第三個引數是要寫入的資料
最後close()方法關閉檔案,附一份完整程式碼
import xlsxwriter # 建立新表格 workbook = xlsxwriter.Workbook('test.xlsx') worksheet = workbook.add_worksheet() # 表格的內容 expenses = ( ['Rent', 1000], ['Gas', 100], ['Food', 300], ['Gym', 50], ) # 想象表格的佈局,座標 0,0 對應 A,1 row = 0 col = 0 # 填充每個單元格 for item, cost in (expenses): worksheet.write(row, col, item) worksheet.write(row, col + 1, cost) row += 1 workbook.close()
如果你要寫少量的資料你可以像上面這樣寫,但是如果你要寫一個很多列的資料這些寫就太Low了,xlsxwriter給我們提供了一個方法交write_row,呼叫該方法可以一次寫一行資料,不過該方法的定位方式和write不一樣,它的定位方式和你開啟excel時點選一個小格的定位方式相同,最左上角的是A1,旁邊的叫B1,下面的叫A2,我們來寫一個例子,順便給加上各列標題
import xlsxwriter def save_excel(fin_result, tag_name, file_name): book = xlsxwriter.Workbook(r'%s.xlsx' % file_name) tmp = book.add_worksheet() row_num = len(fin_result) for i in range(1, row_num+2): if i == 1: tag_pos = 'A%s' % i tmp.write_row(tag_pos, tag_name) else: con_pos = 'A%s' % i content = fin_result[i-2] # -2是因為當i=2時下標應為0 tmp.write_row(con_pos, content) book.close() # 表格的內容 title_list=["第一列","第二列","第三列"] text_list=[ ["111","222","333"], ["444","555","666"], ["777","888","999"] ] save_excel(text_list,title_list,"test")