xlutils模块
xlutils.copy
这个模块中的函数xlrd副本。书成xlwt对象。工作簿对象,这样他们就可以被操控。您可能希望这样做,例如,如果您有一个现有的excel文件,你想改变一些单元格内容:
1、首先,你需要利用 xlrd 模块,打开文件:
from xlrd import open_workbook rb=open_workbook("new1.xlsx") rs=rb.sheet_by_index(0) print(rs.cell(0,0).value) print(rs.cell(0,1).value)
结果:
"D:\Program Files (x86)\python36\python.exe" F:/python从入门到放弃/8.17/xlutils_mudol.py 姓名 学号
2、然后,你需要用 xlutils 模块中的 copy 方法,去复制 xlrd.Book 对象称为 xlwt.Workbook 对象
from xlutils.copy import copy wb=copy(rb)
1 from xlrd import open_workbook 2 from xlutils.copy import copy 3 4 rb=open_workbook("new1.xlsx")#实例化工作簿对象 5 rs=rb.sheet_by_index(0)#实例化工作簿对象中的表格对象 6 # print(rs.cell(0,0).value) 7 # print(rs.cell(0,1).value) 8 wb=copy(rb)##复制实例化工作簿对象成 xlwt的工作簿对象
现在,你已经相当于有了一个 xlwt.Workbook 对象, 你可以修改单元格并且根据需要把修改后的表格文件保存回去。
>>> wb.get_sheet(0).write(0,0,'changed!') >>> wb.save(join(temp_dir.path,'output.xls')) >>> temp_dir.listdir() output.xls
1 from xlrd import open_workbook 2 from xlutils.copy import copy 3 4 rb=open_workbook("new1.xlsx")#实例化工作簿对象 5 rs=rb.sheet_by_index(0)#实例化工作簿对象中的表格对象 6 print(rs.cell(0,0).value) 7 print(rs.cell(0,1).value) 8 uwb=copy(rb)##复制实例化工作簿对象成 xlwt的工作簿对象 9 urs=uwb.get_sheet(0) 10 urs.write(0,0,"内容已经改变!") 11 uwb.save("new2.xls")
OK!!现在你就可以打开保存的文件查看内容了。
你也可以用 xlrd 模块去读取文件,查看改变后的内容。
>>> rb = open_workbook(join(temp_dir.path,'output.xls')) >>> rb.sheet_by_index(0).cell(0,0).value u'changed!' >>> rb.sheet_by_index(0).cell(0,1).value u'R0C1'
1 #!/usr/bin/env python3 2 #-*- coding:utf-8 -*- 3 ''' 4 Administrator 5 2018/8/17 6 ''' 7 from xlrd import open_workbook 8 from xlutils.copy import copy 9 10 # rb=open_workbook("new1.xlsx")#实例化工作簿对象 11 # rs=rb.sheet_by_index(0)#实例化工作簿对象中的表格对象 12 # print(rs.cell(0,0).value) 13 # print(rs.cell(0,1).value) 14 # uwb=copy(rb)##复制实例化工作簿对象成 xlwt的工作簿对象 15 # urs=uwb.get_sheet(0) 16 # urs.write(0,0,"内容已经改变!") 17 # uwb.save("new2.xls") 18 19 new_rb=open_workbook("new2.xls") 20 new_rs=new_rb.sheet_by_index(0) 21 print(new_rs.cell(0,0).value)
结果:
"D:\Program Files (x86)\python36\python.exe" F:/python从入门到放弃/8.17/xlutils_mudol.py 内容已经改变!
注意:我在测试的时候,发现保存的文件可以保存为 .xls 格式。不能保存为 .xlsx 格式。个人猜测应该是兼容的问题。
在使用中应该竟可能的使用参数: on_demand=True ,这样可以竟可能多的节约内存。
formatting_info=True :读取文件的格式。包括背景色,字体等信息
rb=open_workbook("new1.xlsx",on_demand=True)#实例化工作簿对象
来源:https://xlutils.readthedocs.io/en/latest/copy.html 官网
xlutils.display
这个模块包含两个函数 quoted_sheet_name() 和 cell_display() ,它们让你容易和安全的显示通过 xlrd 读取的信息。