有没有人知道是什么原因造成了这个错误?
“'Wrong本地标头签名:0xE011CFD0”
var path = @"C:\Excel.xls";
using (var fs = File.OpenRead(path))
{
var wb = new XSSFWorkbook(fs);
}发布于 2019-05-15 07:46:01
留下这个以防其他人经过这里。
.xls是旧的Excel格式。使用这种格式,您应该创建一个新的HSSFWorkbook实例。XSSFWorkbook与新的.xlsx格式一起使用。
这两种类型都实现了IWorkbook接口,因此您可以围绕这个接口构建代码,并在运行时确定工作簿实例的类型。
我创建了一个简单的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接口都适用于这两种实现。
发布于 2019-01-16 14:02:13
好的,我找到了解决办法:
将该Excel文件保存为一个.xlsx,但没有宏或.xlsm,并且工作正常。
https://stackoverflow.com/questions/54218693
复制相似问题