本文說明如何使用 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)
下面開始分別介紹三種方法:
這里多說一句,小編是一名python開發工程師,這里有我自己整理了一套最新的python系統學習教程,包括從基礎的python腳本到web開發、爬蟲、數據分析、數據可視化、機器學習等。想要這些資料的可以進裙609616831領取。
1、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() # 關閉表
2、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...)
3、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'],[…]]的格式。
方法各有好處,寫表時應根據需要選用。如果大家在學習中遇到困難,想找一個python學習交流環境,可以加入我們的python圈,裙號609616831,可領取python學習資料,會節約很多時間,減少很多遇到的難題。