POI spezielle Spalten auslesen!

Stibbizi

Grünschnabel
Hallo,

ich stehe vor folgendem Problem:

Ich soll mit JavaPOI eine Exceltabelle auslesen. Das Auslesen der gesamten Tabelle funktioniert auch.
Nun soll ich aber nur 4 Spalten anhand der Spaltennamen auslesen und bekomme es leider nicht hin! Hat jmd vorschläge wie ich es machen könnte?

btw mein codes zum auslesen (Sry bin neu weiß nich wie ich code in diesen Code-fenstern anzeigen lassen kann)
Java:
 public static Vector readExcelFile(String fileName) {
		
		Vector cellVectorHolder = new Vector();

		try {
			/** Creating Input Stream **/
			
			FileInputStream myInput = new FileInputStream(fileName);

			/** Create a POIFSFileSystem object **/
			POIFSFileSystem myFileSystem = new POIFSFileSystem(myInput);

			/** Create a workbook using the File System **/
			HSSFWorkbook myWorkBook = new HSSFWorkbook(myFileSystem);

			/** Get the first sheet from workbook **/
			HSSFSheet mySheet = myWorkBook.getSheetAt(0);

			/** Iterator **/
			Iterator rowIter = mySheet.rowIterator();
			

			while (rowIter.hasNext()) {
				HSSFRow myRow = (HSSFRow) rowIter.next();
				Iterator cellIter = myRow.cellIterator();
				Vector cellStoreVector = new Vector();
				while (cellIter.hasNext()){

					HSSFCell myCell = (HSSFCell) cellIter.next();
					
					cellStoreVector.addElement(myCell);

				}
				cellVectorHolder.addElement(cellStoreVector);

			}

		} catch (Exception e) {
			e.printStackTrace();
		}
		return cellVectorHolder;
	}
 
Zuletzt bearbeitet von einem Moderator:
Hi

Fürs ordentliche anzeigen musst du nur [code=java] davor
und [/code] danach schreiben.
Siehe auch den Codetags-Link in meiner Signatur.
Habs mal bei deinem Beitrag eingefügt.
 
Ich habe leider noch nie mit der API gearbeitet, aber ich vermute das funktioniert ähnlich wie bei Datenbanken. Sprich du "schränkst" erst deine Tabelle auf diese Spalten ein und iterierst die dann die Reihen. Die Reihen haben dann nur diese Spalten.

Auf den ersten Blick sieht das ganz gut aus:
HSSFAutoFilter setAutoFilter(CellRangeAddress range)
Enable filtering for a range of cells
 
Vielen dank schonmal soweit,
aber der 'Vorschlag mit dem Filter würde vorraussetzen, dass die Felder alle nebeneinander liegen. Es sollte aber auch funktionieren wenn das nicht gegeben ist. Habe es so gelöst das ich den Spaltenindex der Überschriften die ich Suche auslese und dann in jeder Zeile die Zellen mit den entsprechenden Indizes ausles. Vllt nicht die schönste Lösung.. zumind. funktioniert es! Wenn jmd bessere Lösungen hat nur her damit!
 
Es bleibt das Problem, dass die Spalten, die ich suche nicht immer an den selben Indizes stehen. Deshalb muss ich über die Spaltenüberschriften in der 1. Row gehen. Bräuchte also eine Funktion die anhand der Spaltenüberschrift ausliest! Aber da mein Programm problemlos läuft und es keine Einwände von Seiten anderer hier gab ist das Thema ja erledigt ;)

Vielen Dank für die Vorschläge
 

Neue Beiträge

Zurück