2016-12-13 4 views
-1

Ich verstehe Excel hat eine TEXTJOIN Funktion, die es ermöglicht, mehrere Werte als Tupel anzuzeigen.libreoffice calc - varargs in Makros

Ich verstehe auch Libre Office tut - aus welchen Gründen auch immer - sie nicht haben.

Wie schreibe ich ein Hilfsmakro vec, das die gewünschte Tuple-Darstellung für mich erzeugt?

z. =vec(A1)="("&A1&")" produzieren sollte,

=vec(A1:A3)="("&A1&","&A2&","&A3&")" produzieren sollte,

=vec(A1,X5:X99,Z3) sollte in Folge ="("&A1&","&"X5"&","&X6&...&x99&","&Z3&")"

etc, etc.

leicht genug, um ein Makro, sagen wir, bash zu implementieren, aber ich würde mag es nur einmal zu definieren, dann benutze es in calc, nicht ständig von der Konsole in die Tabelle zu kopieren.

Wie implementiere ich das in calc?

+1

Mögliche Duplikate von [Open Office Spreadsheet (Calc) - Verketten von Textzellen mit Trennzeichen] (http://stackoverflow.com/questions/1825886/open-office-spreadsheet-calc-concatenate-text-celles-with-delimiters) – tohuwawohu

+1

@ tohuwawohu Schön, danke. Werde mich definitiv genauer anschauen. Diese Frage unterscheidet sich jedoch von der vorgeschlagenen Lösung insofern, als ich die Anforderung loswerden möchte, dass die Werte in einem verbundenen Bereich liegen müssen. – User1291

+0

Hoppla! Sie haben recht, insofern Ihre Frage in Wirklichkeit kein Duplikat ist. – tohuwawohu

Antwort

0

Nach https://forum.openoffice.org/en/forum/viewtopic.php?f=45&t=67880 ist es möglich, für eine Grundfunktion, eine variable Anzahl von Argumenten zu verwenden, wenn es mit Option Compatible deklariert wird. Dadurch verhält es sich mehr wie MS Excel. Das Argument wird als ParamArray pa() deklariert.

Der Link, den @ tohuwawohu veröffentlicht hat, zeigt die meisten erforderlichen Implementierungsdetails.

Schreiben Sie ein Spreadsheet-Add-In mit einer Java-Deklaration, die any[] als ein Argument verwendet, auf eine Weise, die LibreOffice systemeigener ist. Informationen zu Add-In-Argumenttypen finden Sie unter https://www.openoffice.org/api/docs/common/ref/com/sun/star/sheet/AddIn.html.

Die eigentliche Funktion kann auch in Java implementiert werden. Oder es kann wahrscheinlich in einer anderen Sprache implementiert werden, die eine variable Anzahl von Argumenten wie Python *args akzeptiert.

Verwandte Themen