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 读取的信息。

 

posted @ 2018-08-17 13:36  巨兽~墨菲特  阅读(389)  评论(0编辑  收藏  举报