Calcfunktionen in Writer mit Basic nachbilden

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

bst
*****
Beiträge: 222
Registriert: Mo, 18.01.2010 16:14
Wohnort: Ilsfeld

Re: Calcfunktionen in Writer mit Basic nachbilden

Beitrag von bst »

Abend,

Du kannst die Tabellenfunktionen mit dem Interface XFunctionAccess von com.sun.star.sheet.FunctionAccess benutzen.

Siehe: http://api.openoffice.org/docs/common/r ... ccess.html

Den ggf. benötigten englischen Funktionsnamen bekommst Du so:

B1: =MITTELWERT(A1:A5)

Code: Alles auswählen

Sub x()
	print ThisComponent.currentController.ActiveSheet.getCellRangeByName("B1").Formula
	' print ThisComponent.sheets(0).getCellRangeByName("B1").Formula
End Sub
liefert: =AVERAGE(A1:A5)

cu, Bernd
--

Code: Alles auswählen

REM  *****  BASIC  *****

Sub Main
	oFunc = createUnoService("com.sun.star.sheet.FunctionAccess")
	aArgs = Array(1,4,5,3,2)
	print oFunc.callFunction("MIN", aArgs())
	print oFunc.callFunction("MAX", aArgs())
	print oFunc.callFunction("AVERAGE", aArgs())
End Sub
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Calcfunktionen in Writer mit Basic nachbilden

Beitrag von Stephan »

Jetzt muss ich echt sagen, dass es arglistig ist, das die Funktionen im
Writer nicht implementiert worden sind.
UNd was wäre der Vorteil davon ertwas zu implementieren was zu allem und jedem inkompatibel ist und insbesondere auch im ODT-Format garnicht abspeicherbar, weil der ODF-Standard für Textdokumente garkeine derartigen Formel vorsieht?


Gruß
Stephan
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Calcfunktionen in Writer mit Basic nachbilden

Beitrag von Stephan »

Vielleicht beantwortest Du Dir mal die Frage ob Vorsprung zur Konkurenz nicht zwangsläufig unkompatibel sein wird.
die brauche ich mir eigentlich nicht zu beantworten, denn die Praxis zeigt das es so ist, also diese Inkompatibilität längst besteht.

Allerdings ist Inkompatibilität zur Konkurrenz etwas Anderes als bewußte Inkompatibilität zum ODF-Format, weil in der Unterstützung eines herstellerunabhängigen, freien, international anerkannten Standards eine der Hauptaufgaben von OOo liegt.
Ohne solcherart Ziele sehe ich keine Daseinsberechtigung für OOo denn es könnte jederzeit durch MS Office oder andere Programme ersetzt werden.

Das ist nun einerseits meine persönliche Meinung, in anderer Hinsicht vielleicht aber auch eine allgemeine Einschätzung der Lage insofern ich viele OOo-Unterstützer kenne die ähnlich denken, die also mit OOo konkrete Ziele verbinden und es nicht als Selbstzweck sehen.

Für mich persönlich (der ich OOo ehrenamtlich, wie auch beruflich unterstütze) macht jedenfalls eine Unterstützung für OOo dann keinen Sinn mehr wenn die strategische Richtung nicht mehr stimmen würde. Für mich geht es dabei um ganz sachliche Fragen, welche aber letztlich auch meine Motivation begründen, denn sicherlich hätte ich wissensmäßig kein Problem in einem MS Office Forum Unterschlupf als Moderator zu finden und beruflich biete ich bereits heute zu MS Office dieselben Dienstleistungen an wie für OOo (lediglich habe ich in der Praxis überwiegend die Wahl worauf ich mich konzentriere und das ist momentan OOo).


In zwei Dingen möchte ich hier kein Mißverständnis aufkommen lassen:

1.
Meine Aussagen gründen sich auf die momentane Situation beim ODF-Format.
(Nichts spricht für mich dagegen jederzeit solche FEldbefehle schnellstens in Oo zu integrieren, sofern diese im ODF-Format (mehr als nur optional) abbildbar sind und nichts spricht für mich zunächst dagegen das ODF-Format so weiterzuentwickeln das diese Möglichkeit geschaffen wird. Allein ist Beides allenfalls Zukunft und nicht Gegenwart.)

2.
Ich habe auf reale Veränderungen in OOo keinen größeren Einfluss als jeder andere auch.




Gruß
Stephan
Antworten