使用pycel将Excel移植到Python

devtools/2025/3/27 16:03:48/

1.适用需求

有些工作可能长期适用excel来进行公式计算,当需要把工作流程转换为可视化界面时,开发人员不懂专业逻辑,手动摸索公式很大可能出错,而且费时费力

2.可用工具及缺点

pandas    方便进行数据处理,支持各种格式的表格,但是不支持公式识别

openpyxl   能够读取表格公式,但是不能自动计算,只支持xlsx格式

如果在没有office或wps的软件中,他保存的值还是原来的值,如果你的系统可以办公软件,那将保存的新表格重新打开就可以计算了,或者用代码调用excel的引擎来重新计算(需要先安装软件),但是大多数情况下服务器上不安装这类软件

pycel   能够读取表格公式,并且支持重新计算,没有发现修改单元格的值的用法

3.解决方案

使用openpyxl修改表格中的输入参数(自变量),将表格另存为新表格之后(看需求,覆盖也行),用pycel来读取结果单元格

from openpyxl import load_workbook
from pycel import ExcelCompiler# --- 步骤 1:用 openpyxl 修改 A2 的值并保留公式 ---
wb = load_workbook("test.xlsx")
sheet = wb["Sheet1"]# 修改 A2 的值为 4(保留 N16 的公式)
sheet["A2"].value = 8# 保存到新文件(保留所有公式)
wb.save("test_modified.xlsx")# --- 步骤 2:用 pycel 解析并计算 N16 的值 ---
excel = ExcelCompiler(filename="test_modified.xlsx")
excel.recalculate()n16_value = excel.evaluate("Sheet1!N16")
print(f"修改后 N16 的值: {n16_value}")  # 输出公式计算结果

我测试了几个简单的公式,然后嵌套公式都没问题,官方说明里好像说的测了10个sheet以上的表没问题,估计也是支持sheet之间的公式传递的,我还没有测试

文章来源:https://blog.csdn.net/vener_/article/details/146420406
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ppmy.cn/devtools/169286.html

相关文章

CHM(ConcurrentHashMap)中的 sizeCtl 的作用与值变化详解

学海无涯,志当存远。燃心砺志,奋进不辍。愿诸君得此鸡汤,如沐春风,学业有成。若觉此言甚善,烦请赐赞一枚,共励学途,同铸辉煌 ConcurrentHashMap常简写为CHM,尤其是在讨论并发编程时。…

编码器线:精准连接,高效传动,引领未来科技的脉动

在日新月异的科技工业领域,每一个微小的进步都可能带来行业的巨大变革。而在这些变革的背后,往往隐藏着许多不为人知的“英雄”——它们默默地在设备的内部发挥着关键作用,确保每一道指令的精准执行,每一次传动的流畅无误。编码器…

JVM常见概念之不怎么常见的一些陷阱

问题 JIT 编译的最佳部分是什么?如果 JIT 决定编译该方法,它会编译其中的所有内容吗?我是否应该使用真实数据来预热方法?JIT 编译器有哪些技巧可以优化其编译时间? 基础知识 JIT编译器针对方法进行工作:…

从零实现B站视频下载器:Python自动化实战教程

一、项目背景与实现原理 1.1 B站视频分发机制 Bilibili的视频采用 音视频分离技术,通过以下方式提升用户体验: 动态码率适配(1080P/4K/HDR) 分段加载技术(基于M4S格式) 内容保护机制(防盗链/签名验证) 1.2 技术实现路线 graph TDA[模拟浏览器请求] --> B[获取加密…

云原生算力引擎:分布式推理的流体动力学

引言:算力黑洞的引力扰动 OpenAI推理集群日处理4.5亿次请求,CUDA 12.3实现μs级张量切换。特斯拉Dojo超算芯片间延迟0.5ns,阿里巴巴PAI平台节省58%训练时长。HuggingFace模型库下载量突破3亿次,AWS Inferentia芯片能效比提升8倍。…

【Java】链表(LinkedList)(图文版)

本博客总结了Java当中链表的实现,以及相关方法的使用,在最后附带了一些常见链表相关处理技巧,希望对你有帮助! ps:可拷贝到IDEA上自行测试,代码全部完成测试。 一.链表概述 1.什么是链表? 链…

Matlab:二维绘图篇——不同坐标系下的绘图命令

目录 1.极坐标系下绘图:polar命令 实例——极坐标图形 实例——直角坐标与极坐标系图形 2.半对数坐标系下绘图:semilogx和semilogy 实例——半对数坐标系图形 3.双对数坐标系下绘图:loglog 实例——双对数坐标系绘图 4.双y轴坐标&…

Android第四次面试(Java基础篇)

一、Java 中的 DCL 单例模式 单例模式是设计模式中最常用的模式之一,其核心目标是确保一个类在程序中仅有一个实例,并提供全局访问点。在 Java 中,实现单例模式需要兼顾线程安全和性能优化。DCL(Double-Checked Locking&#xff0…