Zellen referenzieren mit .Cells()

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: Zellen referenzieren mit .Cells()

Re: Zellen referenzieren mit .Cells()

von saxo » Sa, 02.10.2021 11:12

Das Problem mit den vcards ist ein grösseres. Dieses Format ist sowas von inkompatibel zu relationalen Datenbanken. Hab es jetzt hinbekommen, dass die wichtigsten Felder aus einer Base-Abfrage in vcard gewandelt werden können, aber auch nur über den calc-Umweg. Ein csv-Import ins Handy funktioniert auch nur über google und die ändern dauernd etwas am Format.
Das Ziel ist ein vom Internet unabhängiger Abgleich mit dem Handy über Radicale oder Baikal. Keine Daten mehr bei google & co.

Re: Zellen referenzieren mit .Cells()

von Karolus » Sa, 02.10.2021 09:36

Hallo
Ich sehe das du eigentlich nur Adress-daten aus …csv nach …vcf wandeln möchtest, an der Stelle könntest du dann python benutzen, und das mit Hilfe von csv2vcf erledigen.
https://github.com/Moduland/csv2vcf

Re: Zellen referenzieren mit .Cells()

von saxo » Fr, 01.10.2021 18:28

Vielen Dank craig, wieder what learned...

Re: Zellen referenzieren mit .Cells()

von craig22 » Fr, 01.10.2021 14:40

Hallo,

bisher koonte ich 4 Probleme feststellen:
  • Es fehlen die Referenzierung auf das aktuelle Dokument und
  • die explizite Referenzierung der Tabelle
  • die explizite Referenzierung der Zelle
  • SimpleFileAccess (siehe weiter unten)

Code: Alles auswählen

	Dim oDoc as Object, oSheet as Object
	oDoc=ThisComponent						' 1)
	oSheet=oDoc.getSheets().getByName("contacts")	' 2)
und hier muss die Referenzierung der gewünschten Zelle so lauten:

Code: Alles auswählen

	With oSheet("contacts")
		s = .getCellByPosition(1, 1).String	' .String oder .Value ! In Deinem Fall .String 	' 3)
		myTextFile.writeString(s & chr(13) & chr(10))
	End With
Nutze zur Starbasic-Code-Inspektion dieses Tool:
XRay-Tool
Es handelt sich hierbei um ein Writer-Dokument mit Installations-Makros und es ist gleichzeitig die Doku zum Tool.

weitere Info's und Doku's:
https://wiki.openoffice.org/wiki/DE/Mak ... c_Tutorial
Dannenhöfer

Ein weiteres Problem betrifft SimpleFileAccess.
Lese dazu in diesem Buch auf Seite 187:
http://www.uni-due.de/~abi070/count.php ... eutsch.pdf

AOO API → SimpleFileAccess
LO API → SimpleFileAccess

Zellen referenzieren mit .Cells()

von saxo » Fr, 01.10.2021 13:29

Hallo,
versuche folgenden Code aus Excel in Libreoffice umzuschreiben. Bekomme Fehlermeldung:
Error 35: Prozedur Sub oder Function nicht definiert. In line: 13
Das Schräge ist, dass es unter Linux funktioniert, sobald ich im Quellcode auch nur irgend ein Zeichen in einem Kommentar verändere. Unter Windows scheint es auch zu funktionieren.
Es geht um .cells() und die With Sheets() Formulierung, die wohl in LO nicht richtig funktionieren.
Habe auch schon mit ThisComponent.CurrentController.ActiveSheet rumprobiert um die Tabelle und die Zelle zu adressieren, bekomme das aber nicht hin. Das Programm soll den Inhalt der ersten Zelle in eine utf-8 Textdatei im gleichen Ordner schreiben.
Vielen Dank

Sub Test()
Dim myTextFile As Object, mySf As Object, myFileStream As Object
Dim s As String

On Error Goto ErrorHandler
mySf = createUnoService("com.sun.star.ucb.SimpleFileAccess")
myTextFile = createUnoService("com.sun.star.io.TextOutputStream")
myFileStream = mySf.openFileWrite(CurrentFolder() & "Test.csv")
myTextFile.OutputStream = myFileStream
myTextFile.Encoding = "UTF-8"

With Sheets("contacts")
s = .Cells(1, 1)
myTextFile.writeString(s & chr(13) & chr(10))
End With
MsgBox "exported to Test.csv in same folder"
myFileStream.closeOutput : myTextFile.closeOutput
Exit Sub

ErrorHandler:
MsgBox "Error " & Err & ": " & Error$ & chr(13) & "In line: " & Erl
myFileStream.closeOutput : myTextFile.closeOutput
End Sub

Sub CurrentFolder() As String
REM Funktioniert unter Windows und Linux
dim sUrl As String
dim sParts As Variant
sUrl = ThisComponent.getURL()
sParts = Split(sUrl, "/")
ReDim Preserve sParts(0 to UBound(sParts) - 1)
CurrentFolder = Join(sParts, "/") & "/"
'MsgBox(CurrentFolder)
End Sub
Dateianhänge
Test.ods
(20.84 KiB) 69-mal heruntergeladen

Nach oben