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

问题描述 投票:0回答:2

我对 NPoi 有疑问。

我需要读取一个 xlsm 文件,本地代码工作正常,但在服务器上有错误:本地标头签名错误:0xE011CFD0

任何人都知道可能导致此错误的原因是什么?

c# excel npoi
2个回答
0
投票

打开后缀为.xls的文件,使用HSSFWorkbook,如果是.xlsx,使用XSSFWorkbook。希望它能解决你的问题。


0
投票

当我试图打开一个受密码保护的 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);  
    }
}

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

© www.soinside.com 2019 - 2024. All rights reserved.