python excel 使用 xlutils 类库 实现追加写功能

来源:互联网 发布:教淘宝的基础知识 编辑:程序博客网 时间:2024/05/06 04:51

由于近日写工作汇报 交一份概要和 excel版本 发现手写 太麻烦  想写个代码来自动 读取一个文本中的所有内容 按需求写入 对应excel和概要中  自动完成


就找了找python 的类库,发现了挺多小问题.和大家分享一下 如果对你有所帮助 请赞一下谢谢


如果追加写  python xlrd模块是复制读取exlce xlwt 是负责写  但是发现如果使用xlwt写后 格式都没有了,而且不能追加写.

那么就需要使用 xlutils这个模块

1.实现复制带有 格式的excel


from xlutils.copy import copy

try:
    if not os.path.exists(goal_file) and os.path.exists(model_src) :
     
        shutil.copy(model_src,goal_file)
         
        print '复制模版成功'
     
except Exception ,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 否则会抛出异常 xlrd 0.8版本后不支持  google了一下好像是这样 所以模版要是xls格式的

而且要注意 不要去手动点开xls文件去修改里面的值,否则脚本执行到最后save()这句话会抛出异常,试了很多次,希望大神可以指教下.

注意这两点  实现追加写就可以完成了.


0 0
原创粉丝点击