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

文章目录

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

    可以用来处理Excel文件的python模块很多,如XlsxWriter、xlrd、 xlwt、xlutils、openpyxl和xlwings等。下面是一张功能对比表:

    可以看出,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就会弹出来

    代码解析
    我们重点看一下第二行和第三行代码,了解一下即可

    第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程序
    

    运行结果

    代码解析

    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中输入内容
    

    运行结果

    例二:在工作簿中新增一个工作表

    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('工作表二') #新增一个名为“工作表二”的工作表
    

    综合实例

    :在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 = '学号'
    
    

    运行结果

    注意!我这个代码写的并不完善,因为一般操作完Excel文件是要关闭文件退出程序的,这里是为了可视化,所以没有和关闭文件退出程序

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python Excel系列:批量处理Excel文件的模块——xlwings:创建、保存、打开工作簿、操作工作表和单元格

    发表评论