python操作excel有很多方式,有pandas,xlrd、xlwt、xlutils、openpyxlxlsxwriter,pywin32.
先简单说下他们的用法:
1.pandas:是一个做数据分析的库,它是基于xlrd.xlwt,它可以直接读取excel表,也可以据处理成自己想要的样子保存成excel.(优点:可以很方便的对dataframe进行排版.逻辑处理.
缺点:想要生成很复杂样式的excel会很麻烦,读取复杂样式的excel,保存时无法保留原来的格式.)
2.xlrd只能读excel,没法进行修改.
3.xlwt只能生成excel.没法读取.
4.xlutils,既可以读取,也能修改保存.
5.openpyxl很强大,读取复杂excel再次保存能很好的保留住excel原有的函数,格式,等,就是数据分析图会丢失,暂时还没去研究图形展示.
6.xlswriter支持多种excle功能包括图标生成 ,与excel完美兼容,写大文件,速度快且只占用很小的内存空间,想直接写比较复杂格式的excel可以选择它.缺点:不支持读或者改现有的excel文件
7.pywin32:作用是方便python开发者快速调用windows API的一个模块库。通俗的讲就是用python代码调用windows系统来操作,读取复杂的包含图形的excel,修改数据后,也能完美保存,缺点:速度慢.cpu使用率高,只能在windows下运行.
我之所以选择pywin32,是因为使用的excel表是现成的很复杂的表,涉及表格合并,函数,图型展示,数据透视表等,我只需要读取设计好的excel表将爬取数据填入相应位置就能自动生成复杂的excel.而且使用率不高.
就这个需求openpyxl和pywin32能满足.openpyx要去考虑图形丢失问题,所以我暂时先用了pywin32.
安装
pip install pywin32
import win32com.client
from win32com.client import Dispatch
cl