import org.apache.poi.hssf.dev.*;
import org.apache.poi.hssf.record.Record;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.Region;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.io.*;
@SuppressWarnings({ "unused", "restriction" })
public class ReadExcel {
// Alle Arrays als String -> Der Aufrufer muss die dann zurück konvertieren!
public ArrayList<String> ColA = new ArrayList<String>();
public ArrayList<String> ColB = new ArrayList<String>();
public void ReadExcelStart(String filename) {
String sheetname="Tabelle1"; // Name der Tabelle im Excel-Arbeitsblatt
try {
// Die Datei öffnen
InputStream input = new FileInputStream(filename);
// Die Excel-Datei importieren
HSSFWorkbook wb = new HSSFWorkbook(input);
// Die Tabelle öffnen
HSSFSheet sheet = wb.getSheet(sheetname);
// Den Zeiger auf die erste Zeile setzen!
HSSFRow row = sheet.getRow(0);
// Die Array-Listen blank machen - hier sollen ja gleich die Daten rein
ColA.clear();
ColB.clear();
// Das Zahlenformat festlegen
NumberFormat formatter = new DecimalFormat("#0");
for (int i=0;i<=sheet.getLastRowNum();i++) {
row = sheet.getRow(i);
try {
// Test der Zelle: 0: Zahlenwert, 1= Textwert, danach den Wert an die ArrayListe anhängen
if (row.getCell(0).getCellType()==0)
ColA.add(String.valueOf(row.getCell(0).getNumericCellValue()));
else ColA.add(row.getCell(0).getStringCellValue());
} catch (NullPointerException e) {
// Nix - es stand lediglich im Feld nichts drin!
ColA.add("");
}
// Dasselbe für Spalte B (und falls man möchte für weitere - dann das getCell([Zellennummer]) jeweils hochzählen
try {
if (row.getCell(1).getCellType()==0)
ColB.add(String.valueOf(row.getCell(1).getNumericCellValue()));
else ColB.add(row.getCell(1).getStringCellValue());
} catch (NullPointerException e) {
// Nix - es stand lediglich im Feld nichts drin!
ColB.add("");
}
// ...
} // Hier ist das ende der for-Schleife -> d.h. hier ist jetzt das ende der Tabelle erreicht
// Bei Bedarf kann man ja nochmal eine Testausgabe machen
// for (int j=1;j<ColA.size();j++) {
// int X = Integer.parseInt(ColA.get(j).replace(".0", ""));
// System.out.println(X+" | "+ColB.get(j));
// }
} catch (Exception e) { e.printStackTrace(); }
}
}