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

news/2024/7/21 6:55:04 标签: c#, excel, 开发语言

在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();
    }
}
 


http://www.niftyadmin.cn/n/5266937.html

相关文章

mfc配置halcon环境

新建mfc窗体 选择基于对话框 打开项目属性 1、附加包含目录添加&#xff1a; $(HALCONROOT)\include;$(HALCONROOT)\include\halconcpp 2、链接器->常规->附加库目录 $(HALCONROOT)\lib\x64-win64 3、链接器->输入->附加依赖项 halcon.lib;halconcpp.lib 在对话…

等等Domino 14.0FP1

大家好&#xff0c;才是真的好。 节奏确实太快了&#xff0c;有时候我深感我也追不上。 以前Notes Domino是三年磨一剑&#xff0c;也就说每三年才发一个大版本&#xff0c;从2019年开始&#xff0c;进行了高频提速&#xff0c;居然一年一个大版本&#xff01; 周末&#xf…

网络安全Web学习记录———CTF---Web---SQL注入(GET和POST传参)例题

小白初见&#xff0c;若有问题&#xff0c;希望各位大哥多多指正~ 我的第一道web类CTF题——一起来撸猫o(•ェ•)m-CSDN博客 最开始学习CTF里的web方向时&#xff0c;每次做了题遇到类似的老是忘记之前的解法&#xff0c;所以写点东西记录一下。听大哥的话&#xff0c;就从最…

金融数据:企业财务数据

在当今的商业环境中&#xff0c;财务数据的重要性是不可忽视的。对于企业而言&#xff0c;财务数据不仅是记录和反映企业经营状况的重要指标&#xff0c;更是帮助企业做出决策、规划未来发展的重要依据。因此&#xff0c;正确认识财务数据的重要性&#xff0c;对于企业的经营和…

nodejs微信小程序+python+PHP血液中心管理平台的设计与实现-计算机毕业设计推荐

在二十一世纪的今天&#xff0c;我国献血总量已经不容小觑&#xff0c;在全国人民的不懈努力下&#xff0c;贫血、缺血的病人已经有了足够的血液保障。与此同时&#xff0c;采血工作和血液入库、出库等工作也日愈繁重。为进一步提高采血工作和血液中心的工作效率&#xff0c;开…

0001.WIN7(64位)安装ADS1.2出现L6218错误

用了十多年的笔记本电脑系统出现问题&#xff0c;硬件升级重装以后安装ADS1.2。在编译代码的时候出现L6218错误。如下&#xff1a; 图片是从网上找的&#xff0c;我编译出错的界面没有保留下来。 首先&#xff0c;代码本身没有任何问题 &#xff0c;代码在win7(32位)下编译没有…

2312d,d语言作为胶水,用C++调用rust

原理 源码: //主.cpp void foo(); int 主() {foo();中 0; }编译r.rs(被调用函数)文件: //r.rs编译命令. rustc --target i686-pc-windows-msvc r.rs --crate-type staticlib //r.rs文件内容,生成r.lib(11.2M)有点大. //用要staticlib.否则不行. //如果没有i686-pc-windows-m…

Docker-consul容器服务自动发现与注册

什么叫微服务或者注册与发现&#xff1f; 是一种分布式管理系统&#xff0c;定位服务的方法。 在传统的架构中&#xff0c;应用程序之间直连到已知的服务。 已知的服务&#xff1a;设备提供的网络、IP地址、基于tcp/ip端口 基于现微服务部署&#xff0c;服务的动态性&#…