当你需要与他人共享 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# 代码实现相同的功能,可以参考以下步骤:
-
创建一个 Workbook 实例。
-
使用 Workbook.LoadFromFile() 方法加载示例 Excel 文件。
-
遍历文件中的工作表,然后遍历每个工作表中的单元格。
-
使用 CellRange.HasFormula 属性判断单元格是否包含公式。
-
如果包含公式,则通过 CellRange.FormulaValue 属性获取公式的计算结果值。接着,清除单元格中的原始公式,并使用 CellRange.Value2 属性将单元格内容替换为该值。
-
最后,使用 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 天的试用许可证。