XML-File Export mit Dateiname aus Zelle

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Manu1981
**
Beiträge: 26
Registriert: Mi, 15.04.2015 09:47
Kontaktdaten:

XML-File Export mit Dateiname aus Zelle

Beitrag von Manu1981 »

Hallo,

ich habe eine Art "Bestellformular" für einen Kunden gebastelt, in dem der Kunde nur noch seine Artikel einzutragen braucht und daraus dann nach einem Klick auf einen Makrobutton eine XML-Datei erzeugt wird, welche ich hier ins System einlesen kann. Das funktioniert auch ganz gut mit dem im Makro hinterlegten Dateinamen (import-xml). Allerdings hätte ich gerne, dass der Dateiname die Bestellnummer ist (z.B. 000001.xml). Die entsprechende Nummer erhöht sich nach jedem Export automatisch (Makro) um 1 und steht in der Zelle Bestellung.I4.
Da ich nicht so der VBA-Crack bin, frage ich Euch: Was muss ich am Makro " XMLFILE" ändern, damit der Dateiname nicht mehr import.xml sondern "Inhalt der Zelle Bestellung.I4 (fortlaufende Nummer).xml" heißt?

Viele Grüße
Manu

Aktuell sieht das Makro folgendermaßen aus....


sub TOXMLFINAL (Mit diesem Teil geht Calc auf das zu exportierende Tabellenblatt)
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 ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Nr"
args1(0).Value = 4

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())


end sub

sub XMLFILE (Dateiexport - um diesen Teil geht es aktuell)
Dim myProps(1) as New com.sun.star.beans.PropertyValue
sPath="C:\BESTELLUNG\import.xml"
sUrl=ConvertToUrl (sPath)
myProps(0).Name = "FilterName"
myProps(0).Value ="Text - txt - csv (StarCalc)"
myProps(1).Name="FilterOptions"
myProps(1).Value ="0/9,0,76,1,1/1/2/1" 'string mit den Optionen
myDoc = thisComponent
myDoc.storeAsUrl(sUrl,myProps())
End Sub



sub TOBestellung (Mit diesem Teil geht es wieder zum ersten Tabellenblatt (Bestellung).
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 ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Nr"
args1(0).Value = 1

dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())


end sub
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: XML-File Export mit Dateiname aus Zelle

Beitrag von F3K Total »

Moin,
versuche es mit diesem Makro:

Code: Alles auswählen

sub XMLFILE '(Dateiexport - um diesen Teil geht es aktuell)
    Dim myProps(1) as New com.sun.star.beans.PropertyValue
    oSheet = ThisComponent.Sheets.getbyName("Bestellung")'Tabellenblatt
    oCell = oSheet.getCellrangebyName("I4")'Zelle mit lfd. Nummer
    sFilename = format(oCell.Value,"000000") & ".xml" 'Generierung Dateiname
    sPath="C:\BESTELLUNG\" & sFilename
    sUrl=ConvertToUrl (sPath)
    myProps(0).Name = "FilterName"
    myProps(0).Value ="Text - txt - csv (StarCalc)"
    myProps(1).Name="FilterOptions"
    myProps(1).Value ="0/9,0,76,1,1/1/2/1" 'string mit den Optionen
    myDoc = thisComponent
    myDoc.storeAsUrl(sUrl,myProps())
End Sub
Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

Re: XML-File Export mit Dateiname aus Zelle

Beitrag von Karolus »

Hallo

Wenn man einem …csv Export die Dateiendung …xml gibt, bleibts trotzdem …csv, was soll also der Unfug?
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: XML-File Export mit Dateiname aus Zelle

Beitrag von F3K Total »

Stimmt :lol: lass es regnen ... ;-)
Manu1981
**
Beiträge: 26
Registriert: Mi, 15.04.2015 09:47
Kontaktdaten:

Re: XML-File Export mit Dateiname aus Zelle

Beitrag von Manu1981 »

Hi und vielen Dank schon einmal für die Antworten. :)
Ich habe es einmal mit dem Makro ausprobiert, aber leider heißt die Datei nun 000000.xml und es ändert sich nichts.
Es wird also kein Bezug auf Zelle I4 genommen, welche sich nach jedem Klick auf den Makrobutton "Speichern & Neu" um 1 erhöht.

Gibt es hier noch einen Lösungsvorschlag?

Viele Grüße
Manu
mikeleb
*******
Beiträge: 1316
Registriert: Fr, 09.12.2011 16:50

Re: XML-File Export mit Dateiname aus Zelle

Beitrag von mikeleb »

Hallo,
dann tipppe ich mal ins Blaue, dass I4 keine Zahl sondern Text enthält oder die gewünschte, zu exportierende Tabelle nicht "Bestellung" heißt.
Gruß,
mikeleb
Manu1981
**
Beiträge: 26
Registriert: Mi, 15.04.2015 09:47
Kontaktdaten:

Re: XML-File Export mit Dateiname aus Zelle

Beitrag von Manu1981 »

Hallo Mikeleb,

ersteres könnte in der Tat der Fall sein. :) Ich mache mich gerade mal an die Lösung des Problems. :)

Melde mich danach nochmal. :)
Viele Grüße
Manu
Manu1981
**
Beiträge: 26
Registriert: Mi, 15.04.2015 09:47
Kontaktdaten:

Re: XML-File Export mit Dateiname aus Zelle

Beitrag von Manu1981 »

Hi Mikeleb,

ersteres war tatsächlich der Fall. :) Vielen Dank für Deine Hilfe. :) Ich merke erst jetzt, dass es auch sinnvoll sein könnte, wenn der sPath aus einer Zelle ausgelesen werden kann (somit kann der Kunde den Pfad entsprechend anpassen).

Welche Änderungen müsste ich hierzu durchführen?

Viele Grüße
Manu
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: XML-File Export mit Dateiname aus Zelle

Beitrag von F3K Total »

Moin Manu,
wenn der Pfad als Text in Zelle I5 stünde...

Code: Alles auswählen

sub XMLFILE '(Dateiexport - um diesen Teil geht es aktuell)
    Dim myProps(1) as New com.sun.star.beans.PropertyValue
    oSheet = ThisComponent.Sheets.getbyName("Bestellung")'Tabellenblatt
    oCell = oSheet.getCellrangebyName("I4")'Zelle mit lfd. Nummer
    oPathCell = oSheet.getCellrangebyName("I5")'Zelle mit Pfad
    sFilename = format(oCell.Value,"000000") & ".xml" 'Generierung Dateiname
    sPath = oPathCell.String & sFilename
    sUrl=ConvertToUrl (sPath)
    myProps(0).Name = "FilterName"
    myProps(0).Value ="Text - txt - csv (StarCalc)"
    myProps(1).Name="FilterOptions"
    myProps(1).Value ="0/9,0,76,1,1/1/2/1" 'string mit den Optionen
    myDoc = thisComponent
    myDoc.storeAsUrl(sUrl,myProps())
End Sub
Selber denken ...
R
Manu1981
**
Beiträge: 26
Registriert: Mi, 15.04.2015 09:47
Kontaktdaten:

Re: XML-File Export mit Dateiname aus Zelle

Beitrag von Manu1981 »

Hallo nochmal, :)
vielen Dank!! Hat wunderbar funktioniert.
Viele Grüße
Manu
Antworten