2011-01-17 14 views
5

hi ich möchte xlsx-datei oder xls-datei lesen was auch immer es ist. kann XSSF xls Datei unterstützen? Oder muss ich den separaten Code für beide Arten von Dateien schreiben?Wie kann ich .xlsx und .xls Dateien in Java lesen?

+1

mögliche Duplikate von [Lesen Xlsx-Datei in Java] (http://StackOverflow.com/Questions/267025/Read-XLSX-File-in-Java) – dogbane

+0

@Srinivas haben Sie versucht, die Bibliothek, die ich erwähnt habe in die Antwort ? – noego

Antwort

2

Wenn Sie möchten, dass Ihr Code für beide funktioniert, müssen Sie das Paket org.apache.poi.ss verwenden. Dieses Paket wurde erstellt, um XSSF und HSSF zu vereinheitlichen.

+0

danke für die Antwort, ja ich möchte einen Code schreiben, der für beide xlsx ans xls funktionieren sollte. Sie können mir bitte Beispielcode geben – Srinivas

+0

org.apache.poi.ss funktioniert für beide Arten von Dateien Vielen Dank – Srinivas

+1

@ Srinivas: Wenn Ihr Problem gelöst ist, markieren Sie bitte diese Frage als beantwortet (das kleine grüne Ding direkt von meiner Antwort) –

0

Verwendung dieses für xls und xlsx

Workbook wb_xssf; //Declare XSSF WorkBook 
Workbook wb_hssf; //Declare HSSF WorkBook 
Sheet sheet=null; //sheet can be used as common for XSSF and HSSF WorkBook 

if(fileBean.getFileExt().equalsIgnoreCase("xls")){ 
    wb_hssf = new HSSFWorkbook(); 
    sheet = wb_hssf.getSheetAt(0); 
}else if (fileBean.getFileExt().equalsIgnoreCase("xlsx")){ 
    wb_xssf = new XSSFWorkbook(fileBean.getFileInput());  
    sheet = wb_xssf.getSheetAt(0);               
} 
+0

Keine Notwendigkeit für all das, verwenden Sie einfach 'WorkbookFactory.createWorkbook (InputStream)' – EpicPandaForce

0

Für eine meiner Projekte, die ich eine grundlegende Dienstprogramm erstellt haben, die Apache POI und OpenCSV verwendet und kann sowohl xlsx, xls und csv-Dateien lesen.

einen Konverter Da es Zeilen zu Objekten, wie dies umwandeln kann:

RowConverter<Country> converter = (row) -> new Country(row[0], row[1]); 

ExcelReader<Country> reader = ExcelReader.builder(Country.class) 
    .converter(converter) 
    .withHeader() 
    .csvDelimiter(';') 
    .sheets(1) 
    .build(); 

List<Country> list; 
list = reader.read("CountryCodes.xlsx"); 
list = reader.read("CountryCodes.xls"); 
list = reader.read("CountryCodes.csv"); 

Sie das Projekt auf github finden.

Verwandte Themen