打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
python excel神器xlwings

(–本文是个人学习和使用过程中的总结,如有错误欢迎指正 )

最近工作需要整理将近60位同事的周报合并到一个excel中,每周都会占用的大量的时间。希望把这个工作自动化,网上看了下基本都是用vba编程实现这一功能。由于没有使用过vba,希望使用自己会的东西去实现。
我们的周报模板大致是这个样子的:

搜了下python操作excel的包,看到最多的是xlrd和xlwt。我的操作其实很简单就是拷贝每一个excel中的内容并粘贴到一个汇总的excel,但这两个包好像并不符合我的要求。

偶然间看到xlwings这个python包,使用这个包基本可以实现你在excel中的操作,如选中B5 到J20 这些单元格中的数据。这正是我想要的,写了个简单的脚本实现周报的整理,在这里记录下。
使用中参考了xlwings官方文档
我主要使用了WorkBook、Sheet、Range这三个。

import xlwings as xw#app_visible=False 不打开excel窗口wb = xw.Workbook(path), app_visible=False)detail_sheet = xw.Sheet(unicode('任务详细信息', 'utf-8'))#获取有数据的最大行数,由于我们单个excel数据不会超过几十行,我使用的是B4:I40last_row_index = xw.Range(detail_sheet, 'B4').table.last_cell.row#确定我们选取的数据范围,如: B4:I20rg = 'B4:I' + str(last_row_index)#获取划定范围单元格中的数据work_detail = xw.Range(detail_sheet, rg).value#关闭打开的excelwb.close()

接下来就是将work_detail 获取到的数据拷贝到我们汇总的excel中,代码几乎一致

target_excel_path = u'F:\经分应用产品线小组周报模板.xlsx'wb_target = xw.Workbook(target_excel_path, app_visible=False)cr_sheet = xw.Sheet(u'任务详细信息')#清空内容,单不清空格式xw.Range(cr_sheet, 'B4:I200').clear_contents()xw.Range(cr_sheet, 'B4').table.value = work_detailwb_target.save(u'F:\经分应用产品线小组周报.xlsx')wb_target.close()
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
语法概述 · xlwings中文文档 · 看云
超全整理|Python 操作 Excel 库 xlwings 常用操作详解!
Python提取 “Excel文本框” 内容,这个需求头一次见,1000个表,10行代码!
Python最好的Excel第三方库
详解python的xlwings库读写excel操作总结
python+openpyxl创建excel
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服