excel ICSharpCode.SharpZipLib.Zip.ZipException:错误的本地标头签名:0xE011CFD0

dffbzjpn  于 2023-05-19  发布在  其他
关注(0)|答案(2)|浏览(639)

我对NPoi有意见。
我需要读取一个xlsm文件,本地代码工作正常,但在服务器上有错误:错误的本地标头签名:0xE011CFD0
有人知道是什么导致了这个错误吗?

kd3sttzy

kd3sttzy1#

如果打开扩展名为.xls的文件,请使用HSSFWorkbook;如果是.xlsx,请使用XSSFWorkbook。希望它能解决你的问题。

9jyewag0

9jyewag02#

我收到这个错误消息时,我试图打开一个Excel文件,该文件已被密码保护,代码不知道:

string sFileExtension = Path.GetExtension(file.FileName).ToLower();
ISheet sheet;
string fullPath = Path.Combine(newPath, file.FileName);
using (var stream = new FileStream(fullPath, FileMode.Create))
{
    file.CopyTo(stream);
    stream.Position = 0;
    if (sFileExtension == ".xls")
    {
        HSSFWorkbook hssfwb = new(stream);
        sheet = hssfwb.GetSheetAt(0); 
    }
    else
    {
        XSSFWorkbook hssfwb = new(stream); //This line threw the exeption
        sheet = hssfwb.GetSheetAt(0);  
    }
}

通过删除工作簿的保护解决了问题-没有尝试在代码中解密它。

相关问题