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

迁移至.NET Core时Microsoft.Office.Interop.Excel方法缺失求助

解决.NET Core中Excel Interop Delete方法不可用的问题

首先明确:.NET Core/.NET 5及以上版本不再官方支持Microsoft.Office.Interop.Excel,它依赖本地安装的Office套件且不支持跨平台,这是你遇到方法不可用的核心原因。下面提供两个可行的替代方案:

方案1:使用EPPlus(推荐)

EPPlus是开源的.NET Excel处理库,完全支持.NET Core,无需依赖本地Office,API简洁易迁移。

删除列的代码示例:

// 先安装EPPlus NuGet包:Install-Package EPPlus
using OfficeOpenXml;

// 打开Excel文件
using var package = new ExcelPackage(new FileInfo("你的文件路径.xlsx"));
var worksheet = package.Workbook.Worksheets["Sheet1"];

// 删除指定列(deleteColumnNumber为列号,从1开始)
worksheet.DeleteColumn(deleteColumnNumber);

// 保存更改
package.Save();

方案2:使用NetOffice(兼容Interop API)

NetOffice是开源的Office互操作库,兼容.NET Core,API和原生Interop几乎一致,能最大程度减少代码修改。

删除列的代码示例:

// 先安装NetOffice.Excel NuGet包:Install-Package NetOffice.Excel.NetCore
using NetOffice.ExcelApi;

// 创建Excel实例
using var application = new Application();
var workbook = application.Workbooks.Open("你的文件路径.xlsx");
var worksheet = (Worksheet)workbook.Worksheets["Sheet1"];

// 选中要删除的列范围
var deleteRange = worksheet.Range[worksheet.Cells[1, deleteColumnNumber], worksheet.Cells[endRow, deleteColumnNumber]];
// NetOffice中Delete方法可用,用法和Interop一致
deleteRange.Delete();

// 保存并关闭
workbook.Save();
workbook.Close();
application.Quit();

注意事项

  • 若使用NetOffice,需确保本地安装了对应版本的Office,且程序运行时能访问Office组件。
  • EPPlus无需依赖Office,适合跨平台场景,是.NET Core下处理Excel的首选。

内容的提问来源于stack exchange,提问作者Hiten Samalia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 18:43:12