有谁知道可能导致此错误的原因
'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/