当前位置: 首页 > news >正文

无需安装 Office,用 Python 轻松替换 Excel 数据

核心对象模型
库的核心操作围绕两个对象展开:

Workbook:代表整个 Excel 工作簿,负责文件的加载与保存
Worksheet:代表单个工作表,提供单元格访问与查找替换能力
导入方式:

from spire.xls import *
from spire.xls.common import *
基本用法:在整个工作表中查找和替换
最基础的操作是在整个工作表中查找特定文本并将其替换为新内容。核心方法是Worksheet.FindAllString(),它返回所有包含指定字符串的单元格。

以下示例演示了如何将工作表中所有的“总数”替换为“合计金额”,并高亮显示被修改的单元格:

from spire.xls import *
from spire.xls.common import *

创建Workbook对象

workbook = Workbook()

加载Excel文件

workbook.LoadFromFile(“数据.xlsx”)

获取第一个工作表

worksheet = workbook.Worksheets[0]

查找工作表中包含"总数"的所有单元格

参数:要查找的字符串、是否区分大小写、是否完全匹配

ranges = worksheet.FindAllString(“总数”, False, False)

遍历找到的单元格并替换

for range in ranges:

range.Text = “合计金额”

设置背景色以突出显示被修改的单元格

range.Style.Color = Color.get_Yellow()

保存结果文件

workbook.SaveToFile(“替换结果.xlsx”, ExcelVersion.Version2016)

workbook.Dispose()

FindAllString()方法的三个参数分别表示:待查找的字符串、是否区分大小写(True 为区分)、是否要求完全匹配(True 为完全匹配)。

在指定单元格区域中查找和替换
当工作表数据量大时,限定搜索范围可以提高效率并避免误改。通过Worksheet.Range[]获取特定区域后,使用CellRange.FindAllString()方法在该区域内查找:

from spire.xls import *
from spire.xls.common import *

workbook = Workbook()

workbook.LoadFromFile(“数据.xlsx”)

sheet = workbook.Worksheets[0]

获取指定的单元格区域(A6到C13)

range = sheet.Range[“A6:C13”]

在该区域内查找包含"总数"的单元格

cells = range.FindAllString(“总数”, False, False)

for cell in cells:

cell.Text = “合计金额”

cell.Style.Color = Color.get_Yellow()

workbook.SaveToFile(“区域替换结果.xlsx”, ExcelVersion.Version2016)

workbook.Dispose()

高级技巧:查找后执行条件替换
在实际场景中,替换逻辑可能不是简单的文本替换,而是需要根据条件进行判断。以下示例展示了如何在查找后根据单元格原有内容执行不同的替换逻辑:

from spire.xls import *
from spire.xls.common import *

workbook = Workbook()

workbook.LoadFromFile(“销售数据.xlsx”)

worksheet = workbook.Worksheets[0]

查找所有包含数字的单元格(假设需要将销售额单位从"元"改为"万元")

ranges = worksheet.FindAllString(“元”, False, False)

for range in ranges:

original = range.Text

提取数字部分并转换为万元

try:

假设原始格式为"1234元"

num = float(original.replace(“元”, “”))

range.Text = f"{num / 10000:.2f}万元"

except:

如果格式不匹配,保持原样

pass

workbook.SaveToFile(“条件替换结果.xlsx”, ExcelVersion.Version2016)

workbook.Dispose()

http://www.jsqmd.com/news/1157406/

相关文章:

  • UE4SS深度解析:从DLL注入到Lua脚本,解锁虚幻引擎游戏模组开发
  • 嵌入式报警系统设计与压电蜂鸣器驱动优化
  • Betaflight飞控固件:2025年终极开源飞行控制解决方案
  • Agent 核心原理:把关键能力落到项目里
  • 基于单片机人脸识别电子密码锁智能门禁指纹识别语音提醒防盗成品123(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码
  • 命令行大文件上传解决方案:zenodo-upload的技术原理与实践指南
  • OpenClaw:面向Linux的可插拔技能引擎与一键部署实践
  • 振动试验参数解析:扫频速率 1 Oct/min 与 5 Hz/s 的3点核心差异
  • PyTorch nn.CrossEntropyLoss 实战:3种权重设置与标签平滑对比(附代码)
  • 【JAVA毕设源码分享】基于SpringBoot的动物园管理系统的设计与实现(程序+文档+代码讲解+一条龙定制)
  • 蓝牙 5.4 协议栈深度解析:从 HCI 到 L2CAP 的 7 层数据流
  • OpenClaw本地化部署:xParse文档解析引擎实战指南
  • Codex AI工具磁盘I/O冲突排查:解决系统卡顿与启动故障
  • Caspar:基于符号编程的GPU加速非线性优化库
  • npm全局命令not found的7个精准修复方案
  • 51单片机+DS1302+LCD1602:3种时间显示方案与闰年自动处理代码对比
  • R语言环境安装全指南:R、Rtools与RStudio三步协同配置
  • WSL2 Kali Linux 2025.1 空间优化:从C盘迁移至D盘并释放10GB+
  • 安徽省豆包排名哪家实力强 - 招财兔数字员工
  • 大模型稳定输出JSON的实战方案:从原理到95%+正确率实现
  • 基于MA12070与PIC24FJ的高保真音频系统设计
  • OpenClaw龙虾AI:中文友好型零代码智能体框架实战指南
  • 基于springboot的留学信息推荐系统的设计与实现
  • Quartus 18.1 .qxp 网表文件:3种导入方式对比与命令行自动化脚本
  • Windows Docker加速与Portainer图形化管理实战指南
  • Python车道线检测实战包:带实拍视频、测试图和分步可视化脚本
  • 我为什么放弃使用大模型
  • 本体语义搜索——企业AI怎么从“搜关键词“到“搜语义“
  • Android扫码枪开发套件:支持UHF RFID读写与一维二维条码扫描
  • 2026 徐州本地废铜、废铁、废铝回收优质公司推荐榜单(本地工厂优选) - 星际AI