写点什么

Python 操作 Excel,从 xlwings 模块开始

作者:梦想橡皮擦
  • 2022 年 5 月 05 日
  • 本文字数:1536 字

    阅读完需:约 5 分钟

本篇博客继续为大家带来 Python 操作 Excel 文件的相关知识点,核心涉及的模块为 xlwings 。首先依旧是模块安装环节


pip install xlwings
复制代码

新建工作簿

import xlwings as xwapp = xw.App(visible=True,add_book=False)# 新建工作簿 wb = app.books.add()print(wb)
复制代码


默认打开电脑上的 office excel 软件。

打开已有工作簿

import xlwings as xwapp = xw.App(visible=True,add_book=False)wb = app.books.open('测试表格.xlsx')print(wb)
复制代码


第二种方法是


import xlwings as xwwb = xw.Book('测试表格.xlsx')
复制代码


保存工作簿,退出 工作簿,退出 Excel


wb.save('测试表格2.xlsx')wb.close()app.quit()
复制代码

操作 sheet

新建 sheet,表对象


wb.sheets.add("mySheet")
复制代码


删除 sheet


wb.sheets["mySheet"].delete()
复制代码


查看当前表格名


wb.sheets[1].name
复制代码


清空整张表格的内容和格式


wb.sheets[1].clear()
复制代码


重命名表格 sheet


wb.sheets[1].name= "修改名称"
复制代码


激活指定的 sheet


wb.sheets["mySheet"].activate()
复制代码

操作单元格

首先选中对应的 Sheet,然后进行实际操作,例如获取 A1 列数据


import xlwings as xw# 设置表格不可见app = xw.App(visible=False,add_book=False)wb = app.books.open('测试表格.xlsx')
sheet = wb.sheets["测试"]a1 = sheet.range('a1')for cell in a1: print(cell.value)
复制代码


输出内容如下所示,对应匹配可以查看下图内容。


姓名橡皮擦打老虎NoneNone
复制代码



参考上述内容,可以读取一下 A1~C3 区域内容。


import xlwings as xw# 设置表格不可见app = xw.App(visible=False,add_book=False)wb = app.books.open('测试表格.xlsx')
sheet = wb.sheets["测试"]a1 = sheet.range('A1:C3')for cell in a1: print(cell.value)
复制代码


输出如下内容


姓名班级年龄橡皮擦Python18.0打老虎PHP20.0
复制代码


注意,由于上述代码没有关闭文件内容,所以在进程中会出现多个 Excel 进程,并且导致文件不可写。

写入数据

单个单元格写入


import xlwings as xw# 设置表格不可见app = xw.App(visible=True,add_book=False)wb = app.books.open('测试表格.xlsx')
sheet = wb.sheets["测试"]a1 = sheet.range('A1')a1.value = "橡皮擦CA"
wb.save('测试表格.xlsx')wb.close()app.quit()
复制代码


如果希望写入 A1~D1 数据,可以直接用列表进行复制。


sht.range('A1:D1').value = [1,2,3,4]
复制代码


如果希望在 A2~A5 输入一列数据,参考下述代码,但是得到的并不是理想内容,得到的是一行数据。


import xlwings as xwapp = xw.App(visible=True,add_book=False)wb = app.books.open('测试表格.xlsx')
sheet = wb.sheets["mySheet"]
sheet.range('A2:A5').value = [5,6,7,8] # 此时会从 A1 ~ A5 输入
wb.save('测试表格.xlsx')wb.close()app.quit()
复制代码



修改次内容的办法如下


import xlwings as xwapp = xw.App(visible=True,add_book=False)wb = app.books.open('测试表格.xlsx')
sheet = wb.sheets["mySheet"]
# sheet.range('A2:A5').value = [5,6,7,8] # 此时会从 A2 ~ D5 输入sheet.range('A2').options(transpose=True).value = [5,6,7,8]
wb.save('测试表格.xlsx')wb.close()app.quit()
复制代码

写入表格


代码如下所示


sheet.range('A1').expand('table').value = [['a','b','c'],['d','e','f'],['g','h','i']]
复制代码


其它操作,例如修改单元格背景色


rng = sheet.range('A1')rng.color=(255,0,0)  # 设置range的背景颜色
复制代码


获取 range 的总行数


rng = sheet.range('A1:A6')a = rng.rows.count  # range的总行数print(a)
复制代码

记录时间

2022 年度 Flag,写作的 <font color=red>576</font> / 1024 篇。可以<font color=#04a9f4>关注</font>我,<font color=#04a9f4>点赞</font>我、<font color=#04a9f4>评论</font>我、<font color=#04a9f4>收藏</font>我啦。


发布于: 刚刚阅读数: 2
用户头像

爬虫 100 例作者,蓝桥签约作者,博客专家 2021.02.06 加入

6 年产品经理+教学经验,3 年互联网项目管理经验; 互联网资深爱好者; 沉迷各种技术无法自拔,导致年龄被困在 25 岁; CSDN 爬虫 100 例作者。 个人公众号“梦想橡皮擦”。

评论

发布
暂无评论
Python 操作 Excel,从 xlwings 模块开始_5月月更_梦想橡皮擦_InfoQ写作社区