c# - NPOI - 加载 Excel 文件会导致错误的本地 header 签名 : 0xE011CFD0

标签 c# excel .net-core npoi

有谁知道可能导致此错误的原因

'Wrong Local header signature: 0xE011CFD0'


var path = @"C:\Excel.xls";

using (var fs = File.OpenRead(path))
{
    var wb = new XSSFWorkbook(fs);
}

我正在使用:https://github.com/dotnetcore/NPOI

最佳答案

留下这个以防其他人经过这里。.xls是旧的 Excel 格式。使用该格式,您应该创建一个新的 HSSFWorkbook实例。 XSSFWorkbook与新的 .xlsx 一起使用格式。
两种类型都实现了 IWorkbook接口(interface),以便您可以围绕此接口(interface)构建代码并在运行时确定工作簿实例的类型。
我创建了一个简单的 Excel 组件,这是构造函数:

private readonly bool _useOldExcelFormat;
private readonly IWorkbook _workbook;

public NpoiExcelManager(bool useOldExcelFormat = false)
{
    _useOldExcelFormat= useOldExcelFormat;
    if (_useOldExcelFormat)
    {
        _workbook = new HSSFWorkbook();
    }
    else
    {
        _workbook = new XSSFWorkbook();
    }
}
您会发现 HSSFWorkbook 之间的一些差异。和 XSSFWorkbook所以有时你必须为每个实现编写特定的代码,但这种情况非常罕见。
我会说大约 95% 的 IWorkbook接口(interface)适用于两种实现。

关于c# - NPOI - 加载 Excel 文件会导致错误的本地 header 签名 : 0xE011CFD0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54218693/

相关文章:

arrays - 使用条件从 VBA 数组中删除重复项

c# - 网络核心 : Dynamic CSS with Tag Helpers not Inline

c# - 在 dotnet core 中添加 Firebase 日志事件(分析)

c# - .NET 2.0 Web 服务 WSDL 错误元素被忽略?

excel - 根据其他单元格中存储的 RGB 值动态更改单元格的背景颜色

c# - 从服务启动用户 session 中的进程

sql - 使用sql从excel表格中获取数据

.net-core - 在 .Net Core 2.1 中运行集成测试时出现 VSTS 任务错误

c# - WebBrowser.DrawToBitmap 留下白色像素

c# - 出现错误 : CS1061