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:I40
last_row_index = xw.Range(detail_sheet, "B4").table.last_cell.row
#确定我们选取的数据范围,如: B4:I20
rg = "B4:I" + str(last_row_index)
#获取划定范围单元格中的数据
work_detail = xw.Range(detail_sheet, rg).value
#关闭打开的excel
wb.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_detail
wb_target.save(u"F:\经分应用产品线小组周报.xlsx")
wb_target.close()

(PS 后面希望加入自动添加数据透视图的功能,暂时还没找到这方面的接口)

好了,以后只需要run一下python脚本,自动整理并且发送邮件给负责人。
搞定 。。。。。。

  • 6
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值