Calc Zelleninhalte in .txt Datei schreiben

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

Moderator: Moderatoren

utzachaka
Beiträge: 2
Registriert: Di, 06.03.2018 19:48

Calc Zelleninhalte in .txt Datei schreiben

Beitrag von utzachaka »

Hi,

ich benötige ein Makro, welches mir bestimmte Zellinhalte in eine .txt Datei schreibt.
In VBA habe ich ein Makro gefunden, welches anscheinend diesen Zweck erfüllt. Es funktioniert natürlich nicht für OpenOffice Calc.

Hier der Code:

Code: Alles auswählen

Sub TXT_Exportieren()
    Dim intCountRow As Integer
    Dim intCountCol As Integer
    Dim strHeader As Variant
   
    'Datei wird geöffnet oder angelegt, wenn sie nicht existiert.
    'oder einfach überschrieben, wenn sie bereits existiert
    Open "c:\test_1.txt" For Output As #1
   
    'Zuerst wird ein StringArray "strHeader" erzeugt, das die Spalten-
    'überschriften enthält. Dieses StringArray wird dann in am
    'Anfang jeder Zeile in die Textdatei geschrieben.
    strHeader = Range(Range("A1"), Cells(1, UsedRange.Columns.Count))
   
    For intCountRow = 2 To UsedRange.Rows.Count
        For intCountCol = LBound(strHeader) To UBound(strHeader, 2)
            Print #1, strHeader(1, intCountCol) & "=" & Cells(intCountRow, intCountCol).Text
        Next intCountCol
    Next intCountRow
   
    Close #1
End Sub
Wie muss dieses Makro für OpenOffice aussehen? Ich habe versucht mich da etwas einzulesen, aber allein der Range Befehl schaut völlig anders aus. Ich glaube auch, dass ich weitere Variablen benötige.
In diesem Makro hier wird UsedRange verwendet. Falls OpenOffice das nicht unterstützt, reicht auch Zelle G10:L40 z.B..

Kann mir das jemand umschreiben?


Mit freundlichen Grüßen
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Calc Zelleninhalte in .txt Datei schreiben

Beitrag von Stephan »

z.B.:

Code: Alles auswählen

Sub Main
	iNumber = Freefile
	Open "d:\test_1.txt" For Output As #iNumber
	
	tcs = ThisComponent.Sheets().getByName("Tabelle1")
	cur = tcs.CreateCursor
	cur.GotoEndOfUsedArea(False)
	nRow = cur.getRangeAddress().endRow
	nCol = cur.getRangeAddress().endColumn 
     
	ueberschriften = tcs.getCellRangeByPosition(0,0,nCol,0).getDataArray()
	for i = 1 To nRow
		for j = 0 To nCol
			Print #iNumber, ueberschriften(0)(j) & "=" &  tcs.getCellByPosition(j,i).FormulaLocal
		next j
	next i
	Close #iNumber
	Msgbox "Datei wuirde erstellt."
End Sub

Gruß
Stephan
utzachaka
Beiträge: 2
Registriert: Di, 06.03.2018 19:48

Re: Calc Zelleninhalte in .txt Datei schreiben

Beitrag von utzachaka »

Top!

Funktioniert. Daran kann ich basteln und mein gewünschtes Ergebnis erzielen.

Vielen Dank!
Antworten