Seite 1 von 1

CALC: Tabellen als csv exportieren

Verfasst: Fr, 13.01.2012 12:42
von rici35
Hi,

ich bräuchte bitte ein kleines Makro welches mir die Tabellen aus meinen calc Dokument als text.csv Datei exportiert.

Mit / als Feldtrenner und " als Texttrenner.

Wer könnte mir da helfen?

Ich komme mit den staroffice Basic nicht zurecht.

Vielen Dank und viele Grüße

Richard



Moderation,4: verschoben in BASIC-Unterbereich, wo alle Makro-Fragen hin gehören; Betreff angepasst

Re: Makro Tabellen als csv exportieren

Verfasst: Fr, 13.01.2012 12:54
von lorbass
Wieso brauchst du dafür ein Makro? Funktioniert bei dir Datei > Speichern unter… mit Dateityp Text CSV (csv) nicht?

Gruß
lorbass

Re: Makro Tabellen als csv exportieren

Verfasst: Fr, 13.01.2012 12:59
von rici35
Hi,

doch, dass funktioniert schon. Ich möchte das allerdings alles über Script steuern, dafür benötige ich ein Makro.

Viele Grüße

Rici

Re: Makro Tabellen als csv exportieren

Verfasst: Fr, 13.01.2012 13:34
von Frieder D.
Hallo rici35
Hier findest du ein Beispiel:

http://www.starbasicfaq.de/filteroption ... eroptionen

und hier findest du die Einstellungen:
http://wiki.services.openoffice.org/wik ... er_Options

Und der Code für "/" ist 47

Gruß Frieder

Re: Makro Tabellen als csv exportieren

Verfasst: Fr, 13.01.2012 14:04
von Frieder D.
Hallo
Ich habe es dir gerade mahl mit deinen Angaben erstellt.
Allerdings speichert es immer nur die aktuell-aktive Tabelle als CSV.
Hier der Code:

Code: Alles auswählen

Sub Speichern_CSV
Dim myProps(1) as New com.sun.star.beans.PropertyValue
sPath="C:\Users\Nansen\Desktop\CSVtest.csv"
sUrl=ConvertToUrl (sPath)
myProps(0).Name = "FilterName"
myProps(0).Value ="Text - txt - csv (StarCalc)"
myProps(1).Name="FilterOptions"
myProps(1).Value ="47/9,34,76,1,1/1/2/1" 'string mit den Optionen
myDoc = thisComponent
myDoc.storeAsUrl(sUrl,myProps())
End Sub
Gruß Frieder

Re: Makro Tabellen als csv exportieren

Verfasst: Fr, 13.01.2012 16:56
von Frieder D.
Hallo

Ich habe dir hier das Makro so erweitert, dass es alle Tabellen des Dokuments einzeln als CSV-Datei exportiert.

Code: Alles auswählen

Sub Speichern_CSV
Dim myDoc As Object
Dim sPath$ ,sUrl$
dim i%
Dim myProps(1) as New com.sun.star.beans.PropertyValue
  myDoc = thisComponent
  sPath="C:\Users\Nansen\Desktop\"
  for i=0 To myDoc.Sheets.getcount -1
    oSheet=myDoc.Sheets(i)
    myDoc.CurrentController.setActiveSheet(oSheet)
    
    sUrl = sPath & "CSVtable" & (i + 1) & ".csv"
    sUrl=ConvertToUrl (sUrl)
    
    myProps(0).Name = "FilterName"
    myProps(0).Value ="Text - txt - csv (StarCalc)"
    myProps(1).Name="FilterOptions"
    myProps(1).Value ="47/9,34,76,1,1/1/2/1" 'string mit den Optionen
    
    myDoc.storeAsUrl(sUrl,myProps())
  Next
End Sub
Gruß Frieder

Re: Makro Tabellen als csv exportieren

Verfasst: Fr, 13.01.2012 17:17
von Karolus
Hallo
Die Zuweisung von 'MyProps' wäre vor dem 'for...next'-Block besser aufgehoben.

Gruß Karo

Re: Makro Tabellen als csv exportieren

Verfasst: Fr, 13.01.2012 17:22
von Frieder D.
Hallo Karo
Karolus hat geschrieben:Die Zuweisung von 'MyProps' wäre vor dem 'for...next'-Block besser aufgehoben.
Danke hast recht. Habe ich vorhin einfach übersehen.
hier die verbesserte Version:

Code: Alles auswählen

Sub Speichern_CSV
Dim myDoc As Object
Dim sPath$ ,sUrl$
dim i%
Dim myProps(1) as New com.sun.star.beans.PropertyValue
  myDoc = thisComponent
  sPath="C:\Users\Nansen\Desktop\"
  
  myProps(0).Name = "FilterName"
  myProps(0).Value ="Text - txt - csv (StarCalc)"
  myProps(1).Name="FilterOptions"
  myProps(1).Value ="47/9,34,76,1,1/1/2/1" 'string mit den Optionen
    
  for i=0 To myDoc.Sheets.getcount -1
    oSheet=myDoc.Sheets(i)
    myDoc.CurrentController.setActiveSheet(oSheet)
    
    sUrl = sPath & "CSVtable" & (i + 1) & ".csv"
    sUrl=ConvertToUrl (sUrl)
    
    myDoc.storeAsUrl(sUrl,myProps())
  Next
End Sub
Gruß Frieder

Re: CALC: Tabellen als csv exportieren

Verfasst: Fr, 24.08.2018 08:03
von Stephan

Code: Alles auswählen

sUrl = sPath & ThisComponent.Sheets(0).getCellRangeByName("A1").String & ".csv"
übernimmt als Namen den Text in Zelle A1 der ersten Tabelle des aktuellen Calc-Dokumernts.


GRuß
Stephan

Re: CALC: Tabellen als csv exportieren

Verfasst: Fr, 24.08.2018 09:41
von Hiker
Hallo,

schau noch Mal in das Macro oben, dort gibt es einen ConvertToUrl-Aufruf, der aus einem Dateinamen eine URL (in diesem Fall mit File:// ) macht. Der fehlt bei Dir.

Ausprobieren kann ich es gerade leider nicht.

Mfg, Jörn

Re: CALC: Tabellen als csv exportieren

Verfasst: Do, 06.02.2020 11:40
von Kara1983
Hallo
auch wenn der Beitrag schon etwas älter ist, hoffe ich ihr könnte mir helfen

das Makro klappt super, jedoch würde ich gern die Tabellen mit ihrem Tabellenamen speichern.
Kann mir bite einer sagen wie ich das hierfür änern muss

Danke :)

Re: CALC: Tabellen als csv exportieren

Verfasst: Do, 06.02.2020 14:30
von Hiker
Hallo,

http://www.dannenhoefer.de/faqstarbasic ... l#Zweig203

Also einfach über das .name-Attribut des aktuellen Sheets.

Achtung: Wenn im Tabellennamen Zeichen verwendet werden, die für Dateien nicht erlaubt sind, geht das nicht so einfach...

Mfg, Jörn