【问题标题】:Cannot read from Excel file using apache poi无法使用 apache poi 从 Excel 文件中读取
【发布时间】:2015-06-30 09:35:56
【问题描述】:

这是我写的代码。

import java.util.*;
import java.lang.*;
import java.io.*;

import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;

public class Main
{
    public static void main (String[] args) throws java.lang.Exception
    {
        File inputFile = new File("./test.xlsx");
        HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(inputFile));
        HSSFSheet sheet = workbook.getSheetAt(0);
        Cell cell;
        Row row;
        Iterator<Row> rowIterator = sheet.iterator();
        while (rowIterator.hasNext()){
            row = rowIterator.next();
            Iterator<Cell> cellIterator = row.cellIterator();
            while (cellIterator.hasNext()){
                cell = cellIterator.next();
                System.out.println(cell.getStringCellValue());
            }
        }
    }
}

这是我遇到的错误。

提供的数据似乎在 Office 2007+ XML 中。你是 调用处理 OLE2 Office 文档的 POI 部分。你 需要调用 POI 的不同部分来处理这些数据(例如 XSSF 而不是 HSSF)

问题:我做错了什么?

【问题讨论】:

    标签: java excel apache apache-poi


    【解决方案1】:

    正如 Rahul 所说,您正在使用 HSSF 部分,该部分用于从旧的 excel 中获取信息,即 .xls(2007 年之前)格式。

    Workbook wb = WorkbookFactory.create(new File("/path/to/your/excel/file"));
        Sheet mySheet = wb.getSheetAt(0);
        Iterator<Row> rowIter = mySheet.rowIterator();
        System.out.println(mySheet.getRow(1).getCell(0));
    

    请尝试转换为上述格式,它适用于 .xls 和 .xlsx

    【讨论】:

      【解决方案2】:

      这可能对您有所帮助:--

      file = new File("/yourFile.xlsx");
      workBook = WorkbookFactory.create(file);    
      sheet  = workBook.getSheetAt(sheetNumber);
      

      【讨论】:

      • org.apache.poi.ss.usermodel.Workbook
      • WorkbookFactory 包在哪里
      • org.apache.poi.ss.usermodel.WorkbookFactory
      • 你先生是个传奇。非常感谢。
      【解决方案3】:

      您正在尝试使用 HSSFWorkbook 访问 .xlsx 文件,您需要使用 XSSFWorkbook 而不是 HSSFWorkbook。使用 HSSFWorkbook,我们可以访问 .xls 文件。

      参考你可以阅读POI

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-21
        • 2013-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多