XML-File Export mit Dateiname aus Zelle

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: XML-File Export mit Dateiname aus Zelle

Re: XML-File Export mit Dateiname aus Zelle

von Manu1981 » Mi, 21.12.2022 16:59

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

Re: XML-File Export mit Dateiname aus Zelle

von F3K Total » Mi, 21.12.2022 15:20

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

Re: XML-File Export mit Dateiname aus Zelle

von Manu1981 » Mi, 21.12.2022 11:54

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

Re: XML-File Export mit Dateiname aus Zelle

von Manu1981 » Mi, 21.12.2022 10:24

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

Re: XML-File Export mit Dateiname aus Zelle

von mikeleb » Di, 20.12.2022 18:20

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.

Re: XML-File Export mit Dateiname aus Zelle

von Manu1981 » Di, 20.12.2022 18:03

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

Re: XML-File Export mit Dateiname aus Zelle

von F3K Total » Di, 20.12.2022 17:17

Stimmt :lol: lass es regnen ... ;-)

Re: XML-File Export mit Dateiname aus Zelle

von Karolus » Di, 20.12.2022 16:08

Hallo

Wenn man einem …csv Export die Dateiendung …xml gibt, bleibts trotzdem …csv, was soll also der Unfug?

Re: XML-File Export mit Dateiname aus Zelle

von F3K Total » Di, 20.12.2022 15:57

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

XML-File Export mit Dateiname aus Zelle

von Manu1981 » Di, 20.12.2022 12:41

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

Nach oben