python操作Excel的模块,网上提到的模块大致有:xlwings、xlrd、xlwt、openpyxl、pyxll等,他们提供的功能归纳起来有两种:一、用python读写Excel文件,实际上就是读写有格式的文本文件,操作excel文件和操作text、csv文件没有区别,Excel文件只是用来储存数据。二、除了操作数据,还可以调整Excel文件的表格宽度、字体颜色等。另外需要提到的是用COM调用Excel的API操作Excel文档也是可行的,相当麻烦基本和VBA没有区别。

xlwings官网.png

xlwings的特色

  • xlwings能够非常方便的读写Excel文件中的数据,并且能够进行单元格格式的修改
  • 可以和matplotlib以及pandas无缝连接
  • 可以调用Excel文件中VBA写好的程序,也可以让VBA调用用Python写的程序。
  • 开源免费,一直在更新

    基本操作

xlwings基本对象

  1. 打开已保存的Excel文档

     # 导入xlwings模块,打开Excel程序,默认设置:程序可见,只打开不新建工作薄,屏幕更新关闭import xlwings as xwapp=xw.App(visible=True,add_book=False)app.display_alerts=Falseapp.screen_updating=False# 文件位置:filepath,打开test文档,然后保存,关闭,结束程序filepath=r'g:\Python Scripts\test.xlsx'wb=app.books.open(filepath)wb.save()wb.close()app.quit()
  2. 新建Excel文档,命名为test.xlsx,并保存在D盘。
     import xlwings as xwapp=xw.App(visible=True,add_book=False)wb=app.books.add()wb.save(r'd:\test.xlsx')wb.close()app.quit()
  3. 在单元格输入值
    新建test.xlsx,在sheet1的第一个单元格输入 “人生” ,然后保存关闭,退出Excel程序。

     import xlwings as xwapp=xw.App(visible=True,add_book=False)wb=app.books.add()# wb就是新建的工作簿(workbook),下面则对wb的sheet1的A1单元格赋值wb.sheets['sheet1'].range('A1').value='人生'wb.save(r'd:\test.xlsx')wb.close()app.quit()

    打开已保存的test.xlsx,在sheet2的第二个单元格输入“苦短”,然后保存关闭,退出Excel程序

     import xlwings as xwapp=xw.App(visible=True,add_book=False)wb=app.books.open(r'd:\test.xlsx')# wb就是新建的工作簿(workbook),下面则对wb的sheet1的A1单元格赋值wb.sheets['sheet1'].range('A1').value='苦短'wb.save()wb.close()app.quit()

    掌握以上代码,已经完全可以把Excel当作一个txt文本进行数据储存了,也可以读取Excel文件的数据,进行计算后,并将结果保存在Excel中。

引用工作簿、工作表和单元格

  1. 引用工作簿,注意工作簿应该首先被打开

     wb.=xw.books['工作簿的名字‘]
  2. 引用活动工作簿
     wb=xw.books.active
  3. 引用工作簿中的sheet
     sht=xw.books['工作簿的名字‘].sheets['sheet的名字']# 或者wb=xw.books['工作簿的名字']sht=wb.sheets[sheet的名字]
  4. 引用活动sheet
     sht=xw.sheets.active
  5. 引用A1单元格
     rng=xw.books['工作簿的名字‘].sheets['sheet的名字']# 或者sht=xw.books['工作簿的名字‘].sheets['sheet的名字']rng=sht.range('A1')
  6. 引用活动sheet上的单元格
     # 注意Range首字母大写rng=xw.Range('A1')

    其中需要注意的是单元格的完全引用路径是:

       # 第一个Excel程序的第一个工作薄的第一张sheet的第一个单元格xw.apps[0].books[0].sheets[0].range('A1')

    迅速引用单元格的方式是

       sht=xw.books['名字'].sheets['名字']# A1单元格rng=sht[’A1']# A1:B5单元格rng=sht['A1:B5']# 在第i+1行,第j+1列的单元格# B1单元格rng=sht[0,1]# A1:J10rng=sht[:10,:10]

PS: 对于单元格也可以用表示行列的tuple进行引用

      # A1单元格的引用xw.Range(1,1)#A1:C3单元格的引用xw.Range((1,1),(3,3))

储存数据

  1. 储存单个值

       # 注意".value“sht.range('A1').value=1
  2. 储存列表
        # 将列表[1,2,3]储存在A1:C1中sht.range('A1').value=[1,2,3]# 将列表[1,2,3]储存在A1:A3中sht.range('A1').options(transpose=True).value=[1,2,3] # 将2x2表格,即二维数组,储存在A1:B2中,如第一行1,2,第二行3,4sht.range('A1').options(expand='table')=[[1,2],[3,4]]

读取数据

  1. 读取单个值

     # 将A1的值,读取到a变量中a=sht.range('A1').value
  2. 将值读取到列表中
     #将A1到A2的值,读取到a列表中a=sht.range('A1:A2').value# 将第一行和第二行的数据按二维数组的方式读取a=sht.range('A1:B2').value

作者:LuckyFrog链接:http://www.jianshu.com/p/e21894fc5501來源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

转载于:https://www.cnblogs.com/catgatp/p/7875683.html

插上翅膀,让Excel飞起来——xlwings(一)相关推荐

  1. 炼丹秘术:给Embedding插上翅膀

    在实践中,推荐系统利用Deep Learning去生成Embedding,然后通过Embedding在召回层进行召回是一种常用的方法,而且这种方法在效果和响应速度上也不比多路召回差. 同时,在局部敏感 ...

  2. feachall php_集合:给 PHP 数组插上翅膀

    集合:给 PHP 数组插上翅膀 由 学院君 创建于2年前, 最后更新于 9个月前 版本号 #2 35657 views 7 likes 1 collects 简介 Illuminate\Support ...

  3. Spring Boot (六): 为 JPA 插上翅膀的 QueryDSL

    在前面的文章中,我们介绍了 JPA 的基础使用方式,<Spring Boot (三): ORM 框架 JPA 与连接池 Hikari>,本篇文章,我们由入门至进阶的介绍一下为 JPA 插上 ...

  4. 北斗时钟系统(网络授时服务器)为数字化变电站插上翅膀

    北斗时钟系统(网络授时服务器)为数字化变电站插上翅膀 北斗时钟系统(网络授时服务器)为数字化变电站插上翅膀 [摘要]本文介绍了电力系统目前所采用的时间同步方案技术的局限性以及存在的问题.在此基础上,提 ...

  5. 龙光地产补声东:数字化运营让业务插上翅膀|2021中国房地产数字峰会

     关注ITValue,看企业级最新鲜.最价值报道! 编者按:首届50+地产数字化最高决策者齐聚的"中国房地产数字峰会"已经圆满落幕.这场由中国房地产业协会指导.中国房地产业协会数字 ...

  6. 让沉默的大数据为人工智能插上翅膀

    让沉默的大数据为人工智能插上翅膀 运筹学能够让人工智能"学"会举一反三,从目前的解决具体问题发展为解决类型化的多种问题-- 应用广泛的人工智能.酷炫的黑科技,在不久前闭幕的重庆国际 ...

  7. 给科技插上翅膀,中兴以5G技术开启万物互联之旅

    随着5G行业应用场景的不断扩展及人工智能的发展,5G即将迎来新一轮技术革新.从生活到生产,5G技术无所不在,从人与人连接,到人与物.物与物连接,中兴通讯正以5G技术开启万物互联之旅:如在产品领域推出5 ...

  8. 插上翅膀,让Excel飞起来

    作者:早起收果子 链接:https://www.jianshu.com/p/7d6f53e3e6e9 来源:简书 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. python操作 ...

  9. 科技为汉字插上翅膀,动起来的汉字有多美

    语言文字是文化形成的基础,而文化的特性决定了其社会发展的轨迹.汉语首先从一种具有社会等级性质的文字到实现书面语与口语的统一.经过长时间的文字进化,如今的汉语已经越来越国际化.正如歌词"全世界 ...

最新文章

  1. springaop事务逻辑原理_太狠了!阿里大牛手写的Spring核心面试笔记:IOC+AOP+MVC+事务...
  2. 什么是ieee通用数据格式_Excel数据格式设置,我只用Ctrl+E,不仅功能强大,而且方便易操作...
  3. C/C++服务器开发的必备利器–libconfig
  4. Codeforces 861D - Polycarp's phone book 字典树/hash
  5. 无法监控端口_zabbix 监控远程主机端口
  6. linux之lsof查看端口占用情况
  7. html图标反色,Html5 反色 及其 透明 效果
  8. 写表单验证等页面的总结
  9. .NET微信扫码支付模式二API接口开发测试
  10. 斯坦福大学公开课机器学习课程(Andrew Ng)六朴素贝叶斯算法
  11. html语言中hr是什么意思,网页制作中的hr是什么意思
  12. 关于压电式雨量传感器技术相关问答的回复
  13. 矿业工程毕业论文题目
  14. python无法初始化设备_无法初始化图形设备什么意思
  15. MySQL学习之路 ------ 数据的增删改查、表明修改
  16. 14五规划里面的句子
  17. 通过XML对Word操作
  18. 情怀被消费完了,共享民宿靠什么坚守岗位?
  19. 银行业务细分,商业银行业务学习(二)
  20. PPT图转eps文件

热门文章

  1. 嵌套向量中断控制器NVIC和系统控制块SCB特性
  2. 汇编语言——基础知识
  3. linux安装manjaro创建分区失败,如何安装Manjaro Linux [最强指南]? 看完就知道了
  4. Mybatis使用总结
  5. Spring AOP通知顺序
  6. mysql一张表两个索引字段是建两颗独立索引树吗?
  7. 002_Spring Data JPA CRUD
  8. 分布式的信息处理需要利用计算机的,计算机应用基础(离线作业1)
  9. 美版iphone更新系统无服务器,大量美版iPhone“伪装”成国行出现在各大平台,遇到一定不要买...
  10. php去除最后一位,php字符串怎么去除最后一个字符