🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Mehrere Daten auf einmal per Makro in ein calc-Sheet schreib

Alles zur Programmierung im LibreOffice.
Antworten
BastiL
Beiträge: 13
Registriert: So 3. Feb 2013, 10:52

Mehrere Daten auf einmal per Makro in ein calc-Sheet schreib

Beitrag von BastiL » Do 30. Mai 2013, 19:49

Hallo zusammen,

ich möchte ein Liste von Daten im Format tt.mm.jjjj per Python-Makro in eine Calc-Spalte eintragen. Für ein einzelnes Datum verwende ich dafür "FormulaLocal". Um mehrere Werte auf einmal einzutragen kenne ich nichts intsprechendes. "setDataArray" funktioniert nicht und "setFormulaLocalArray" gibt es nicht. Eine Schleife ist keine Lösung weil das eintragen von 100 Daten mit FormulaLocal ewig dauert. Das für Alternativen gibt es da? Danke.

BastiL

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2539
Registriert: Fr 10. Dez 2010, 10:01

Re: Mehrere Daten auf einmal per Makro in ein calc-Sheet sch

Beitrag von karolus » Do 30. Mai 2013, 21:28

Hallo

Trage die Daten per .setFormulaArray(...) im Iso-format ein und setze das gewünschte Datumsformat:

Code: Alles auswählen

import uno
import datetime
context = XSCRIPTCONTEXT

def datum_array():
    """
    """
    doc = context.getDocument()
    numberformats = doc.NumberFormats
    Locale = uno.createUnoStruct("com.sun.star.lang.Locale")
    dateformat = numberformats.queryKey('TT.MM.JJJJ', Locale, True )
    if dateformat == -1:
        dateformat = numberformats.addNew('TT.MM.JJJJ', Locale)
    sheet = doc.CurrentSelection.Spreadsheet
    cellrange = sheet.getCellRangeByName('A1:A3')
    datum = datetime.date(1987, 11, 3)
    d = datum.isoformat()
    cellrange.setFormulaArray(((d,),(d,),(d,)),)
    cellrange.NumberFormat = dateformat
Karolus
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

BastiL
Beiträge: 13
Registriert: So 3. Feb 2013, 10:52

Re: Mehrere Daten auf einmal per Makro in ein calc-Sheet sch

Beitrag von BastiL » Do 13. Jun 2013, 22:19

Perfekt, vielen Dank.


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten