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

使用EPPlus在.NET控制台保存Excel时遇IBM437编码不支持错误

解决EPPlus保存Excel时“IBM437 is not supported encoding name”错误

错误原因

在.NET Core/.NET 5+环境中,IBM437编码不属于默认内置的编码集合,EPPlus调用Save(string path)方法时会尝试使用该编码,因找不到对应编码提供器触发报错。

解决方案

方案一:添加编码包并注册编码提供器

  1. 安装NuGet包System.Text.Encoding.CodePages
  2. 在程序入口(比如Main方法开头)注册编码提供器:
using System.Text;

// 注册编码提供器
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);

之后正常执行原有的Excel创建和保存代码即可。

方案二:改用FileStream保存文件

避免直接调用带路径参数的Save方法,改用FileStream写入文件,绕开编码依赖问题:

// 替换原有的workbook.Save(...)代码
using (var fs = new FileStream("C:/Users/user/Desktop/Freeze or Split Panes.xlsx", FileMode.Create, FileAccess.Write))
{
    workbook.Save(fs);
}

using语句会自动释放文件流资源,避免文件占用问题。

额外检查

确认SetExcelReportHeaders和SetReportExcelData方法中没有手动指定错误的编码格式,比如写入单元格内容时不要强制使用IBM437编码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 23:05:21