web-dev-qa-db-ja.com

Apache POIにXSSFをインポートできません

Apache POIのバージョン3.7を参照していますが、実行すると「解決できません」というエラーが表示されます。

import org.Apache.poi.xssf.usermodel.XSSFWorkbook;

POIを参照する他のimportステートメントDO NOT

import org.Apache.poi.ss.usermodel.*;

何か案は??

111
Mark Jackson

OOXMLが機能するには、POI jarとは別にパッケージ化されたPOI-OOXML jarが必要です。

次の場所からPOI-OOXML jarをダウンロードします-

http://repo1.maven.org/maven2/org/Apache/poi/poi-ooxml/3.11/poi-ooxml-3.11.jar

Maven2の場合、以下の依存関係を追加します-

<dependency>
    <groupId>org.Apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.11</version>
</dependency>
177
Pushkar

OOXMLファイル形式のクラス(.xlsxのXSSFなど)は、異なるJarファイルにあります。 poi-ooxml jarをプロジェクトの依存関係とともにプロジェクトに含める必要があります

POI Webサイトですべてのコンポーネントとその依存関係のリストを取得できます here

おそらくやりたいことは、 .11バイナリパッケージ をダウンロードし、poi-ooxml jarを取得し、ooxml-libディレクトリ内の依存関係を取得することです。これらをプロジェクトにインポートすると、ソートされます。

あるいは、Mavenを使用する場合は、 こちらを参照 に依存するアーティファクトのリストを表示できますが、次のようになります。

<dependency>
   <groupId>org.Apache.poi</groupId>
   <artifactId>poi-ooxml</artifactId>
   <version>3.11</version>
</dependency>

Poi-ooxml maven依存関係は、メインのPOI jarと依存関係を自動的に取得します。非スプレッドシート形式で作業する場合は、 POIコンポーネントページ で詳しく説明されているように、poi-scratchpadアーティファクトにも依存する必要があります。

30
Gagravarr

Mavenを使用する場合:

poi => artifactIdのpoi-ooxml

    <dependency>
        <groupId>org.Apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.12</version>
    </dependency>
7
sgrillon

問題:Eclipseでエラーを示す「org.Apache.poi.xssf.usermodel.XSSFWorkbook」クラスのインポート中。

解決策:この問題を解決するには、このMaven依存関係を使用します。

<dependency>
   <groupId>org.Apache.poi</groupId>
   <artifactId>poi-ooxml</artifactId>
   <version>3.15</version>
</dependency>

-ハリ・クリシュナ・ニーラ

6

アプリ「build.gradle」の内容を以下に追加しました

implementation 'org.Apache.poi:poi:4.0.0'
implementation 'org.Apache.poi:poi-ooxml:4.0.0'
4
Dang Thach Hai

1)POIフォルダーからすべてのJARをインポートした2)POIフォルダーのサブディレクトリであるooxmlフォルダーからすべてのJARをインポートした3)POIフォルダーのサブディレクトリであるlibフォルダーからすべてのJARをインポートした

String fileName = "C:/File raw.xlsx";
File file = new File(fileName);
FileInputStream fileInputStream;
Workbook workbook = null;
Sheet sheet;
Iterator<Row> rowIterator;
try {
        fileInputStream = new FileInputStream(file);
        String fileExtension = fileName.substring(fileName.indexOf("."));
        System.out.println(fileExtension);
        if(fileExtension.equals(".xls")){
        workbook  = new HSSFWorkbook(new POIFSFileSystem(fileInputStream));
        }
        else if(fileExtension.equals(".xlsx")){
        workbook  = new XSSFWorkbook(fileInputStream);
        }
        else {
        System.out.println("Wrong File Type");
        } 
        FormulaEvaluator evaluator workbook.getCreationHelper().createFormulaEvaluator();
        sheet = workbook.getSheetAt(0);
        rowIterator = sheet.iterator();
        while(rowIterator.hasNext()){
        Row row = rowIterator.next();
        Iterator<Cell> cellIterator = row.cellIterator();
        while (cellIterator.hasNext()){
        Cell cell = cellIterator.next();
        //Check the cell type after evaluating formulae
       //If it is formula cell, it will be evaluated otherwise no change will happen
        switch (evaluator.evaluateInCell(cell).getCellType()){
        case Cell.CELL_TYPE_NUMERIC:
        System.out.print(cell.getNumericCellValue() + " ");
        break;
        case Cell.CELL_TYPE_STRING:
        System.out.print(cell.getStringCellValue() + " ");
        break;
        case Cell.CELL_TYPE_FORMULA:
        Not again
        break;
        case Cell.CELL_TYPE_BLANK:
        break;
        }
}
 System.out.println("\n");
}
//System.out.println(sheet);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}​
2
Aman Khatri

私は同じ問題を抱えていたので、poi-3.17.jarファイルを掘り下げましたが、内部にxssfパッケージはありませんでした。

次に、他のファイルを調べて、poi-ooxml-3.17.jarにxssf intを見つけました

だから、解決策は追加することです

poi-ooxml-3.17.jar

あなたのプロジェクトに、それはそれが機能するように見えるので(少なくとも私にとって)

1
Mr Redstoner

とにかく、環境については説明しませんでしたが、Apache poiライブラリをダウンロードする必要があります。 Eclipseを使用している場合は、ルートプロジェクトを右クリックして、プロパティとJavaビルドパスに外部jarを追加し、プロジェクトにこれらのライブラリをインポートします。

xmlbeans-2.6.0; poi-ooxml-schemas- ...; poi-ooxml- ...; poi- ....;

0
frank

実装には次のファイルが必要でした。

  • poi-ooxml-schemas-3.14.20160307.jar
  • commons-codec-1.10.jar(これは、Apacheから取得するZipファイルの「lib」フォルダーにありました)
  • curveapi-1.03.jar(「ooxml-lib」フォルダー内)
  • poi-3.14-20160307.jar
  • poi-ooxml-3.14-20160307.jar
  • xmlbeans-2.6.0.jar(「ooxml-lib」フォルダー内)

(正直なところ、それらがすべて必要かどうかは完全にはわかりません...)それらはそのようにパッケージ化されているため、少し混乱しています。それらを自分の「lib」フォルダに手動で配置し、参照を追加する必要がありました...

Mavenは常に必要以上にダウンロードしているように見えるため、常にライブラリ/ dllなどを手動で配置します。

0
pcalkins

複数のことを試した後、実際に機能したのは次のとおりでした。1。「poi」と「poi-ooxml」を手動でダウンロードします

0
Sanchi Tyagi