python批量处理Excel文件的模块——xlwings

海外翻墙免费加速器[入口]

可以处理Excel文件的Python模块有很多,如XlsxWriter、xlrd、xlwt、xlutils、openpyxl和xlwings等。下表对各个模块的功能进行了简单对比。

通过上表的对比可以发现,xlwings模块的功能是最齐全的。它不仅能读、写和修改两种格式的Excel文件(xls和xlsx),而且能批量处理多个Excel文件。此外,xlwings模块还能与Excel VBA结合使用,实现更加强大的数据输入和分析功能。
在后面的章节中,这个模块将会经常与os、pandas、NumPy、Matplotlib等模块结合使用,让我们可以轻松应对数据处理与分析工作。本节将详细介绍这个模块的基本功能和使用方法。

1、创建工作簿

利用xlwings模块创建一个新的工作簿的演示代码如下:

1 import xlwings as xw

2 app = xw.App(visible = True, add_book = False)

3 workbook = app.books.add()

第1行代码导入xlwings模块并简写为xw。
第2行代码启动Excel程序窗口,但不新建工作簿。其中的App()是xlwings模块中的函数,该函数有两个常用参数:参数visible用于设置Excel程序窗口的可见性,如果为True,表示显示Excel程序窗口,如果为False,表示隐藏Excel程序窗口;参数add_book用于设置启动Excel程序窗口后是否新建工作簿,如果为True,表示新建一个工作簿,如果为False,表示不新建工作簿。
第3行代码新建一个工作簿。其中的add()为books对象的函数,用于新建工作簿。

2、保存工作簿

如果要对上面创建的工作簿进行保存,则在3.3.1节的代码后面继续输入如下代码:

1 workbook.save(‘d:\example.xlsx’)

2 workbook.close() # 关闭工作簿

3 app.quit() # 退出Excel程序
输入完毕后的代码有6行,保存代码文件后运行代码,便会发现在D盘的根文件夹下生成了一个名为“example.xlsx”的工作簿。
下面解释一下本节新增的3行代码的含义。第1行代码中的save()函数用于保存前面创建的空白工作簿,括号里的参数为工作簿的保存路径和文件名。需要注意的是,一个文件的路径有两种表示方式,分别说明如下。

·绝对路径:表示文件的路径总是从根文件夹开始。例如,如果操作系统是Windows,那么就以盘符(C:、D:等)作为根文件夹。第1行代码中的’d:\example.xlsx’就是一个绝对路径。这行代码也可以改为“workbook.save(r’d:\example.xlsx’)”,代码中的字符r用来取消路径中反斜杠“\”的转义功能。

·相对路径:表示相对于当前运行的代码文件的路径。例如,如果将第1行代码修改为“workbook.save(‘.\example.xlsx’)”或“workbook.save(‘example.xlsx’)”,那么就会在代码文件所在的文件夹下创建一个名为“example.xlsx”的工作簿。

第2行代码中的close()函数用于关闭创建的工作簿。
第3行代码中的quit()函数用于退出Excel程序。

3、打开工作簿

利用xlwings模块打开一个已有的工作簿的演示代码如下:

1 import xlwings as xw
2 app = xw.App(visible = True, add_book = False)
3 workbook = app.books.open(r’d:\example.xlsx’) # 打开D盘根文件夹下名为“example.xlsx”的工作簿

需要注意的是,指定的工作簿必须真实存在,并且不能处于已打开的状态。

4、操控工作表和单元格

xlwings模块还能操控工作表和单元格。例如,在3.3.3节的代码后面继续输入如下代码:

1 worksheet = workbook.sheets[‘Sheet1’] # 选中工作表“Sheet1”
2 worksheet.range(‘A1’).value = ‘编号’ # 在单元格A1中输入内容

运行代码后,可在打开的工作簿“example.xlsx”的工作表“Sheet1”的单元格A1中看到输入了文本内容“编号”。
如果想要在打开的工作簿中新增一个工作表,也可以用xlwings模块来实现。

demo如下:1 worksheet = workbook.sheets.add(‘产品统计表’) # 新增一个名为“产品统计表”的工作表

通过前面的讲解,我们对xlwings模块的基本用法有了大致的了解。下面对本节所学知识进行综合应用,以帮助大家加深对xlwings模块的认识,演示代码如下:

1 import xlwings as xw
2 app = xw.App(visible = False)
3 workbook = app.books.add()
4 worksheet = workbook.sheets.add(‘产品统计表’)
5 worksheet.range(‘A1’).value = ‘编号’
6 workbook.save(r’d:\北京.xlsx’)
7 workbook.close()
8 app.quit()

运行后会看到在D盘的根文件夹下新建了一个名为“北京.xlsx”的工作簿,该工作簿中有一个名为“产品统计表”的工作表,该工作表的单元格A1中输入了内容“编号”。

当然,xlwings模块的功能并不仅限于此。我们还可以使用xlwings模块批量处理Excel工作簿、工作表和单元格,并与其他模块结合使用,轻松完成数据的分析和可视化。

未经允许不得转载:陈海飞博客 » python批量处理Excel文件的模块——xlwings

分享到:更多 ()