最近需要用到Python去处理excel,目标是根据用户输入的信息,先显示每列的列名以及这一列示例行(取前两行信息),然后根据输入的列号删除对应的列。
网上搜索了下主要有几种方案:
1. 使用xlrd、xlwt、xlutils组合
这种方案比较常见,而且读取和写入速度较快,但是只能操作2003版本之前的xls文件,处理不了xlsx,所以想要处理2003版本之后的请绕道。
注意!
xlutils复制的excel格式上会存在一些问题,我在使用的时候就因为这个原因而弃用了,灰底的表格会变成深蓝色底的,难以接受。
xlrd用来读取excel内容,xlwt写入excel内容,xlutils封装了一些常用的操作excel的函数供用户使用,一些使用如下:
1 | #打开excel文件 |
2. 使用openpyxl
与xlrd、xlwt、xlutils组合不同,openpyxl只支持excel 2003之后的也就是xlsx文件,示例如下:
1 | import openpyxl |
3. 使用win32com操作系统的Excel程序
这种方式约束较多,要求Windows + Microsoft Excel,是使用win32com库来操作Excel程序来完成对excel文件的操作,官方的API特别的复杂,要找到自己需要的API还是要费一番功夫的,但是相应的能做的事也就多了,你能在Excel程序中做的事,几乎使用win32com都能做,具体可用的可查看官方的文档,几乎和vb程序差不多,不用看c++的。
举一些我在项目中用到的例子:
1 | #打开应用 |
总结
以上就是3种常用操作excel的python库,读者可根据自己的情况选择合适的库。