有人知道什么可能导致此错误
“错误的本地标头签名:0xE011CFD0”
var path = @"C:\Excel.xls";
using (var fs = File.OpenRead(path))
{
var wb = new XSSFWorkbook(fs);
}
答案 0 :(得分:1)
留给别人以防万一。
.xls
是旧的Excel格式。使用这种格式,您应该创建一个新的HSSFWorkbook
实例。 XSSFWorkbook
与新的.xlsx
格式一起使用。
这两种类型都继承自IWorkbook
接口,因此您可以围绕该接口构建代码并在运行时确定工作簿实例类型。
我创建了一个简单的Excel组件,这是构造函数:
private IWorkbook _workbook;
public NpoiExcelManager(bool useOldVersionOfExcel = false)
{
try
{
UseOldVersionOfExcel = useOldVersionOfExcel;
if (UseOldVersionOfExcel)
{
_workbook = new HSSFWorkbook();
}
else
{
_workbook = new XSSFWorkbook();
}
}
catch (Exception)
{
throw;
}
}
public bool UseOldVersionOfExcel { get; private set; }
答案 1 :(得分:0)
好的,我找到了解决方法:
将该Excel文件另存为.xlsx
,但没有宏或.xlsm
,并且可以正常工作