首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >阅读XLS的NPOI

阅读XLS的NPOI
EN

Stack Overflow用户
提问于 2016-12-13 16:19:21
回答 1查看 1.7K关注 0票数 1

我正在做一些项目,在那里我使用NPOI库从excel读取一些数据。一切都很好,但后来我试着读了.xls,结果它停止了工作。(对.xlsx来说一切都很好)。

我最后的尝试是:

代码语言:javascript
复制
 IWorkbook hssfwb;
                using (FileStream file = new FileStream(@filePath, FileMode.Open, FileAccess.Read))
                {
                     hssfwb = WorkbookFactory.Create(file);
                }

我得到的例外是:

您的流既不是OLE2流,也不是OOXML流。

我需要的是一种使用NPOI库打开.xls文件的方法。提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-03-19 10:57:18

要使用旧的Excel97-2003格式(以“.xls”结尾的文件)操作,可以使用HSSFWorkbook类。

如果检查文件名的扩展名,则可以在将文件读入IWorkbook模型时处理这两种文件类型:

代码语言:javascript
复制
        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);
        }

从那里开始,您可以像往常一样处理电子表格的内容:

代码语言:javascript
复制
        // 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());
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41125758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档