Seite 1 von 1

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

Verfasst: Do 30. Mai 2013, 19:49
von BastiL
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

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

Verfasst: Do 30. Mai 2013, 21:28
von karolus
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

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

Verfasst: Do 13. Jun 2013, 22:19
von BastiL
Perfekt, vielen Dank.