Python實現數據寫入Excel的三種模塊
作者:佚名
本文說明如何使用 xlsxwriter、pandas、openpyxl 三個庫來實現數據寫入 Excel。
寫入后的格式如下圖所示:
以下為數據用例:
- import xlsxwriter as xw
- import pandas as pd
- import openpyxl as op
- "-------------數據用例-------------"
- orderIds = [1,2,3]
- items = ['A','B','C']
- myData = [10,20,30]
- testData = [orderIds,items,myData]
- filename1 = '測試1.xlsx'
- filename2 = '測試2.xlsx'
- filename3 = '測試3.xlsx'
- "--------------執行----------------"
- xw_toexcel(testData,filename1)
- pd_toexcel(testData,filename2)
- op_toexcel(testData,filename3)
下面開始分別介紹三種方法:
01 xlsxwriter
- def xw_toexcel(data,filename): # xlsxwriter庫儲存數據到excel
- workbook = xw.Workbook(filename) # 創建工作簿
- worksheet1 = workbook.add_worksheet("sheet1") # 創建子表
- worksheet1.activate() # 激活表
- title = ['序號','項目','數據'] # 設置表頭
- worksheet1.write_row('A1',title) # 從A1單元格開始寫入表頭
- i = 2 # 從第二行開始寫入數據
- for j in range(len(data)):
- insertData = [data[0][j],data[1][j],data[2][j]]
- row = 'A' + str(i)
- worksheet1.write_row(row, insertData)
- i += 1
- workbook.close() # 關閉表
02 pandas
- def pd_toexcel(data,filename): # pandas庫儲存數據到excel
- dfData = { # 用字典設置DataFrame所需數據
- '序號':data[0],
- '項目':data[1],
- '數據':data[2]
- }
- df = pd.DataFrame(dfData) # 創建DataFrame
- df.to_excel(filename,index=False) # 存表,去除原始索引列(0,1,2...)
03 openpyxl
- def op_toexcel(data,filename): # openpyxl庫儲存數據到excel
- wb = op.Workbook() # 創建工作簿對象
- ws = wb['Sheet'] # 創建子表
- ws.append(['序號','項目','數據']) # 添加表頭
- for i in range(len(data[0])):
- d = data[0][i], data[1][i], data[2][i]
- ws.append(d) # 每次寫入一行
- wb.save(filename)
小結
openpyxl 與 xlsxwriter 類似,需要逐行寫入,如第一行需要得到 [ 1, ‘A’ , 10 ] 的格式,但不同的是使用openpyxl.load_workbook(filepath)可以對已存在的 .xlsx 進行追加數據,不會覆蓋;pandas 則需先按列組合,如 [[ 1,2,3],['A','B','C'],[…]]的格式。
方法各有好處,寫表時應根據需要選用。
責任編輯:龐桂玉
來源:
大數據DT