为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
心有法竹 2022-07-23 18:10:50
有谁知道可能导致此错误的原因'错误的本地标头签名: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接口适用于这两种实现。


查看完整回答
反对 回复 2022-07-23
?
holdtom

TA贡献1805条经验 获得超10个赞

好的,我找到了解决方案:

将该 Excel 文件保存为一个.xlsx但没有宏,或者.xlsm它可以工作


查看完整回答
反对 回复 2022-07-23
  • 2 回答
  • 0 关注
  • 653 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号