You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#免费修改Excel文件且保留宏、文本框等元素方案咨询

免费修改Excel并保留宏、文本框等元素的方案

方案1:NPOI(Apache License 2.0,完全免费)

NPOI是.NET平台下的开源Excel处理库,支持读写xlsx/xlsm格式,能完整保留原有文件中的宏、文本框、形状等元素,无商用限制。

操作步骤

  1. 安装NuGet包:
Install-Package NPOI
Install-Package NPOI.OOXML
  1. 修改Excel的代码示例:
using NPOI.XSSF.UserModel;
using System.IO;

string templatePath = @"C:\template\from123.xlsx";
string outputPath = @"C:\template\XMLCopy.xlsx";

using (FileStream fs = new FileStream(templatePath, FileMode.Open, FileAccess.ReadWrite))
{
    XSSFWorkbook workbook = new XSSFWorkbook(fs);
    // 获取第一个工作表
    var sheet = workbook.GetSheetAt(0);
    // 定位B11单元格(NPOI行/列从0开始计数,B11对应行10、列1)
    var cell = sheet.GetRow(10)?.GetCell(1);
    cell ??= sheet.GetRow(10).CreateCell(1);
    cell.SetCellValue("5");

    // 保存文件,自动保留宏、文本框等原有元素
    using (FileStream outputFs = new FileStream(outputPath, FileMode.Create, FileAccess.Write))
    {
        workbook.Write(outputFs);
    }
}

方案2:EPPlus 4.x(MIT License,免费商用)

EPPlus 4.x版本采用MIT协议,完全免费可商用,支持处理xlsm文件并保留VBA宏和形状。注意5.x及以后版本改为非商用授权,商用需付费。

操作步骤

  1. 安装指定版本的NuGet包:
Install-Package EPPlus -Version 4.5.3.3
  1. 修改Excel的代码示例:
using OfficeOpenXml;
using System.IO;

// 设置许可证上下文(4.x版本必填)
ExcelPackage.LicenseContext = LicenseContext.NonCommercial;

string templatePath = @"C:\template\from123.xlsx";
string outputPath = @"C:\template\XMLCopy.xlsx";

FileInfo templateFile = new FileInfo(templatePath);
using (ExcelPackage package = new ExcelPackage(templateFile))
{
    // 获取第一个工作表
    var sheet = package.Workbook.Worksheets[0];
    // 修改B11单元格的值
    sheet.Cells["B11"].Value = "5";

    // 保留原有VBA宏(仅适用于xlsm格式文件)
    package.Workbook.VbaProject = templateFile.OpenRead();

    // 保存文件,保留所有原有元素
    package.SaveAs(new FileInfo(outputPath));
}

关于ClosedXML丢失元素的原因

ClosedXML本身不支持VBA宏的读写,对Excel中的形状(如文本框)支持也有限,保存文件时会自动过滤这些不兼容元素,因此导致宏和文本框丢失。


内容的提问来源于stack exchange,提问作者Francisco Javier Espinosa L

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 05:45:32