自动化办公|xlwings与pandas交互

news/2025/3/2 0:24:17/

1. 介绍

在数据分析和 Excel 自动化中,pandas 作为 Python 处理数据的强大库,而 xlwings 则可以高效操作 Excel。将 pandasxlwings 结合使用,可以实现从 Excel 读取数据到 DataFrame、将 DataFrame 写入 Excel 以及 Excel 的自动化处理。


2. 从 Excel 读取数据到 Pandas DataFrame

2.1 读取整个表格

import xlwings as xw
import pandas as pdwb = xw.Book("example.xlsx")  # 打开 Excel 文件
sheet = wb.sheets["Sheet1"]   # 选择工作表# 读取 Excel 数据到 Pandas DataFrame
data = sheet.range("A1").expand().options(pd.DataFrame, index=False).value
print(data)

2.2 读取指定范围的数据

subset = sheet.range("A1:C10").options(pd.DataFrame, index=False).value
print(subset)

3. 将 Pandas DataFrame 写入 Excel

3.1 将 DataFrame 写入 Excel 指定位置

data = pd.DataFrame({"姓名": ["张三", "李四", "王五"],"年龄": [25, 30, 28],"城市": ["北京", "上海", "广州"]
})# 写入 Excel
sheet.range("A1").value = data

3.2 追加数据到 Excel

last_row = sheet.range("A" + str(sheet.cells.last_cell.row)).end("up").row
sheet.range(f"A{last_row+1}").value = data

4. 使用 Pandas 与 xlwings 自动化 Excel 处理

4.1 调整列宽

sheet.autofit("columns")  # 自动调整列宽

4.2 应用 Excel 公式

sheet.range("D2").formula = "=SUM(B2:B10)"  # 在 D2 单元格插入求和公式

4.3 设置 Excel 格式

sheet.range("A1:C1").font.bold = True  # 设置标题加粗
sheet.range("B:B").number_format = "0"  # 设置数值格式

5. 读取带有公式的 Excel 数据

5.1 获取公式内容

formulas = sheet.range("D2:D10").formula  # 获取公式而不是计算后的值
print(formulas)

5.2 获取公式计算后的值

values = sheet.range("D2:D10").value  # 获取计算后的值
print(values)

6. 结合 Pandas 与 xlwings 处理大数据

6.1 读取大数据集并转换

data = sheet.range("A1").expand().options(pd.DataFrame, index=False, chunksize=1000).value

6.2 分批写入 Excel

for i, chunk in enumerate(data):sheet.range(f"A{i*1000+1}").value = chunk

7. 结论

结合 pandasxlwings,我们可以高效地读取、写入和操作 Excel 数据,并利用 Excel 的自动化功能提升生产力。这种方法适用于数据分析、报表生成和企业自动化任务。


http://www.ppmy.cn/news/1575906.html

相关文章

Pycharm使用matplotlib出现的问题(1、不能弹出图表 2、图表标题中文不显示)

Pycharm使用matplotlib出现的问题 问题1:Pycharm调试时出现:AttributeError: module backend_interagg has no attribute FigureCanvas. Did you mean: FigureCanvasAgg? 排查原因:可能是由于matplotlib后端设置不正确或与运行环境不兼容引…

图数据库Neo4j面试内容整理-图遍历和最短路径

图遍历 和 最短路径 是图数据库中两个非常重要的概念,尤其是在图数据结构中,它们是解决许多问题(如社交网络分析、推荐系统、网络分析等)的核心算法。Neo4j 提供了强大的图遍历和最短路径查询能力,帮助用户有效地从图中提取信息。 1. 图遍历(Graph Traversal)

Java进阶:Zookeeper相关笔记

概要总结: ●Zookeeper是一个开源的分布式协调服务,需要下载并部署在服务器上(使用cmd启动,windows与linux都可用)。 ●zookeeper一般用来实现诸如数据订阅/发布、负载均衡、命名服务、集群管理、分布式锁和分布式队列等功能。 ●有多台服…

​PDF 工具箱 软件无需安装绿色版

​PDF 工具箱 嘿,朋友们!今天给大家介绍一款超棒的工具——PDF工具箱。这款神奇的小工具是由吾爱利用GPT精心打造的,简直就是PDF处理界的“小能手”,真正做到了用AI解放我们的双手,让处理PDF文件变得轻松又愉快。 这款…

从“记住我”到 Web 认证:Cookie、JWT 和 Session 的故事

文章目录 1. 初识 HTTP:一场没有记忆的对话2. Cookie:网站的“记忆” 🍪3. Session:服务端的“记忆” 🎯4. JWT:让用户自己带着“身份证” 🔑5. Cookie vs Session vs JWT 总结 📊6.…

开箱即用!一个功能丰富的 AI 语音工具箱!

当我们处理大量音频文件时,往往需要语音识别、转录甚至语音合成等多款工具协作完成工具。 这时候,要是有一款工具能够一站式解决从语音识别到语音合成的一切需求就好。 今天,我在 GitHub 上就发现了一款可本地部署的多功能 AI 语音工具箱&a…

MySQL 和 Elasticsearch 之间的数据同步

MySQL 和 Elasticsearch 之间的数据同步是常见的需求,通常用于将结构化数据从关系型数据库同步到 Elasticsearch 以实现高效的全文搜索、聚合分析和实时查询。以下是几种常用的同步方案及其实现方法: 1. 应用层双写(双写模式) 原…

Ecode前后端传值

说明 在泛微 E9 系统开发过程中,使用 Ecode 调用后端接口并进行传值是极为常见且关键的操作。在上一篇文章中,我们探讨了 Ecode 调用后端代码的相关内容,本文将深入剖析在 Ecode 中如何向后端传值,以及后端又该如何处理接收这些值…