Libre Office

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: 2722
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
LO25.2.x.y debian 13(trixie) auf Raspberry5 8GB (64bit)
LO25.8.x.y flatpak debian 13(trixie) auf Raspberry5 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.

Open Office
Antworten