python excel使用xlutils类库实现追加写功能的方法
由于近日写工作汇报交一份概要和excel版本发现手写太麻烦想写个代码来自动读取一个文本中的所有内容按需求写入对应excel和概要中自动完成
就找了找python的类库,发现了挺多小问题.和大家分享一下如果对你有所帮助请赞一下谢谢
如果追加写pythonxlrd模块是复制读取exlcexlwt是负责写但是发现如果使用xlwt写后格式都没有了,而且不能追加写.
那么就需要使用xlutils这个模块
1.实现复制带有格式的excel
fromxlutils.copyimportcopy try: ifnotos.path.exists(goal_file)andos.path.exists(model_src): shutil.copy(model_src,goal_file) print'复制模版成功' exceptException,e: print"模版文件复制失败" pass
很简单关键代码只有一句将一个模版文件复制一份将来我会用复制后的文件进行追加写操作
#使用formatting_info=True来复制带有格式的excel,否则追加写后格式会丢失 rb=xlrd.open_workbook(goal_file,formatting_info=True) #通过sheet_by_index()获取的sheet没有write()方法 rs=rb.sheet_by_index(0) wb=copy(rb) #通过get_sheet()获取的sheet有write()方法 ws=wb.get_sheet(0) #获得到sheet了可以进行追加写或者修改某个单元格数据的操作了最后不要忘了save()
wb.save(goal_file)
这里特别注意复制的模版要是xls后缀而不是xlsx否则会抛出异常xlrd0.8版本后不支持google了一下好像是这样所以模版要是xls格式的
而且要注意不要去手动点开xls文件去修改里面的值,否则脚本执行到最后save()这句话会抛出异常,试了很多次,希望大神可以指教下.
注意这两点实现追加写就可以完成了.
以上这篇pythonexcel使用xlutils类库实现追加写功能的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。