我正在尝试使用NPOI读取excelxls和xlsx,我使用了以下代码,但在读取8KB xls文件时,它提供了“无法读取整个头;读取27个字节;预期读取的512字节”
byte[] byteArray = Encoding.UTF8.GetBytes(filepath);
MemoryStream stream = new MemoryStream(byteArray);
MemoryStream stream1 = new MemoryStream(Encoding.UTF8.GetBytes(filepath ?? ""));
NPOI.HSSF.UserModel.HSSFWorkbook hssfwb = default(HSSFWorkbook);
hssfwb = new NPOI.HSSF.UserModel.HSSFWorkbook(stream1);
Sheet sheet = hssfwb.GetSheetAt(0);
DataTable dtinputExcel = new DataTable();针对此错误,我已经尝试了网络上所有可用的代码。请指导我什么是无错误的方法读取和超过任何大小的xlsx。
发布于 2017-05-12 22:48:00
问题是,HSSFWorkbook的构造函数期待的是一个包含电子表格文件内容的流,而您传递的是一个包含文件名的MemoryStream。您应该使用FileStream读取文件并将该流传递给HSSFWorkbook构造函数。
试着这样做:
IWorkbook hssfwb;
using (FileStream fs = new FileStream(filepath, FileMode.Open, FileAccess.Read))
{
hssfwb = new HSSFWorkbook(fs);
}
ISheet sheet = hssfwb.GetSheetAt(0);https://stackoverflow.com/questions/43931015
复制相似问题