【python】批量处理Excel文件的模块——xlwings能读、写和修改两种格式的Excel文件(xls和xlsx),而且能批量处理多个Excel文件。

批量处理Excel文件的模块

Excel文件的Python模块有很多,如XlsxWriter、xlrd、xlwt、xlutils、openpyxl和xlwings等。
在这里插入图片描述
xlwings模块的功能是最齐全的。它不仅能读、写和修改两种格式的Excel文件(xls和xlsx),而且能批量处理多个Excel文件。xlwings模块还能与Excel VBA结合使用,实现更加强大的数据输入和分析功能。

操作流程:启动excel程序—>新建工作簿(包含多个sheet表,默认1个)—>打开工作簿—>新建工作表—>操作工作簿。

1.1 创建工作簿

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

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

1.2 保存工作簿

workbook.save('d:\\example.xlsx')
workbook.close()  # 关闭工作簿
app.quit()  # 退出Excel程序

1.3 打开工作簿

利用xlwings模块打开一个已有的工作簿,需要注意的是,指定的工作簿必须真实存在,并且不能处于已打开的状态。

import xlwings as xw

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

1.4 操控工作表和单元格

import xlwings as xw

app = xw.App(visible = False)  # 启动excel程序但不新建工作簿
workbook = app.books.add()     # 创建工作簿,默认产生1个sheet表,但不操作
worksheet = workbook.sheets.add('产品统计表')  # 创建指定名称sheet表
worksheet.range('A1').value = '编号'    # 指定单元格并赋值
workbook.save(r'./data/北京.xlsx')     # 保存表
workbook.close()              # 关闭工作簿
app.quit()                    # 关闭excel表程序

1.5 xlwings模块与pandas模块的交互

import xlwings as xw
import pandas as pd

app = xw.App(visible=False, add_book = False)
workbook = app.books.add()
worksheet = workbook.sheets.add('新工作表')
df = pd.DataFrame([[1, 2], [3, 4]], columns=['a', 'b'])
worksheet.range('A1').value = df
workbook.save(r'./data/table.xlsx')
workbook.close()
app.quit()

1.6 xlwings模块与Matplotlib模块的交互

import xlwings as xw
import matplotlib.pyplot as plt

figure = plt.figure()
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.plot(x, y)

app = xw.App(visible=False)
workbook = app.books.add()
worksheet = workbook.sheets.add('新工作表')

# 将绘制的图表写入工作簿
# left用于设置图表与左侧边界的距离  
# update设置为True,则在后续通过pictures.add()函数调用具有相同名称图表时,可以只更新图表数据而不更改其位置或大小。
worksheet.pictures.add(figure, name='图片1', update=True, left=200) 
workbook.save(r'./data/table1.xlsx')
workbook.close()
app.quit()
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值