前言

由于月末对账需要,需要对比多个excel中的某一列数据,找出主表中某一列数据与其他几个excel表中的类似列存在的差异。本来wps有数据差异对比功能,但是需要收费,只能扣扣嗖嗖的自己写一个功能了,正好用一下xlwings

过程

1. 熟悉xlwings

xlwings是什么

xlwings是一个python模块,可以对excel进行几乎全部的操作,同时也可以替代vba,反向实现excel中调用python,来处理数据。同时支持mac和win

基础操作

  1. xlwings包含的对象与操作4个层次:App(excel程序) —> Book(excel文档) —> Sheet(文档页) —> Range(文档单元格)
  2. 基础操作代码示例
# 示例1
import xlwings as xw
wb = xw.Book('test.xlsx') # 如果只是打开单个文档的情况下,完全可以用xw来替代app
sheet = wb.sheets[0]
a1 = sheet.range('A1').value
# 示例2
import xlwings as xw
app = xw.App()
book = app.books.open('test.xlsx')
sheet = app.books['test.xlsx'].sheets[0]
# 选择第一个单元格
range_obj = sheet.range('A1')
# 选取第一列
range_obj = sheet.range('A1').expand('down')
# 选取第一行
range_obj = sheet.range('A1').expand('right')
# 选取表格
range_obj = sheet.range('A1').expand('table')
# range的总行数
rows_count = range_obj.rows.count
# range的第一行行标
row_index = range_obj.row
# 返回range的列数
columns_count = range_obj.columns.count
# range的第一列列标
column_index = range_obj.column
# 设置range的颜色
range_obj.color=(255,255,255)
# 清除range的背景色
range_obj.color=None
# 获取公式或者输入公式
range_obj.formula='=SUM(B1:B5)'
# 存储单个数据
range_obj.value=666
# 横向存储多个数据
sheet_obj.range('A1').value=[1,2,3]  #等同sheet_obj.range('a1:c1').value = [1,2,3]
#纵向存储多个数据
sheet_obj.range('A1').options(transpose=True).value=[1,2,3]
#直接存储多维数据
# 将2x2表格,储存在A1:B2中,如第一行1,2,第二行3,4
sheet_obj.range('A1').options(expand='table').value=[[1,2],[3,4]]
# 同上
sheet_obj.range('A1').expand('table').value = [[1,2],[3,4]]
# 读取数据的方法一致,为赋值左侧方法

2. 遇到问题

excel版本过低,无法完全自动化。由于环境(windows,安装的excel版本非常老旧,有些格式支持差,还报错,需要人为介入,效率低),平时主力使用的几乎都是wps,所以打算直接调用wps

3. 解决问题

  1. 先百度了一下,发现有不少解决方案,很多都是直接改库的源代码,尝试了下,是完全没有问题的。但是总觉得这种方案不可持续,说不定哪天更新了模块,又要去改回来
  2. 再仔细搜索,发现了一个外部引入,不需要修改源代码的方案:python使用xlwings操作wps
# 运行程序前,传入自定义的impl就可以了
_xl = COMRetryObjectWrapper(DispatchEx("ket.Application")) # 标识用wps运行
impl = xw._xlwindows.App(add_book=False, xl=_xl)
app = xw.App(visible=False, add_book=False, impl=impl) # visible可以控制是否展示wps

总结

xlwings,操作excel超级简单。使用打开文档的方案操作excel文档,程序退出后,会自动保存修改,无需特别操作

参考与扩展

  1. xlwings
  2. xlwings官方文档-英文

xlwings:python好用的excel操作模块相关推荐

  1. python数据分析报告的格式_Python数据报表之Excel操作模块用法分析

    本文实例讲述了Python数据报表之Excel操作模块用法.分享给大家供大家参考,具体如下: 一 点睛 Excel是当今最流行的电子表格处理软件,支持丰富的计算函数及图表,在系统运营方面广泛用于运营数 ...

  2. Fintech系列(三) -- python对excel操作模块汇总||推荐指数||用法示例

    python对excel操作模块汇总||推荐指数||用法示例 Working with Excel Files in Python 总览 读写Excel的python第三方开源模块 Excel写操作插 ...

  3. python对excel某一列去重-「总结篇」Python中所有的Excel操作技巧

    原标题:「总结篇」Python中所有的Excel操作技巧 Python对于Excel的操作是多种多样的,掌握了相关用法就可以随心所欲的操作数据了! 操作xls文件 xlrd(读操作): import ...

  4. Python os模块 -Python系统编程中的操作模块

    Python os模块 -Python系统编程中的操作模块 用途:处理(文件与目录)操作 以下为简单的常用操作 import os 导入os模块 help(os) 查看os模块帮助文档 os.name ...

  5. 用python实现自动化办公------Excel操作

    用python实现自动化办公------Excel操作 用python实现自动化办公------Excel操作 用python实现自动化办公------Excel操作 摘要 一 matplotlib和 ...

  6. Python Pandas读取修改excel操作攻略​​​​​​​

    Python Pandas读取修改excel操作攻略 环境:python 3.6.8 以某米赛尔号举个例子吧: >>> pd.read_excel('1.xlsx', sheet_n ...

  7. 【Python】 更棒的Excel操作模块xlwings

    [xlwings] 说到Python操作Excel,有好多模块都可以支持这个工作.比如最底层的win32模块不仅可以操作Excel,还可以操作其他一众windows的软件. 其他的比较熟悉的有xlrd ...

  8. 3.1 数据报表之Excel操作模块 XlsxWriter

    Excel是当前最流行的电子表格处理软件,支持丰富的计算函数及图表,在系统运营方面广泛用于运营数据报表,比如业务质量,资源利用,安全扫描等报表,同时也是应用系统常见的文件导出格式,以便数据使用人员做进 ...

  9. Python实战小程序——Excel操作

    Python中的Excel操作        python中的xlrd和xlwt两个模块可以对Excel进行各项操作.      第一步:安装模块的方法:       1.下载一个ez_setup.p ...

最新文章

  1. 【Java学习笔记之十】Java中循环语句foreach使用总结及foreach写法失效的问题
  2. 牛顿迭代法的可视化详解
  3. MDNICE使得你只需要关注内容
  4. 泰州市区首次试用“闯红灯人脸识别系统”;“冷扑大师”想用AI提高肾脏移植效率 | AI掘金晚报
  5. order by 影响效率么_提升开发效率N倍的20+命令行神器
  6. JavaWeb--JavaEE
  7. [转]自然语言处理中的Attention Model:是什么及为什么
  8. 编写并调试一个单道处理系统的作业调度模拟程序_操作系统系列(2):操作系统发展历史...
  9. Spark 之 解决数据倾斜(一)
  10. java 内存泄露 jmap_jmap命令 检查内存泄漏
  11. vs2010新功能(转)
  12. python字符串函数的使用方法_python字符串的操作函数
  13. IOS UIColor 自定义颜色
  14. Winsock传输数据
  15. RFID射频识别技术介绍及简单应用
  16. matlab四叉树分割代码,【测绘专用】 MATLAB 四叉树分割遥感图像
  17. linux批量修改文件编码格式(包含子目录)
  18. div左对齐与里面的内容偏左但是距离左边有点儿距离
  19. 2023年计算机专业毕业设计选题有哪些?(附源码)
  20. 怎样用c语言实现CPU超频,【七彩虹Z170评测】装机不求人25 教你一分钟学会CPU超频(全文)_七彩虹 战斧C.Z170-D3旗舰版 V20_DIY攒机装机不求人-中关村在线...

热门文章

  1. 跳槽了一半,原公司涨薪15%,突然感觉offer不香了......
  2. 想跳槽涨薪的必看!企业java开发用什么软件
  3. 大数据架构师须知—基础知识点
  4. 阿里云OSS使用脚本绑定自定义域名
  5. 一键脚本查看硬盘通电时间?
  6. 国内比较好的网站建设公司有哪些?
  7. 计算机专业申请计算生物学,赫瑞瓦特大学计算生物学硕士申请条件.pdf
  8. 内蒙古计算机软件考试时间,2016年下半年内蒙古计算机软件水平考试报名通知...
  9. 【资讯】TypeScript 官网新主页上线!
  10. PCA主成分分析实例