簡體   English   中英

用於閱讀 XLS 的 NPOI

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM