2010-11-24 30 views
6

Apache POIプロジェクトに問題があります。Apache POI(XSSFとHSSFの両方を使用)

「同じJavaクラス」のXSSFHSSFを使用できませんでした。どの壺をダウンロードすればいいですか、どのアーティファクトを追加すればよいですか?

xlsxlsxの両方のファイルを同時に処理したいです。バージョンエラーが発生すると、XSSFをHSSFまたはHSSFからXSSFに変更します。

どうすればいいですか? 「標準別にhttp://poi.apache.org/spreadsheet/index.html

答えて

12

は、ApacheのPOI 3.7の新しいリリースを使用してみてください、それはタイプについてはこちら

詳細を気にすることなくHSSFとXSSFの両方を扱うSSパッケージを持っています「SSパッケージソリューション、あなたはまた、単にそうのように、正しくWorkbook interfaceオブジェクトに右workbook formatをロードするためにif statementを使用することができます。

Workbook workbook; //<-Interface, accepts both HSSF and XSSF. 
File file = new File("YourExcelFile.xlsx"); 
if (FileUtils.getFileExt(file).equalsIgnoreCase("xls")) { 
    workbook = new HSSFWorkbook(new FileInputStream(file)); 
} else if (FileUtils.getFileExt(file).equalsIgnoreCase("xlsx")) { 
    workbook = new XSSFWorkbook(new FileInputStream(file)); 
} else { 
    throw new IllegalArgumentException("Received file does not have a standard excel extension."); 
} 
+0

まず両方。 あなたが言及したページを確認しました。 OK。私のJavaのそれにもかかわらず、 3.7ベータ3 しかし org.apache.poi POI-contribの:私は私のpom.xmlに以下のコードを追加しましたクラスはまだXSSFWorkbookを解決できませんか? HSSFWorkbook()に問題はありません。 ワークブック[] wbs =新しいワークブック[] {新しいHSSFWorkbook()、新しいXSSFWorkbook()}; –

+5

XSSFWorkbookはgroupIdにあります:org.apache.poi、artifactId:poi-ooxml – rlovtang

5

:代わりにそれを行うの

+0

NPOIを使用している場合は 'IWorkbook' –

0

ではなく、どの時間工場を使用してくださいandles xssfとHSSFあなたの助けのためのすべての感謝の

import org.apache.poi.ss.usermodel.Workbook; 
import org.apache.poi.ss.usermodel.WorkbookFactory; 

Workbook wb = WorkbookFactory.create(new File("file")) 
関連する問題