小笔记
起因
跑完实验结果后想将数据结果保存到xlsx文件中,因为数据较多所以先用xlsx划分了大致的格式,但xlrd、xlwt怎么写数据到已有文件还不熟练,留下此篇笔记供以后查看
方法
xlrd库仅用于读取excel文件中的数据;
xlwt库则用于将数据写入excel文件;
但是对于已有的excel文件,想要追加或者修改,即编辑功能的时候,这两个库则没有办法完成。
xlutils库也仅仅是通过复制一个副本进行操作后保存一个新文件,xlutils库就像是xlrd库和xlwt库之间的一座桥梁,因此,xlutils库是依赖于xlrd和xlwt两个库的。这三个库既能满足操作Excel的基本需求,当然大数据分析还是需要pandas库。
xlutils模块的功能是作为xlrd和xlwt的桥梁,解决了xlrd中book对象无法编辑的问题。通过copy模块将xlrd.Book对象转换为xlwt.Workbook对象,从而实现了原始excel文件的编辑功能。
import xlwt,xlrd2
from xlutils.copy import copy
workbook=xlrd2.open_workbook('./result.xlsx',formatting_info=True)
wbook = copy(workbook)
wsheet = wbook.get_sheet(0)
'''
省略中间数据处理的一些操作
'''
wsheet.write(row, col, meanData)
wbook.save('./result.xlsx')
注意
- 要导入xlrd2,而不是xlrd,xlrd不能读取xlsx,也好像不能读取xls?
- xlutils的copy函数是在xlutils.copy模块下的copy函数,若直至
import xlutils
,xlutils.copy
会查找不到 xlrd2.open_workbook('./result.xlsx',formatting_info=True)
中formatting_info=True
作用是保留文件原格式,不然save时候之前的格式style(字体、填充等)会消失