python 文件持久化Excel

xlrd可以实现excel的读取操作,xlwt则是写入excel操作,xlutils3主要是为了修改excel,简单理解可以拷贝已有excel进行修改,生成新的excel表格。

  1. import xlrd  
  2. import xlwt  
  3. import xlutils3  
  4. from xlutils3 import copy  
  5. #测试xlwt  
  6. #创建新的excel文件  
  7. newfile = xlwt.Workbook()  
  8. #创建新的表单  
  9. #addsheet的格式add_sheet(sheetname, cell_overwrite_ok=False)  
  10. newsheet = newfile.add_sheet('test1',cell_overwrite_ok=True)  
  11. #索引从0,0开始  
  12. newsheet.write(0,0,'aaa')  
  13. newsheet.write(0,0,10)  
  14. newfile.save('firsttest.xls')  
  15.   
  16. #打开相应的excel文件  
  17. workbook = xlrd.open_workbook(r'firsttest.xls')  
  18. #找到相应的sheet  
  19. #可以通过index,index从0开始计算  
  20. #也可以通过sheet的名字   
  21. rdsheet = workbook.sheet_by_index(0)   
  22. rdsheet = workbook.sheet_by_name('test1')  
  23. print(rdsheet.cell(0,0))  
  24. #cell函数返回的是Cell 对象)包含ctype value xf_index  
  25. #输出number:10.0  
  26. print(rdsheet.cell(0,0).ctype)  
  27. #输出2?使用type查询结果为:<type 'member_descriptor'>具体含义?  
  28. print(rdsheet.cell(0,0).value)  
  29. #输出10.0  
  30. print(rdsheet.cell(0,0).xf_index)  
  31. #输出None  
  32.   
  33. rdbook = xlrd.open_workbook(r'firsttest.xls')  
  34. wtbook = copy.copy(rdbook)  
  35. wtsheet = wtbook.get_sheet(0)  
  36. type(wtsheet)  
  37. wtsheet.write(0,0,'aaaaa')  
  38. wtbook.save('bb.xls')  
  39.   
  40. newrdbook = xlrd.open_workbook(r'bb.xls')  
  41. print(newrdbook.sheet_by_name('test1').cell(0,0))  
  42. #输出text:'aaaaa'  
  43. print(rdbook.sheet_by_index(0).cell(0,0))  
  44. #输出number:10.0  

关于cell_overwrite_ok参数使用

  1. newsheet = newfile.add_sheet('test1')  
  2. #索引从0,0开始  
  3. newsheet.write(0,0,'aaa')  
  4. newsheet.write(0,0,10)  
  5. newfile.save('firsttest.xls')  

弹出错误:Exception: Attempt to overwrite cell: sheetname=u'test1' rowx=0 colx=0

修改为不覆盖已经有赋值的单元格是可以操作的:

  1. newsheet = newfile.add_sheet('test1')  
  2. #索引从0,0开始  
  3. newsheet.write(0,0,'aaa')  
  4. newsheet.write(0,1,10) 

如果需要覆盖已经操作的单元格,需要设置cell_overwrite_ok=True:

  1. newsheet = newfile.add_sheet('test1',cell_overwrite_ok=True)  
  2. #索引从0,0开始  
  3. newsheet.write(0,0,'aaa')  
  4. newsheet.write(0,0,10)  

如何在python扩展查询需要的信息

如:当最初只知道使用newfile = xlwt.Workbook();创建一个新的文件时;

后续操作查询:

可以通过type(newfile)得到类型<class 'xlwt.Workbook.Workbook'>;

然后时候使用help(xlwt.Workbook)查询Workbook对应的接口,当然使用help(newfile)也是可以的;

如此往复找到需要的细节信息;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

且行且安~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值