Excel是当今最流行的电子表格处理软件,文件丰富的计算函数及图表,在系统运营方面广泛用于运营数据报表,如业务质量,资源利用,安全扫描等,同时也应用系统常见的文件导出格式,以便数据使用人员做进一步加工处理。
Python中已有大量的处理Excel的第三方库,主流代表有:
(1)xlwings:简单强大,可代替VBA。
(2)openpyxl:简单易用,功能广泛。
(3)pandas:使用时需要结合其他库,数据处理是pandas立身之本。
(4)Win32com:不仅仅是Excel,可以处理office。不过它相当于是Windows com的封装,新手使用起来略有些痛苦。
(5)xlsxwriter:具体丰富多样的特性,缺点是不能打开/修改已有文件,也就意味着使用xlsxwriter需要从零开始。
(6)datanitro:作为插件内嵌到Excel中,可代替VBA,在excel中优雅地使用Python。
(7)xlutils:结合xlrd/xlwt,老牌Python包。
(8)xlrd:一个Excel文档读取数据和格式化信息的库,支持.xls以及.xlsx文档。
(9)xlwt:一个用于将数据和格式化信息写入旧Excel文档的库。
可以处理Excel文件的Python模块很多,具体功能说明如下:
模块功能 | 读 | 写 | 修改 | .xls格式 | .xlsx格式 | 批量操作 |
---|---|---|---|---|---|---|
xlrd | √ | × | × | √ | √ | × |
xlwt | × | √ | √ | √ | × | × |
xlutils | × | × | √ | √ | × | × |
xlwings | √ | √ | √ | √ | √ | √ |
openpyxl | √ | √ | √ | × | √ | × |
xlswriter | × | × | × | √ | × | |
Win32com | √ | √ | √ | √ | √ | × |
datanitro | × | × | × | √ | √ | × |
pandas | √ | √ | × | √ | √ | √ |
补充:.xls格式与.xlsx格式的区别
xls是版本之前使用的文件格式,是二进制的文件保存方法,xls文件可以直接插入宏,存在一定的安全隐患。xls文件的功能性比xlsx差,:xls文件支持的最大行数是65536行,xlsx支持额最大行数是1048576行;xls支持的最大列数是256列,xlsx是16384列,这个行数和列数的限制不是来自Excel的版本而是文件类型的版本。
xlsx与xls就差异了一个字母x,这个×表示的是X=XML。相当于xls,xlsx支持更多的Excel2007后支持的功能,因为XML中的X表示的是extensible,也就是可扩展的,所以以后有新功能添加也会继续使用xlsx格式,因为它是扩展的。
通过上表的对比可以发现,xlwings模块的功能是最齐全的,xlwings不仅能读、写、修改xls和xlsx两种格式的文件,还可以批量处理Excel文件。xlwings模块恩能够与ExcelVBA结合使用,实现更强大的数据输入和分析功能。
# 使用xlwings模块创建新的Excel文件的方式
import xlwings as xw
# 创建一个新的APP,并在APP中创建一个book
wb = xw.Book()
# 保存工作簿
wb.save("1.xlsx")
# 关闭工作薄
wb.close()