我对 NPoi 有疑问。
我需要读取一个 xlsm 文件,本地代码工作正常,但在服务器上有错误:本地标头签名错误:0xE011CFD0
任何人都知道可能导致此错误的原因是什么?
打开后缀为.xls的文件,使用HSSFWorkbook,如果是.xlsx,使用XSSFWorkbook。希望它能解决你的问题。
当我试图打开一个受密码保护的 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);
}
}
通过删除工作簿的保护解决了问题 - 没有尝试在代码中解密它。