POI: Aus einer Datei auslesen und in eine andere Datei speichern

Status
Nicht offen für weitere Antworten.

google

Mitglied
Hallo.
Ich habe einen code geschrieben der mir (fürs erste) den Inhalt einer xls Kopiert und in eine Andere datei schreibt (zum Testen). Ich habe im Internet nachgeschaut wie das geht und hab folgendes zusammengebastelt:

Java:
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;




public class Vergleicher {
	
	static void vergleiche(){
		
		//Pfad
		String tabelle = "P:/EP-I/V.1006006 GMA/12 Kosten und Budget/12B Projektkostenplan/GMA_00_COT_SAP Daten_090701.xls";
		
		try{
		FileInputStream input = new FileInputStream(tabelle);
		HSSFWorkbook wb = new HSSFWorkbook(input);
		HSSFSheet sheet = wb.getSheet("Struktur");//Name der Tabelle innerhalb der .xls
		HSSFRow row = sheet.getRow(0);
		row.getCell((short) 0).getNumericCellValue();
		
		FileOutputStream out = new FileOutputStream("C:wbook.xls");//neue Datei erstellen
		wb.write(out);//Das zwischengespeicherte Workbook In die Datei schreiben
		out.close();

	}
		catch ( IOException e ) { System.out.println( e ); }
	
	}
}

Eclipse zeigt mir keine Fehler an. Erst bei der Compilierung sagt mir die Konsole ich habe einen fehler in der Zeile 23.

Woran kann das liegen?
 
Ich geh mal davon aus dass eine [c]NullPointerException[/c] geschossen wird, weil [c]row.getCell((short) 0) == null[/c] ist
 
Java:
Exception in thread "main" java.lang.NumberFormatException: You cannot get a numeric value from a String based cell

...Das erklärt einiges. wie kann man denn String Basierte Zellen abfragen??
und wenn wir schon dabei sind... Wie kann man die Ganze Tabelle in das Workbook zwischenspeicehrn?
 
getStringCellValue() oder so,

und welche Tabelle meinst du? die Excel-Tabelle dürfte doch bereits im Excel-Workbook drin sein..
 
Es gibt diverse gründe warum und weshalb! Das Eclipse es nicht merkt liegt daran das der Code richtig ist.

Das der Fehler erst beim Compilieren kommt sagt mir das in der Zeile 23 was versucht wird was mit deinem xls dokument nicht möglich ist!

Weil z.B. Kein wert eingetragen ist der mit row.getCell((short) 0).getNumericCellValue(); geholt werden kann. Oder oder oder

besonders warum machst du das so? du machst ja nichts mit diesem wert.
 
getStringCellValue() oder so,

und welche Tabelle meinst du? die Excel-Tabelle dürfte doch bereits im Excel-Workbook drin sein..

Java:
row.getCell((short) 0).getStringCellValue();

jetzt gibt er mir zwar keinen Fehler aus, aber das
Code:
getStringCellValue()
ist durchgestrichen, und die Datei wbook.xls wird immer noch nicht erstellt
 
Es gibt diverse gründe warum und weshalb! Das Eclipse es nicht merkt liegt daran das der Code richtig ist.

Das der Fehler erst beim Compilieren kommt sagt mir das in der Zeile 23 was versucht wird was mit deinem xls dokument nicht möglich ist!

Weil z.B. Kein wert eingetragen ist der mit row.getCell((short) 0).getNumericCellValue(); geholt werden kann. Oder oder oder

besonders warum machst du das so? du machst ja nichts mit diesem wert.

ich wusste nicht genau was die zeile bewirkt hat (jetzt weiß ich's), ich habs einfach mithilfe eines kurzen tutorials gemacht. Wenn ich die Zeile lösche zeigt mir der Compiler keine fehler an, aber die Datei wbook.xls wird immer noch nicht ausgegeben
 
ich dachte, das mach ich mit
Java:
        FileOutputStream out = new FileOutputStream("C:wbook.xls");//neue Datei erstellen
        wb.write(out);//Das zwischengespeicherte Workbook In die Datei schreiben
        out.close();
 
Versuche es mal damit 😉
Java:
        FileOutputStream out = new FileOutputStream("C:/wbook.xls");//neue Datei erstellen
        wb.write(out);//Das zwischengespeicherte Workbook In die Datei schreiben
        out.close();
 
@früheres Post, inzwischen veraltet:
doch doch, wbook.xls könnte erstellt werden, aber nicht unter C:/, denn der Pfad ist kaputt,
im Start-Verzeichnis des Programms landet das bei mir

----

> ist durchgestrichen

kommt mir leicht bekannt vor, aber kann ich aktuell nichts zu sagen, der API nach ist das nicht deprecated,
vielleicht veraltete Version (die API oder deine Library)
 
das habe ich mal vor kurzem geschrieben.

apache.poi wird aber benötigt

Java:
import java.io.*;
import org.apache.poi.hssf.usermodel.*;

public class testexcel {

	HSSFWorkbook wb;
	HSSFSheet sheet1;
	HSSFSheet sheet;
	HSSFRow row;

	public testexcel() {

	}

	/*erzeutg das excel doc
	 * muss als letztes durchgeführt werden*/
	public void buldsheet() {
		FileOutputStream fileOut;
		try {
			fileOut = new FileOutputStream("C:/Dokumente und Einstellungen/test/workbook.xls");
			System.out.println("Datei erstellt.");
			wb.write(fileOut);
			fileOut.close();
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/*macht zeile a bereit eingaben vor zunehmen*/
	public void setnewRow(int a) {
		row = sheet.createRow((short) a);
	}
	/*methoden zur wert übergabe an spalte a (String oder double)
	 * zuvor muss die zeile gewählt werden*/
	public void setnewcell(int a, String str) {
		row.createCell(a).setCellValue(str);
	}
	public void setnewcell(int a, double doub) {
		row.createCell(a).setCellValue(doub);
	}
	public void setnewcell(int a, int zahl) {
		row.createCell(a).setCellValue(zahl);
	}
	public void setnewcell(int a, Long langez) {
		row.createCell(a).setCellValue(langez);
	}

	/*erzeugt zwei seiten im excel doc 
	 * muss als erstes durchgeführt werden*/
	public void createSheet() {

		wb = new HSSFWorkbook();
		sheet1 = wb.createSheet("sheet 1");
		sheet = wb.createSheet("Data");

	}

}
Damit erzeuge ich ein exel sheet wo ich über andere classen werte hier rein gebe und in bestimmte zellen reinschreibe.
 
Zuletzt bearbeitet:
juhuu. er hat mir jetzt einen fehler ausgegeben.... besser als garnix:
Code:
java.io.FileNotFoundException: C:\wbook.xls (Zugriff verweigert)

klappt das wenn ichs am usb stick versuche?
...probier ich gleich aus
 
Zuletzt bearbeitet:
juhuu. er hat mir jetzt einen fehler ausgegeben.... besser als garnix:
Code:
java.io.FileNotFoundException: C:\wbook.xls (Zugriff verweigert)

klappt das wenn ichs am usb stick versuche?
...probier ich gleich aus

Bitte den slasch beachten / oder \ sind zwei verschiedene dinge!! C:/wbook.xls war der vorschlag nicht mit \

Und ja USB muss auch gehen da das nichts anderes it als ein anderer pfad

___

Glückwunsch das es nun klapt
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben