Apache POIのバージョン3.7を参照していますが、実行すると「解決できません」というエラーが表示されます。
import org.Apache.poi.xssf.usermodel.XSSFWorkbook;
POIを参照する他のimportステートメントDO NOT
import org.Apache.poi.ss.usermodel.*;
何か案は??
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>
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
アーティファクトにも依存する必要があります。
Mavenを使用する場合:
poi => artifactIdのpoi-ooxml
<dependency>
<groupId>org.Apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.12</version>
</dependency>
問題:Eclipseでエラーを示す「org.Apache.poi.xssf.usermodel.XSSFWorkbook」クラスのインポート中。
解決策:この問題を解決するには、このMaven依存関係を使用します。
<dependency>
<groupId>org.Apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.15</version>
</dependency>
-ハリ・クリシュナ・ニーラ
アプリ「build.gradle」の内容を以下に追加しました
implementation 'org.Apache.poi:poi:4.0.0'
implementation 'org.Apache.poi:poi-ooxml:4.0.0'
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();
}
私は同じ問題を抱えていたので、poi-3.17.jarファイルを掘り下げましたが、内部にxssfパッケージはありませんでした。
次に、他のファイルを調べて、poi-ooxml-3.17.jarにxssf intを見つけました
だから、解決策は追加することです
poi-ooxml-3.17.jar
あなたのプロジェクトに、それはそれが機能するように見えるので(少なくとも私にとって)
とにかく、環境については説明しませんでしたが、Apache poiライブラリをダウンロードする必要があります。 Eclipseを使用している場合は、ルートプロジェクトを右クリックして、プロパティとJavaビルドパスに外部jarを追加し、プロジェクトにこれらのライブラリをインポートします。
xmlbeans-2.6.0; poi-ooxml-schemas- ...; poi-ooxml- ...; poi- ....;
実装には次のファイルが必要でした。
(正直なところ、それらがすべて必要かどうかは完全にはわかりません...)それらはそのようにパッケージ化されているため、少し混乱しています。それらを自分の「lib」フォルダに手動で配置し、参照を追加する必要がありました...
Mavenは常に必要以上にダウンロードしているように見えるため、常にライブラリ/ dllなどを手動で配置します。
複数のことを試した後、実際に機能したのは次のとおりでした。1。「poi」と「poi-ooxml」を手動でダウンロードします