# Macros von Java aus starten



## Pitchfork (14. Februar 2005)

Hi.

Ist es möglich, von Java aus auf eine Excel-File zuzugreifen und da ein bestimmtes Macro anzusprechen?

Eine andere Variante wär noch, dass ich ein öffnen der Datei simuliere, ohne das der Nutzer was mitbekomme. Marcros lassen sich ja mit Workbook_open() automatisch starten.

Hat jemand eine Idee, wie ich das machen könnte?

Danke


----------



## schnuffie (14. Februar 2005)

Mit "Runtime.getRuntime().exec("excel.xls")" könntest Du bequem die Excel-Datei öffenen und über Deine Methode würde auch das Makro ausgeführt.

Soll's etwas mehr sein, kann ich Dir nur die Java-Excel-API nahelegen:
http://jakarta.apache.org/poi/hssf/


----------



## Pitchfork (14. Februar 2005)

Hi.

Aber explizit ein Macro ansprechen geht scheinbar nicht ganz so einfach, oder?

Das mit "... exec(" ...test.xls");"hab ich auch so umgesetzt. Es funktioniert auch ganz gut.
Jetzt hab ich aber das nächste Problem:

Mit POI kann man keine einzelnen Sheets in eine andere ExcelDatei kopieren. Und wenn ich das ganze Workbook kopiere und dann nicht nichtbenörigten Sheets lösche, treten Laufzeitfehler auf.

Aber trotzdem vielen Danke! 

Pitchfork


----------



## Thomas Darimont (14. Februar 2005)

Hallo!

Du kannst Excel mittels OLE Automation unter Verwendung von SWT genauso steuern wie von VB und C++ aus...

Gruß Tom


----------



## oneway (4. März 2005)

Pitchfork hat gesagt.:
			
		

> Hi.
> 
> Aber explizit ein Macro ansprechen geht scheinbar nicht ganz so einfach, oder?
> 
> ...


 
Guten Morgen!

Ich habe wohl ein ähnliches Problem mit POI. Da ich mein Excel-File über ein Macro formatieren möchte, lese ich zuerst aus einer "Muster"-Excel-Datei das Macro und schreibe es zusammen mit meinen Werten in eine neue Excel-Datei. Das funktioniert so weit auch ganz gut, das Macro wird gespeichert und kann auch ausgeführt werden - aber eben nur per Hand und nicht automatisch, so dass die Datei gleich beim Öffnen korrekt formatiert wäre.

Wenn ich euch richtig verstanden habe, dann sollte hier die Vorgehensweise mit dem Runtime.getRuntime().exec(...) Abhilfe schaffen. Aber funktioniert das denn dann auch in jeder Umgebung? Da ich die Excel-Datei mit einem Servlet auf einem Unix-System erzeugen möchte, bevor ich die Datei dann wieder an den Client zurückschicke, bezweifle ich das irgendwie. 

Gibt es nicht noch eine andere Möglichkeit, das Macro ausführen zu lassen? Vorschläge und gute Ratschläge sind sehr willkommen 
	

	
	
		
		

		
			





Gruß
Christine


----------

