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

开发 后端
本文说明如何使用 xlsxwriter、pandas、openpyxl 三个库来实现数据写入 Excel。

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

以下为数据用例: 

  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'],[…]]的格式。

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

 

责任编辑:庞桂玉 来源: 大数据DT
相关推荐

2015-11-12 10:06:28

数据中心模块化

2014-12-31 17:42:47

LBSAndroid地图

2021-06-24 08:52:19

单点登录代码前端

2021-11-05 21:33:28

Redis数据高并发

2010-03-12 17:52:35

Python输入方式

2022-06-20 08:50:16

TypeScript类型语法

2010-08-31 11:14:32

2015-12-11 09:24:38

加密数据Linux

2022-11-30 15:15:48

2018-04-02 14:29:18

Java多线程方式

2023-12-04 09:31:13

CSS卡片

2020-09-08 12:53:47

C++数据线程

2017-07-14 15:07:23

2010-09-26 17:09:22

日内数据保护

2022-06-20 15:08:42

数据货币数字化转型数据

2017-07-03 18:24:39

MySQL数据冗余

2010-08-24 14:47:48

CSS居中

2022-11-03 08:44:24

代理模式Java设计模式

2018-01-04 08:18:34

2023-09-13 09:52:14

分布式锁Java
点赞
收藏

51CTO技术栈公众号