C#读取Excel中的公式,并生成值

发布时间:2023年12月19日

在C#中读取Excel中的公式并生成其计算结果可以使用开源库如EPPlus或Microsoft.Office.Interop.Excel,如果是.xlsm宏文件需用到Microsoft.Office.Interop.Excel。

1.EPPlus方式

using System;
using OfficeOpenXml;

class Program
{
? ? static void Main()
? ? {
? ? ? ? string filePath = "your_excel_file.xlsx";

? ? ? ? using (var package = new ExcelPackage(new System.IO.FileInfo(filePath)))
? ? ? ? {
? ? ? ? ? ? var worksheet = package.Workbook.Worksheets[0]; // 选择第一个工作表

? ? ? ? ? ? // 设置 A1 的值
? ? ? ? ? ? worksheet.Cells["A1"].Value = 5;

? ? ? ? ? ? // 计算整个工作表中的公式
? ? ? ? ? ? worksheet.Calculate();

? ? ? ? ? ? // 获取 A2 的值
? ? ? ? ? ? double result = worksheet.Cells["A2"].GetValue<double>();

? ? ? ? ? ? Console.WriteLine("Input Value (A1): " + worksheet.Cells["A1"].Value);
? ? ? ? ? ? Console.WriteLine("Calculated Result (A2): " + result);
? ? ? ? }
? ? }
}
?

2.Excel方式

using System;
using Microsoft.Office.Interop.Excel;

class Program
{
? ? static void Main()
? ? {
? ? ? ? string filePath = "your_excel_file.xlsm";

? ? ? ? // 创建一个 Excel 应用程序对象
? ? ? ? Application excelApp = new Application();

? ? ? ? // 打开工作簿
? ? ? ? Workbook workbook = excelApp.Workbooks.Open(filePath);

? ? ? ? // 获取第一个工作表
? ? ? ? Worksheet worksheet = workbook.Sheets[1];

? ? ? ? // 设置 A1 的值
? ? ? ? Range rangeA1 = worksheet.Cells["A1"];
? ? ? ? rangeA1.Value = 5;

? ? ? ? // 计算整个工作表中的公式
? ? ? ? workbook.Calculate();

? ? ? ? // 获取 A2 的值
? ? ? ? Range rangeA2 = worksheet.Cells["A2"];
? ? ? ? double result = (double)rangeA2.Value;

? ? ? ? Console.WriteLine("Input Value (A1): " + rangeA1.Value);
? ? ? ? Console.WriteLine("Calculated Result (A2): " + result);

? ? ? ? // 关闭工作簿和 Excel 应用程序
? ? ? ? workbook.Close(false);
? ? ? ? excelApp.Quit();
? ? }
}
?

文章来源:https://blog.csdn.net/qq_33790894/article/details/135014153
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。