有谁知道可能导致此错误的原因'错误的本地标头签名:0xE011CFD0'var path = @"C:\Excel.xls";using (var fs = File.OpenRead(path)){ var wb = new XSSFWorkbook(fs);}我正在使用:https ://github.com/dotnetcore/NPOI
2 回答
炎炎设计
TA贡献1808条经验 获得超4个赞
留下这个以防其他人经过这里。
.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接口适用于这两种实现。
- 2 回答
- 0 关注
- 653 浏览
添加回答
举报
0/150
提交
取消
