Ich hab sogar rausgefunden woran es lag :D
Ich hatte noch den Zellschutz aktiv und hab versucht in geschützte
Zellen zu schreiben, die Fehlermeldung war nur etwas.. generell :D
Mit freundlichen Grüßen,
Gerrit
On 22.11.22 09:31, Gerrit Großkopf wrote:
Hey Thomas,
Ich hab das ganze nochmal bei unserer 10mb Datei ausprobiert und jetzt
läuft der Befehl nach nur 2 minuten Minuten durch :D Mega gut, ich
freu mich drauf, jetzt erstmal den 30 minuten prozess für die 140000
zellen durchoptimieren und dann wird das ein großartiger Tag :D Ich
mach nicht einmal was anderes, Computer war wohl nur müde und musste
schlafen :D
Mit freundlichen Grüßen,
Gerrit
On 22.11.22 09:18, Gerrit Großkopf wrote:
Hey Thomas,
Vielen Dank für die Hilfe, das heisst an sich ich mach nix falsch,
habe es gerade mit einer leeren ods datei noch einmal probiert da
klappt es Anstandslos :) dann liegt es wohl an der Komplexität
unserer 10 MB Tabelle :D ich schick mal nen libreoffice bauprozess
los, vielleicht wird daraus ja sogar ein Bugfix :)
Mit freundlichen Grüßen,
Gerrit
On 21.11.22 20:01, Thomas Krumbein wrote:
Hei Gerrit,
also, mit Python hab ich noch nicht viel experimentiert - wohl aber
mit Basic.
Und bei den Fällen dürfte es kaum Unterschiede geben.
Die Methode setFormulaArray() erwartet als Übergabeparameter einen
Array von Arrays - mit jeweils gültigen Calc-Formeln beginnend mit
einem Gleichheitszeichen.
Die Formeln müssen in der englischen Schreibweise erfolgen!
eine einfache Übergabe könnte wie folgt aussehen:
oDoc = thisComponent
oSheet = oDoc.sheets(0)
oBereich = oSheet.getCellRangeByPosition(1,1,1,4)
aFormel = array(array("=a2"), array("=a3"), array("=a4"),
array("=a5"))
oBereich.setFormulaArray(aFormel)
Der Bereich definiert die Zellen B2-B5 und funktioniert (eben
getestet).
Verwendest Du 2 Spalten (B+C) dann würden die inneren Arrays eben 2
Elemente haben müssen.
Jetzt musst Du diese Array-Funktionen eben auf Python-typische
Notation umsetzen - dann sollte es auch laufen.
Ob eine Tuple-Funktion das erfüllen kann, kann ich leider nicht sagen.
Ich hoffe, es hilft.
Viele Grüße
Thomas
Am 21.11.2022 um 16:46 schrieb Gerrit Großkopf:
Hallo in die Runde,
Ich benutze Libreoffice 7.3.7.2 über python uno und versuche
aktuell einen Bereich mit formeln zu füllen, doch immer wenn ich
setFormulaArray verwende, wird mir eine RuntimeException geworfen,
Zeile 5030 von
https://git.libreoffice.org/core/+/refs/tags/libreoffice-7.3.7.2/sc/source/ui/unoobj/cellsuno.cxx
Meine Versuchsreihe geht so:
file.Sheets.getByName('Moni').getCellRangeByPosition(30,10,32,343).setFormulaArray(list)
mit unterschiedlichen Parametern in list, manchmal sowas:
list = tuple([(
str(f'{{=MULTIPLE.OPERATIONS($AD{row};$AD$8;AE$8}}'),
str(f'{{=MULTIPLE.OPERATIONS($AD{row};$AD$8;AF$8}}'),
str(f'{{=MULTIPLE.OPERATIONS($AD{row};$AD$8;AG$8}}')
) for row in range(9,343)])
manchmal versuch ich auch einfach sowas:
list=file.Sheets.getByName('Moni').getCellRangeByPosition(30,10,32,343).getFormulaArray()
sogar
phpp.Sheets.getByName('Moni').getCellRangeByPosition(30,10,32,12).setFormulaArray((('a','b','c',),('d','e','f',),('g','h','i',),))
wirft denselben fehler
Immer kommt derselbe Fehler, kennt jemand die Funktion und hat ein
Beispiel mit dem sie Funktioniert? Ich würde halt gerne ein
einfügen von mehreren Zellen gleichzeitig machen, da ich sonst so
140000 Zellen einzeln setzen muss und das ist eher arg zeitaufwändig
Mit freundlichen Grüßen,
Gerrit Großkopf
--
Liste abmelden mit E-Mail an: users+unsubscr...@de.libreoffice.org
Probleme?
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy