当前位置:主页 > 查看内容

Python实现数据写入Excel的三种模块

发布时间:2021-06-04 00:00| 位朋友查看

简介:写入后的格式如下图所示: 以下为数据用例: importxlsxwriterasxw importpandasaspd importopenpyxlasop -------------数据用例------------- orderIds =[1,2,3] items =['A','B','C'] myData =[10,20,30] testData =[orderIds,items,myData] filename1 = '……

写入后的格式如下图所示:

以下为数据用例:

  1. import xlsxwriter as xw  
  2. import pandas as pd  
  3. import openpyxl as op  
  4. "-------------数据用例-------------"  
  5. orderIds = [1,2,3]  
  6. items = ['A','B','C']  
  7. myData = [10,20,30]  
  8. testData = [orderIds,items,myData]  
  9. filename1 = '测试1.xlsx'  
  10. filename2 = '测试2.xlsx'  
  11. filename3 = '测试3.xlsx'  
  12. "--------------执行----------------"  
  13. xw_toexcel(testData,filename1)  
  14. pd_toexcel(testData,filename2)  
  15. op_toexcel(testData,filename3) 

下面开始分别介绍三种方法:

01 xlsxwriter

  1. def xw_toexcel(data,filename): # xlsxwriter库储存数据到excel  
  2.     workbook = xw.Workbook(filename) # 创建工作簿  
  3.     worksheet1 = workbook.add_worksheet("sheet1") # 创建子表  
  4.     worksheet1.activate() # 激活表  
  5.     title = ['序号','项目','数据'] # 设置表头  
  6.     worksheet1.write_row('A1',title) # 从A1单元格开始写入表头  
  7.     i = 2 # 从第二行开始写入数据  
  8.     for j in range(len(data)):  
  9.         insertData = [data[0][j],data[1][j],data[2][j]]  
  10.         row = 'A' + str(i)  
  11.         worksheet1.write_row(row, insertData)  
  12.         i += 1  
  13.     workbook.close() # 关闭表 

02 pandas

  1. def pd_toexcel(data,filename): # pandas库储存数据到excel  
  2.     dfData = { # 用字典设置DataFrame所需数据  
  3.         '序号':data[0],  
  4.         '项目':data[1],  
  5.         '数据':data[2]  
  6.     }  
  7.     df = pd.DataFrame(dfData) # 创建DataFrame  
  8.     df.to_excel(filename,index=False) # 存表,去除原始索引列(0,1,2...) 

03 openpyxl

  1. def op_toexcel(data,filename): # openpyxl库储存数据到excel  
  2.     wb = op.Workbook() # 创建工作簿对象  
  3.     ws = wb['Sheet'] # 创建子表  
  4.     ws.append(['序号','项目','数据']) # 添加表头  
  5.     for i in range(len(data[0])):  
  6.         d = data[0][i], data[1][i], data[2][i]  
  7.         ws.append(d) # 每次写入一行  
  8.     wb.save(filename) 

小结

openpyxl 与 xlsxwriter 类似,需要逐行写入,如第一行需要得到 [ 1, ‘A’ , 10 ] 的格式,但不同的是使用openpyxl.load_workbook(filepath)可以对已存在的 .xlsx 进行追加数据,不会覆盖;pandas 则需先按列组合,如 [[ 1,2,3],['A','B','C'],[…]]的格式。

方法各有好处,写表时应根据需要选用。

【责任编辑:庞桂玉 TEL:(010)68476606】
本文转载自网络,原文链接:https://mp.weixin.qq.com/s/PJcfMrIHrEmvFdhyQpkxtQ
本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!

推荐图文


随机推荐