Python+Excel系列:批量处理Excel文件的模块—xlwings:创建、保存、打开工作簿,操控工作表和单元格

文章目录

  • 认识xlwings模块
    • 1.创建工作簿
    • 2.保存工作簿
    • 3.打开工作簿
    • 4.操控工作表和单元格
  • 综合实例

认识xlwings模块

可以用来处理Excel文件的python模块很多,如XlsxWriter、xlrd、 xlwt、xlutils、openpyxl和xlwings等。下面是一张功能对比表:
Python+Excel系列:批量处理Excel文件的模块—xlwings:创建、保存、打开工作簿,操控工作表和单元格_第1张图片
可以看出,xlwings模块的功能最齐全。可以读、写和修改两种格式的Excel文件(xls和xlsx),而且能批量处理多个Excel文件;xlwings模块还能与Excel VBA结合使用,实现更加强大的数据输入和分析功能

1.创建工作簿

例:创建一个新的工作簿

import xlwings as xw #导入xlwings模块并简写为xw

app = xw.App(visible = True, add_book= False) #启动Excel程序窗口,但不新建工作簿
workbook = app.books.add() #新建一个工作簿。

运行之后微软系统自带的Excel就会弹出来
Python+Excel系列:批量处理Excel文件的模块—xlwings:创建、保存、打开工作簿,操控工作表和单元格_第2张图片
代码解析
我们重点看一下第二行和第三行代码,了解一下即可

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

第3行代码新建一个工作簿。其中的add()为books对象的函数,用于 新建工作簿。

2.保存工作簿

:在D盘的list文件夹下生成了一个名为“example.xlsx”的工作簿

import xlwings as xw #导入xlwings模块并简写为xw

app = xw.App(visible = True, add_book= False) #启动Excel程序窗口,但不新建工作簿
workbook = app.books.add() #新建一个工作簿。
workbook.save('d:/list/example.xlsx')#在D盘的list文件夹下生成了一个名为“example.xlsx”的工作簿
workbook.close() #关闭工作簿
app.quit() #退出Excel程序

运行结果
Python+Excel系列:批量处理Excel文件的模块—xlwings:创建、保存、打开工作簿,操控工作表和单元格_第3张图片
代码解析

workbook.save(‘d:/list/example.xlsx’)

第这行代码中的save()函 数用于保存前面创建的空白工作簿,括号里的参数为工作簿的保存路径 和文件名。

补充一个相对路径和绝对路径的知识:

一个文件的路径有两种表示方式,说明如下:
1.绝对路径:表示文件的路径总是从根文件夹开始。例如,如果操 作系统是Windows,那么就以盘符(C:、D:等)作为根文件夹。第1行 代码中的’d:/list/example.xlsx’就是一个绝对路径。这行代码也可以改 为“workbook.save(r’d:\example.xlsx’)”,代码中的字符r用来取消路径中反 斜杠“\”的转义功能。
2.相对路径:表示相对于当前运行的代码文件的路径。例如,如果 将第4行代码修改为“workbook.save(‘.\example.xlsx’)”或“workbook.save(‘example.xlsx’)”,那 么就会在代码文件所在的文件夹下创建一个名为“example.xlsx”的工作簿。

close()函数用于关闭创建的工作簿
的quit()函数用于退出Excel程序

3.打开工作簿

:用xlwings模块打开一个已有的工作簿

import xlwings as xw #导入xlwings模块并简写为xw

app = xw.App(visible = True, add_book= False) #启动Excel程序窗口,但不新建工作簿
workbook = app.books.open('d:/list/example.xlsx') #打开D盘list文件夹下名为“example.xlsx”的工作簿

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

4.操控工作表和单元格

xlwings模块还能操控工作表和单元格
例一:在上例的工作簿“example.xlsx”选中作表“Sheet1”的 单元格A1中输入文本内容“编号

import xlwings as xw #导入xlwings模块并简写为xw

app = xw.App(visible = True, add_book= False) #启动Excel程序窗口,但不新建工作簿
workbook = app.books.open('d:/list/example.xlsx') #打开D盘list文件夹下名为“example.xlsx”的工作簿
worksheet = workbook.sheets['sheet1'] #选中工作表“sheet1”
worksheet.range('A1').value = '编号' #在单元格A1中输入内容

运行结果
Python+Excel系列:批量处理Excel文件的模块—xlwings:创建、保存、打开工作簿,操控工作表和单元格_第4张图片
例二:在工作簿中新增一个工作表

import xlwings as xw #导入xlwings模块并简写为xw

app = xw.App(visible = True, add_book= False) #启动Excel程序窗口,但不新建工作簿
workbook = app.books.open('d:/list/example.xlsx') #打开D盘list文件夹下名为“example.xlsx”的工作簿
worksheet = workbook.sheets.add('工作表二') #新增一个名为“工作表二”的工作表

Python+Excel系列:批量处理Excel文件的模块—xlwings:创建、保存、打开工作簿,操控工作表和单元格_第5张图片

综合实例

:在D盘下创建一个名为“test”的文件夹,之后在test文件夹下新建一个名为“Student.xlsx”的工作簿,选中sheet1工作表,该工作表的单元格,在A1中输入内容“姓名”,单元格B2中输入内容“学号”。

import xlwings as xw
import os

#创建文件夹
path = 'd://'
os.mkdir(path+'test') #在D盘下创建一个文件夹并命名为“”test

#创建Excel工作簿
app = xw.App(visible=True,add_book=False)
workbook = app.books.add() #新建一个工作薄
workbook.save('d:/test/Student.xlsx')#在D盘的test文件夹下创建一个“Student.xlsx”文件

#打开工作簿并操作
workbook2 = app.books.open('D:/test/Student.xlsx')#打开刚创建的Student.xlsx文件
worksheet = workbook2.sheets['sheet1']#选中工作表sheet1
worksheet.range('A1').value = '姓名'
worksheet.range('B1').value = '学号'

运行结果
Python+Excel系列:批量处理Excel文件的模块—xlwings:创建、保存、打开工作簿,操控工作表和单元格_第6张图片
注意!我这个代码写的并不完善,因为一般操作完Excel文件是要关闭文件退出程序的,这里是为了可视化,所以没有和关闭文件退出程序

你可能感兴趣的:(python+Excel,python,pycharm,Excel)