使用C#代码删除 Excel 中的公式但保留数值

当你需要与他人共享 Excel 文件,但又不希望他们访问其中的公式时,将公式转换为数值是一种安全的做法。这样,接收者可以查看并使用计算结果,而无法更改原始计算过程。本文将介绍如何使用 Spire.XLS for .NET 以编程方式删除 Excel 单元格中的公式,但保留其数值。

安装 Spire.XLS for .NET

首先,你需要将 Spire.XLS for .NET 包中包含的 DLL 文件添加为 .NET 项目的引用。你可以通过以下两种方式获取这些 DLL 文件:从提供的链接下载,或通过 NuGet 进行安装。

cs 复制代码
PM> Install-Package Spire.XLS

在 C# 中删除 Excel 单元格中的公式但保留数值

在 Microsoft Excel 中,可以使用"粘贴数值"功能来删除公式而保留计算结果。如果你想通过 C# 代码实现相同的功能,可以参考以下步骤:

  1. 创建一个 Workbook 实例。

  2. 使用 Workbook.LoadFromFile() 方法加载示例 Excel 文件。

  3. 遍历文件中的工作表,然后遍历每个工作表中的单元格。

  4. 使用 CellRange.HasFormula 属性判断单元格是否包含公式。

  5. 如果包含公式,则通过 CellRange.FormulaValue 属性获取公式的计算结果值。接着,清除单元格中的原始公式,并使用 CellRange.Value2 属性将单元格内容替换为该值。

  6. 最后,使用 Workbook.SaveToFile() 方法保存结果文件。

完整示例代码如下:

cs 复制代码
using Spire.Xls;
using System;
namespace RemoveFormulas
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建一个 Workbook 实例
            Workbook workbook = new Workbook();

            //加载一个 Excel 文件
            workbook.LoadFromFile("Sample.xlsx");

            //遍历工作表
            foreach (Worksheet sheet in workbook.Worksheets)
            {
                //遍历单元格
                foreach (CellRange cell in sheet.Range)
                {
                    //判断单元格是否包含公式
                    if (cell.HasFormula)
                    {
                        //如果有,获取单元格中的公式值
                        Object value = cell.FormulaValue;

                        //清除单元格内容
                        cell.Clear(ExcelClearOptions.ClearContent);

                        //将公式计算值填入单元格
                        cell.Value2 = value;
                    }
                }
            }

            //保存结果文件
            workbook.SaveToFile("DeleteFormula.xlsx", ExcelVersion.Version2016);
        }
    }
}

申请临时许可证

如果您希望去除生成文档中的评估信息,或解除功能限制,请申请一个为期 30 天的试用许可证。

相关推荐
herinspace2 小时前
如何解决管家婆辉煌零售POS中显示的原价和售价不一致?
网络·人工智能·学习·excel·语音识别·零售
l1t6 小时前
duckdb excel插件和rusty_sheet插件在python中的不同表现
开发语言·python·excel
agilearchitect6 小时前
Matlab导入Excel表格教程:从基础到进阶全攻略
数据结构·其他·matlab·excel
AC赳赳老秦6 小时前
OpenClaw与Excel联动:批量读取/写入数据,生成可视化报表
开发语言·python·excel·产品经理·策略模式·deepseek·openclaw
做cv的小昊7 小时前
【TJU】研究生应用统计学课程笔记(4)——第二章 参数估计(2.1 矩估计和极大似然估计、2.2估计量的优良性原则)
人工智能·笔记·考研·数学建模·数据分析·excel·概率论
火星papa7 小时前
C# 【通过NPIO读写Excel表】
c#·excel·npoi
葡萄城技术团队8 小时前
Excel公式前的“@”符号:是Bug还是黑科技?
科技·bug·excel
爱折磨键盘的大鹏8 小时前
若依框架实现Excel动态下拉(查库)
excel
Omics Pro1 天前
华大等NC|微生物多样性与抗菌物质发现
大数据·人工智能·深度学习·语言模型·excel
愚公搬代码1 天前
【愚公系列】《OpenClaw实战指南》012-分析与展示:一句话生成可发给老板的报表与 PPT(Excel/WPS 表格自动化处理)
人工智能·自动化·powerpoint·excel·飞书·wps·openclaw