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

 

xlwings的特色

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

基本操作

 
xlwings基本对象
  1. 打开已保存的Excel文档
    # 导入xlwings模块,打开Excel程序,默认设置:程序可见,只打开不新建工作薄,屏幕更新关闭
    import xlwings as xw
    app=xw.App(visible=True,add_book=False)
    app.display_alerts=False
    app.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 xw
    app=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 xw
    app=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 xw
    app=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:J10
    rng=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,4
    sht.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
链接:https://www.jianshu.com/p/e21894fc5501
來源:简书

xlwings excel(一)的更多相关文章

  1. xlwings excel(四)

    前言 当年看<别怕,Excel VBA其实很简单>相见恨晚,看了第一版电子版之后,买了纸质版,然后将其送人.而后,发现出了第二版,买之收藏.之后,发现Python这一编程语言,简直是逆天, ...

  2. xlwings excel(三)

    App相当于Excel程序,Book相当于工作簿.N个Excel程序则由apps表示,N个工作簿由books表示. 对工作簿的操作 #导入xlwings模块 import xlwings as xw ...

  3. xlwings excel(二)

    常用函数和方法 Book 工作簿常用的apiwb=xw.books[‘工作簿名称'] wb.activate()激活为当前工作簿 wb.fullname 返回工作簿的绝对路径 wb.name 返回工作 ...

  4. python xlwings Excel 内容截图

    import xlwings as xw from PIL import ImageGrab def excel_save_img(path, sheet=0, img_name="1&qu ...

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

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

  6. xlwings: Write Excel macro using python instead of VBA

    i want to write Excel macros to deal with the data, but i am not familiar with VBA language. so i de ...

  7. 利用 Python 插件 xlwings 读写 Excel

    Python 通过 xlwings 读取 Excel 数据 去年底公司让我做设备管理,多次委婉拒绝,最终还是做了.其实我比较喜欢技术.做管理后发现现场没有停机率统计,而原始数据有,每次要自己在Exce ...

  8. 插上翅膀,让Excel飞起来——xlwings(四)

    前言 当年看<别怕,Excel VBA其实很简单>相见恨晚,看了第一版电子版之后,买了纸质版,然后将其送人.而后,发现出了第二版,买之收藏.之后,发现Python这一编程语言,简直是逆天, ...

  9. 插上翅膀,让Excel飞起来——xlwings(三)

    xlwings基本对象 xlwings基本对象 App相当于Excel程序,Book相当于工作簿.N个Excel程序则由apps表示,N个工作簿由books表示. 对工作簿的操作 #导入xlwings ...

随机推荐

  1. Linux 内核PCI去除一个驱动

    去除一个驱动是一个非常容易的动作. 对于一个 PCI 驱动, 驱动调用 pci_unregister_driver 函数. 这个函数只调用驱动核心函数 driver_unregister, 使用 一个 ...

  2. 天使玩偶/SJY摆棋子

    P4169 [Violet]天使玩偶/SJY摆棋子 CDQ分治的题目. 我们发现题目要我们求的\(|A_x-B_x|+|A_y-B_y|\)的绝对值号比较恶心. 试想一下怎么去掉 如果所有的点都在我们 ...

  3. Java 学习笔记(4)——面向对象

    现在一般的语言都支持面向对象,而java更是将其做到很过分的地步,java是强制使用面向对象的写法,简单的写一个Hello Word都必须使用面向对象,这也是当初我很反感它的一点,当然现在也是很不喜欢 ...

  4. 【Linux】一个定时任务小脚本

    需要一个定时任务,每隔固定时间停止,等待几分钟,然后在启动,每5分钟一个循环. 简要写了一下,如下,未来在优化: 3,8,13,18,23,28,33,38,43,48,53,58 * * * * s ...

  5. HMaster/HRegion Server 工作原理

      1.HBase系统架构       2. HRegion Sever架构图 0.94之前的版本 0.96+的版本 WAL: 即Write Ahead Log, 是HDFS上一个文件,早期版本中称为 ...

  6. 第二阶段:流程图:8.axure绘制简单业务流程图

    元件库选择流程图 流程图示例 一个简单的注册练习 线上可以写字 作业

  7. [梁山好汉说IT] 如何理解一致性Hash

    [梁山好汉说IT] 如何理解一致性Hash 0x00 摘要 用梁山酒店分配客人为例来理解一致性Hash. 0x01. 与经典哈希方法的对比 经典哈希方法:总是假设内存位置的数量是已知且固定不变的.因为 ...

  8. CPP 设计模式学习

    源地址 https://www.ev0l.art/index.php/archives/20/ 备忘录模式 在一个类内部记录另一个类的快照状态的模式.可以再合适的时候跳回复用 设计备忘录的三大步骤: ...

  9. Python3 pip换源

    pip安装源 介绍 """ 1.采用国内源,加速下载模块的速度 2.常用pip源: -- 豆瓣:https://pypi.douban.com/simple -- 阿里: ...

  10. 2020了你还不会Java8新特性?(五)收集器比较器用法详解及源码剖析

    收集器用法详解与多级分组和分区 为什么在collectors类中定义一个静态内部类? static class CollectorImpl<T, A, R> implements Coll ...