欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python利用xlwings库 处理excel 效率 及其他总结-持续更新

程序员文章站 2022-03-11 12:05:41
...

xlwings 入门及使用方式指导

  • 我对比了openxl 和 xlwings的官方文档,发现xlwings的官网API说明很清楚简洁,
  • 如果你刚入门,不要去百度按照功能搜索一句句的去拼接代码,
  • 直接花一个小时看下API接口说明,基本你就会用了
  • 同时,官网还放了一些小实例,帮助你入门
    xlwings官网API说明书

效率问题

启动效率

open()时会启动win环境自带的office-excel安装程序(就相当于帮你打开了要操作的excel表格);这个效率取决于你自身电脑性能,一般都要耗时3s左右,我试过老一点的笔记本要5s;

				app = xlw.App(visible=True, add_book=False)
                app.display_alerts = False
                app.screen_updating = False  # excel 是否展示内容
                wb = app.books.open(self.XlsPath)

接口读写效率及建议

对excel的读、写,基本都是通过

  • sht.range(“A1”).value 【读】
  • sht.range(“A1”).value = ‘你好’ 【写】
    这里边有个性能问题,如果你一个个 cell单元格 去读写,特别慢,我循环 读取+写入 2000个单元格,耗时基本30s

但是,如果你批量读、写,就能变得很快,例如: 一次读、写一整行

  • sht.range(“A1:Z1”).value 【读】
  • sht.range(“A1:Z1”).value = ‘你好’ 【写】

所以,要提高效率,就要尽量批量操作

颜色读写性能

上边证明批量操作能提高效率,但是,读写颜色又有一个不爽的地方,不支持批量操作

  • sht.range(“A1”).color 【读】
  • sht.range(“A1”).color = (210, 67, 9) 【写】
    我做的项目,需要依据颜色对表格做不同的操作(修改、删除等),导致每次只能循环一个个cell单元格来遍历