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


    xlwings 入门及使用方式指导

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

    打开和处理一个xlsx文件,关闭

    import xlwings as xlw
    app = xlw.App(visible=True, add_book=False)
    app.display_alerts = False
     app.screen_updating = False  # excel 是否展示内容
     wb = app.books.open(self.XlsPath)
    
    procxls()  # 个人处理过程
    
     wb.save()  # 处理后保存
     wb.close()  # 关闭文件句柄,写入文件
     app.quit()  # 关闭app
    

      

    写入多行数据

    储存列表
    # 将列表[1,2,3]储存在A1:C1中
    sht.range('A1').value=[1,2,3]
    # 将列表[1,2,3]储存在A1:A3中
    sht.range('A1').options(transpose=True).value=[1,2,3]
    # 将2x2表格,即二维数组,储存在A1:B2中,如第一行1,2,第二行3,4
    sht.range('A1').options(expand='table')=[[1,2],[3,4]]
    

      

    options() 这个函数,中文文档很少有人描述的很清楚的,建议大家去看官网,不要被误导

    xlwings高级接口

    至于一些简单的操作,已经有人写了很不多的博客,我给大家引过来,自己不再过多赘述

    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)
    

      

    刷新效率

    app.screen_updating = False 选项,是配置是否实时刷新excel程序的显示内容,
    如果配是True,我实测会导致速度慢三倍左右。

    接口读写效率及建议

    对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单元格来遍历



    原文:https://blog.csdn.net/wskzgz/article/details/89181501

  • 相关阅读:
    SQL_Server_2005_数据类型转换函数(描述及实例)
    讨论:GUID与int自增列的问题
    SQL Server 2005无日志文件附加数据库
    优化SQL查询:如何写出高性能SQL语句
    开源项目之视频会议程序 Omnimeeting
    wzplayer player (android,windows,ios) 多核解码
    利用office2010 word2010生成目录
    利用office2010 word2010生成目录
    最近在忙活视频通话(sip)
    介绍几个在线画流程图的工具
  • 原文地址:https://www.cnblogs.com/qbdj/p/11010812.html
Copyright © 2020-2023  润新知