【问题标题】:Apache POI in Java causes trouble (XSSFWorkbook)Java 中的 Apache POI 导致问题 (XSSFWorkbook)
【发布时间】:2017-01-16 12:39:58
【问题描述】:

我实际上是在尝试使用 Apache POI 读取 XLS 文件,但我的代码无法正常工作。 IntelliJ 告诉我,在第 28 行,创建 XSSFWorkbook 会导致麻烦。如果你在这,你会简短地看一下并回答吗?

package Parse;

import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.File;
import java.io.FileInputStream;
import java.util.Iterator;
public class poi {

    public static void main(String[] args) {
        try {
            FileInputStream file = new FileInputStream(new File("C:\\Users\\jd\\Desktop\\test\\VW_XML\\in_xls.xlsx"));

            //Create workbook instance
            XSSFWorkbook workbook = new XSSFWorkbook(file);

            //read sheet
            XSSFSheet sheet = workbook.getSheetAt(0);

            //iterate rows
            Iterator<Row> rowIterator = sheet.iterator();
            while (rowIterator.hasNext()) {
                Row row = rowIterator.next();
                Iterator<Cell> cellIterator = row.cellIterator();

                // for each row all columns
                while (cellIterator.hasNext()) {
                    Cell cell = cellIterator.next();

                    //check cell type
                    switch (cell.getCellType()) {
                        case Cell.CELL_TYPE_NUMERIC:
                            System.out.print(cell.getNumericCellValue() + "t");
                            break;
                        case Cell.CELL_TYPE_STRING:
                            System.out.print(cell.getStringCellValue() + "t");
                            break;
                    }
                }
                System.out.println("");

            }
            file.close();

        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

【问题讨论】:

  • 异常堆栈跟踪?
  • IntelliJ 如何向您展示问题出在哪里?或者它实际上是您阅读的堆栈跟踪?如果是肯定的,也许你可以与我们分享。
  • 引起:java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlException
  • 将 xmlbeans jar 添加到构建路径
  • 好的,我稍后再给你结果。

标签: java apache-poi xssf


【解决方案1】:

您如何将 POI 添加到您的项目中?你使用Maven或类似的东西吗?您可能缺少一些依赖项。

从我的依赖中删除:树:

org.apache.poi:poi-ooxml:jar:3.10-FINAL:compile
 +- org.apache.poi:poi:jar:3.10-FINAL:compile
 |  \- commons-codec:commons-codec:jar:1.5:compile
 \- org.apache.poi:poi-ooxml-schemas:jar:3.10-FINAL:compile
    \- org.apache.xmlbeans:xmlbeans:jar:2.3.0:compile
        \- stax:stax-api:jar:1.0.1:compile

你的类路径中有所有的 jars 吗?

【讨论】:

    【解决方案2】:

    将以下所有 jar 放入 BuildPath 并运行!

    【讨论】:

      【解决方案3】:

      How to read excel(.xlsx) in java using poi?

      此链接和您的 cmets 对我帮助很大。

      我需要向我的项目添加更多 jar 文件。

      poi-3.9.jar poi-ooxml-3.9.jar poi-ooxml-schemas-3.7.jar xmlbeans-2.3.0.jar dom4j-1.6.1.jar

      请多多回复,祝您有愉快的一天。

      【讨论】:

        【解决方案4】:

        你需要添加这些jar文件::

        类路径:

        “C:\poi-3.9\poi-3.9-20121203.jar;”

        “C:\poi-3.9\poi-ooxml-3.9-20121203.jar;”

        “C:\poi-3.9\poi-ooxml-schemas-3.9-20121203.jar;”

        “C:\poi-3.9\ooxml-lib\dom4j-1.6.1.jar;”

        “C:\poi-3.9\ooxml-lib\xmlbeans-2.3.0.jar;”

        点击以下链接获取上述 jar 文件:: http://www.java2s.com/Open-Source/Java_Free_Code/Database/Download_wca_workbook_assistant_Free_Java_Code.htm

        祝你好运..

        【讨论】:

        • 那些是非常旧的版本(线索在文件名中的日期!)。您为什么建议使用这些旧版本而不是最新版本?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-26
        • 2018-04-29
        • 1970-01-01
        • 1970-01-01
        • 2017-02-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多