Speichern als xls

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Speichern als xls

Re: Speichern als xls

von cruzylin » Mi, 02.03.2011 20:28

Ah...jetzt ja, Super, ich danke Dir !!!

Re: Speichern als xls

von komma4 » Mi, 02.03.2011 08:01

Ja... nun:

Deine dispatcher-Zeile ist falsch.

Richtig wäre

Code: Alles auswählen

dispatcher.executeDispatch( document, ".uno:SaveAs", "", 0, args3())
nach dem Füllen der Argumente:

Code: Alles auswählen

dim args3(1) as new com.sun.star.beans.PropertyValue
args3(0).Name = "URL"
args3(0).Value = URL
args3(1).Name = "FilterName"
args3(1).Value = "MS Excel 97"

Klappt das jetzt?

Re: Speichern als xls

von cruzylin » Di, 01.03.2011 21:42

Hallo Winfried,

ich habe jetzt den Code im 1.Beitrag komplettiert.
Im Prinzip geht es um die Zeilen zwischen den "------"

und der Fehler liegt laut Meldung in der letzten Zeile:

Code: Alles auswählen

dispatcher.executeDispatch( document, ".uno:SaveAs", "", 0, Url, Filter(), args3())
Mit XRAY habe ich mich noch nicht beschäftigt, ich kenne das noch nicht; ich probier gleich mal mein Glück.

Re: Speichern als xls

von komma4 » Di, 01.03.2011 05:31

Bei welcher Zeile kommt die Fehlermeldung?

Alle Variablen der Zeile mal mit XRAY angesehen? Dann ist es ziemlich schnell klar, was nicht gesetzt ist 8)
Mit dem geposteten AUSSCHNITT aus dem Code kann ich das nicht erkennen...



Viel Erfolg!

Speichern als xls

von cruzylin » So, 27.02.2011 21:58

Hallo,

ich habe von komma4 ein Makro auf meine Bedürfnisse angepasst. Dabei geht es, aus Zelleninhalten einen Dateinamen zu kreieren und zu speichern; als odf.

Nun versuche ich dieses Dokument auch im xls-format zu speichern, doh meine Versuche enden immer in einem Fehler, das eine Objektvariable nicht belegt ist.

Code: Alles auswählen

Sub AuftragAbschliessen_xls

CONST cVerzeichnis = "h:/Aufträge/A-Abgeschlossen"

CONST sBlattBehalten = "Auftragsannahme"
CONST sMakroName = "AuftragAbschliessen"
CONST sMakroVersion = " v1.0.0"
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
rem ----------------------------------------------------------------------


' Zusammensetzen des Dateinamens
sBlattName = document.Controller.ActiveSheet.Name
Kunde = _
ThisComponent.Sheets().getByName( sBlattName ).getCellRangeByName( "B6" ).String 'Kunde
rem ----------------------------------------------------------------------
sBlattName1 = document.Controller.ActiveSheet.Name
AuftrNr = _
ThisComponent.Sheets().getByName( sBlattName1 ).getCellRangeByName( "Q8" ).String 'Auftr.Nr.
rem ----------------------------------------------------------------------
sBlattName2 = document.Controller.ActiveSheet.Name
Hersteller = _
ThisComponent.Sheets().getByName( sBlattName2 ).getCellRangeByName( "A22" ).String 'Hersteller
rem ----------------------------------------------------------------------
sBlattName3 = document.Controller.ActiveSheet.Name
Typ = _
ThisComponent.Sheets().getByName( sBlattName3 ).getCellRangeByName( "C22" ).String 'Typ
rem ----------------------------------------------------------------------
sBlattName4 = document.Controller.ActiveSheet.Name
FabrNr = _
ThisComponent.Sheets().getByName( sBlattName4 ).getCellRangeByName( "E22" ).String 'Fabr.Nr.
rem ----------------------------------------------------------------------
sBlattName5 = document.Controller.ActiveSheet.Name
ID = _
ThisComponent.Sheets().getByName( sBlattName5 ).getCellRangeByName( "H22" ).String 'ID



' SpeichernAls: 
sNeuDatei = _
"file:///" & cVerzeichnis & "/" & Kunde & "/" & Hersteller & "_" & Typ & "_" & FabrNr & "_" & "ID_" & ID & "_" & AuftrNr & ".xls" 

If FileExists( sNeuDatei ) Then
   If MsgBox( "Die Datei existiert bereits!" & CHR(10) & _
         sNeuDatei & CHR(10) & _
         "Überschreiben?" , 36, _
         sMakroName & sMakroVersion ) = 7 THEN
         Exit Sub
   End If
End If

dim Filter(0) As New com.sun.star.beans.PropertyValue
Filter(0).Name = "FilterName"
Filter(0).Value = "MS Excel 97"
Url = sNeuDatei
Url = ConvertToUrl(Url)

dim args3(1) as new com.sun.star.beans.PropertyValue
args3(0).Name = "URL"
' args3(0).Value = "MS Excel 97"
args3(0).Value = sNeuDatei

dispatcher.executeDispatch( document, ".uno:SaveAs", "", 0, Url, Filter(), args3())

' automatisches Speichern
' ThisComponent.store()

End Sub

Wo liegt mein Fehler und wie kann man es umsetzen ???

Nach oben