[英]NPOI for reading XLS
我正在一些項目中使用 NPOI 庫從 excel 中讀取一些數據。 一切正常,但后來我嘗試閱讀 .xls 並停止工作。 (.xlsx 一切正常)。
我嘗試的最后一件事是:
IWorkbook hssfwb;
using (FileStream file = new FileStream(@filePath, FileMode.Open, FileAccess.Read))
{
hssfwb = WorkbookFactory.Create(file);
}
我得到的例外是:
您的流既不是 OLE2 流,也不是 OOXML 流。
我需要的是一種使用 NPOI 庫打開 .xls 文件的方法。 提前致謝。
要使用舊的 Excel 97-2003 格式(以“.xls”結尾的文件),您可以使用HSSFWorkbook
類。
如果檢查文件名的擴展名,則可以在將文件讀入IWorkbook
模型時處理這兩種文件類型:
MemoryStream fileStream = new MemoryStream(fileContent);
IWorkbook workbook = null;
if (fileName.ToLower().EndsWith(".xlsx"))
{
// new OOXML format
workbook = new XSSFWorkbook(fileStream);
}
else
{
// old Excel 97 format
workbook = new HSSFWorkbook(fileStream);
}
從那時起,您可以像往常一樣處理電子表格的內容:
// get first sheet
ISheet sheet = workbook.GetSheetAt(0);
// get header names as string array
IRow headerRow = sheet.GetRow(rowNumber);
List<ICell> headerCells = headerRow.Cells;
List<string> rowData = new List<string>();
foreach (ICell cell in headerCells)
{
rowData.Add(cell.ToString());
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.