# Excel Datei in Excel aus Java heraus öffnen



## ARadauer (27. Jul 2007)

hallo ich müsste eine excel Datei aus java heraus öffnen. also in excel.


```
try {
				Runtime.getRuntime().exec("C:\\Program Files\\Microsoft Office\\OFFICE11\\EXCEL.EXE "+target.getAbsolutePath());
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
```
 

klappt schon ganz nice, nur was mach ich, wenn excel sich nicht in dem verzeichnis befindet?
gibt es nicht eine bessere möglichkeit? plattformunabhängigkeit ist egal, da der benuterkreis sehr eingeschränkt ist und nur windows verwendet.

danke


----------



## ARadauer (27. Jul 2007)

aja 

Process.start(target.getAbsolutePath());

hab ich auch schon gefunden, leider muss ich die java 1.3 version verwenden und da scheint es das Objekt nicht zu geben


----------



## JPKI (27. Jul 2007)

Ich hab auch Office installiert und die Pfade zum Office-Installationsordner sind in der Systemvariable PATH eingetragen.

Daher reicht es wenn du nur den Befehl "excel" aufrufst.


```
Runtime.getRuntime().exec("excel \"" + target.getAbsolutePath() + "\"");
```

Wobei ich den Pfad zur Datei in Anführungszeichen setzen würde.


----------



## Bjoern2 (27. Jul 2007)

Du könntest versuchen dir aus der Registry das Standard-Programm für die Dateiendung *.xls heraus zu suchen.
Dann hast du den Pfad von deinem Excel. ;-)


----------



## ARadauer (27. Jul 2007)

path ja wär eine lösung, haber hier in der firma ist es nicht eingetragen. funktioniert leider nicht  :cry: 

das mit der registry? mhn ernst gemeint? gehts nicht einfacher?


----------



## ARadauer (27. Jul 2007)

ich könnte rekursiv c:\ durchgehen und exce.exe suchen... na schmarrn!


----------



## JPKI (27. Jul 2007)

Hm... Die Datei "%homedrive%\Dokumente und Einstellungen\All Users\Startmenü\Programme\Microsoft Office\Microsoft Office Excel.lnk" auslesen und daraus den Excel-Startpfad entnehmen.


----------



## Foermchen82 (28. Jul 2007)

Wenn Excel als dein Standart-Programm für xls-Dateien definiert ist, kannst du es mit folgendem aufruf öffnen:


```
File file = new File("excelfile.xls");
    String command = "cmd /C start "+file.getPath();
    try {
      Runtime.getRuntime().exec(command);
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
```

voraussetzung ist natürlich, dass sich die xls-Datei im Klassenpfa befindet. Ansonsten müsstest du noch den entsprechenden Pfad angeben.


----------



## JPKI (28. Jul 2007)

Oder er benutzt getAbsolutePath().


----------



## Murray (28. Jul 2007)

Foermchen82 hat gesagt.:
			
		

> voraussetzung ist natürlich, dass sich die xls-Datei im Klassenpfa befindet. Ansonsten müsstest du noch den entsprechenden Pfad angeben.



Das stimmt so nicht ganz: es reicht nicht, die xls-Datei im Classpath zu haben; new File( "dateiname.xls") zeigt genau dann auf die Datei, wenn sie sich im Arbeitsverzeichnis der Anwendung befindet.


----------



## Foermchen82 (28. Jul 2007)

OK, mein Fehler. Den Pfad meinte ich natürlich


----------

