zoukankan      html  css  js  c++  java
  • Python 操作 Excel,总有一个模块适合自己

           最近在写性能相关的测试脚本,脚本已经完成,最终怎么体现在报告上,要想让报告看起来漂亮些,我们是先创建一个模板(格式和公式已全部制作好),只需要性能测试完成后往对应的sheet页中填充数据,数据完成后最终的性能测试报告也就大功告成。虽然可以将模板转化为xlxwriter的代码写死在生成脚本中,但是每次都要重新生成一个文件未免太过麻烦,而且一个格子一个格子地写入会让代码量飞速上涨。。无奈之下另寻他路,尝试着用了xlwings这个模块。 

          为什么我会选到这个xlwings模块,且还需细细听我讲来:

    由于设计目的不同,每个模块通常着重于某一方面功能,各有所长。

    xlwings

    可结合 VBA 实现对 Excel 编程,强大的数据输入分析能力,同时拥有丰富的接口,结合 pandas/numpy/matplotlib 轻松应对 Excel 数据处理工作。同时可以对现有的表格进行修改,对表格的内容及格式无任何影响。

    1 import xlwings as xw
    2 workbook = xw.Book("../report/Performance_Test_Report.xlsx")
    3 data_range = workbook.sheets('FPS_detail').range("A22")
    4 data_range.value = [1,2,3]
    5 workbook.save()

    openpyxl

    简单易用,功能广泛,单元格格式/图片/表格/公式/筛选/批注/文件保护等等功能应有尽有,图表功能是其一大亮点,缺点是对 VBA 支持的不够好。不支持对现有文件进行修改

    1 import openpyxl
    2 workbook = openpyxl.Workbook("../report/Performance_Test_Report.xlsx")
    3 print (workbook.sheetnames)
    4 workbook.create_sheet("test")
    5 workbook.save("../report/Performance_Test_Report.xls")

    pandas

    数据处理是 pandas 的立身之本,Excel 作为 pandas 输入/输出数据的容器。

    win32com

    从命名上就可以看出,这是一个处理 windows 应用的扩展,Excel 只是该库能实现的一小部分功能。该库还支持 office 的众多操作。需要注意的是,该库不单独存在,可通过安装 pypiwin32 或者 pywin32 获取。

    xlsxwriter

    拥有丰富的特性,支持图片/表格/图表/筛选/格式/公式等,功能与openpyxl相似,优点是相比 openpyxl 还支持 VBA 文件导入,迷你图等功能,缺点是不能打开/修改已有文件,意味着使用 xlsxwriter 需要从零开始。

    DataNitro

    作为插件内嵌到 Excel 中,可完全替代 VBA,在 Excel 中使用 python 脚本。既然被称为 Excel 中的 python,协同其他 python 库亦是小事一桩。然而,这是付费插件...

    xlutils

    基于 xlrd/xlwt,老牌 python 包,算是该领域的先驱,功能特点中规中矩,比较大的缺点是仅支持 xls 文件。同时不支持对现有文件进行修改,只可以copy过来生成一个新表,但copy过来时原表格的格式、公式这些全部被破坏了。

    1 from xlutils.copy import copy
    2 workbook = xlrd.open_workbook("../report/Performance_Test_Report.xlsx")
    3 workbooknew = copy(workbook)
    4 ws = workbooknew.get_sheet(0)
    5 ws.write(22,1,"changed")
    6 workbooknew.save("../report/Performance_Test_Report1.xls")
  • 相关阅读:
    OC中类的初始化
    iOS UITabBar简单使用
    iOS UIScrollView初体验
    iOS第一个Demo
    Xcode编写第一个iOS Demo(OC)及遇到的坑记录
    OC协议
    诚实的力量。Paul Graham (Y Combinator 创始人)关于诚实的评论。
    php5.4window下连接mssql
    mysql 游标嵌套循环实例
    关于支付宝接口文档的链接
  • 原文地址:https://www.cnblogs.com/aziji/p/9929038.html
Copyright © 2011-2022 走看看