openpyxl
工作中,有时候会需要批量处理一些文件,或者,产出日常报表。我之前的工作就有涉及到日常报表的产出,报表是Excel文件,内容有一定格式要求,每天做总有点无趣,而且人工也有失误的时候,实现自动化是十分有必要的。一开始使用vba进行处理,后来遇到了一些麻烦,主要是数据来源是多方面的,有的是一份excel文件,有的需要数据库查询,这时候用vba写就显得有点麻烦。后来我改用python去处理,调用openpyxl
包,进行excel文件内容的写入和格式的设定,主要是格式设定也不是很复杂,太过复杂的格式处理,openpyxl
也处理不了,大部分的格式处理都已经涵盖了,很少会有超出的,即使有,也可以用一些替代方案。最终,用python实现了一键运行产出报表。1
2
3
4
5
6
7
8
9
10from openpyxl import Workbook
from openpyxl.styles import PatternFill, Border, Side, Alignment, Font, colors
wb = Workbook()
ws = wb.active
ws.title = "Sheet1"
ws.cell(row, column).value = None
filename = "test.xlsx"
wb.save(filename)
# 网格不显示
ws.sheet_view.showGridLines = False
具体单元格样式更改参见官网教程,官网上也用详细的教程和说明。
pywin32
出了上面的openpyxl
外,还有不少其他的包,个人愚见,其中功能最全面的应该是pywin32
包。当然,我也觉得它是最难用的包,用起来并不简单。如果说,openpyxl
还有些功能实现不了以外,pywin32
几乎实现了日常使用的所有功能。而且,pywin32
不仅可以操作excel,还可以操作word,其他的office好像也可以操作,不过我没有使用过。工作中,有次接了个任务,把公司平台上的试卷按格式导出,包括试题和答案。我就是用pywin32
去操作word,从试卷平台上抓数据(我还没有试卷平台的数据库,写爬虫抓的数据),写入word,最后调整格式,产出word文件。整个pywin32
,几乎用的都是vba一样的接口,不知道这是不是它没有一份完整详细的官方说明文档的原因。关于,vba的知识可以查看微软的相关网址。如果能熟练运用vba,相信pywin32
上手很快。我不是很熟悉,折腾了一番。
结语
上面的这些工具,能够大幅度减少重复性高的日常工作或者是批量工作,个人工作上的体会。