ich benötige mal eure Hilfe. Z. Zt. arbeite ich an einem Add-In, das mir Kurswerte von einer Webseite einliest. Es soll eine Funktion entstehen, an die die URL übergeben wird und der aktuell Kurs anschließend zurückgegeben wird.
Die Umsetung habe ich mit Python3 gemacht. Der Test in Python liefert auch die richtigen Ergebnisse. Die Installation in Calc funktioniert ebenfalls problemlos. Möchte ich jetzt die Funktion in einer Zelle einsetzen, gibt es im Funktions-Assistenten keine Möglichkeit einen Parameter zu übergeben, es erschient folgendes: (normalerweise sollte eine URL als String übergeben werden)
GETDOLLAR()
Als Rückgabewert erscheint Err:504
Anbei mal die Dateien, an denen meiner Meinung nach das Problem liegt. Sollte noch mehr benötigt werden, bitte kurze Info an mich.
Testweise habe ich die Funktion GETTEST eingebaut, auch diese funktioniert nicht.
Basis ist das Add-In "SMF-Extension", dies lies sich nach Anpassung der .idl-Datei Übersetzen.
Ich hoffe, Ihr könnt mir helfen.
Viele Grüße
Hendrik
Onvista.py
Code: Alles auswählen
import os
import sys
import inspect
import csv
import unohelper
from com.Onvista.ticker.getinfo import XOnvista
# Add current directory to path to import yahoo, morningstar and advfn modules
cmd_folder = os.path.realpath(os.path.abspath
(os.path.split(inspect.getfile
( inspect.currentframe() ))[0]))
if cmd_folder not in sys.path:
sys.path.insert(0, cmd_folder)
import pyDollar
import pyKurs
class OnvistaImpl(unohelper.Base, XOnvista ):
"""Define the main class for the SMF extension """
def __init__( self, ctx ):
self.ctx = ctx
def getKurs( self, a ):
return pyKurs.getKurs( a )
def getDollar( self, a ):
return pyDollar.getDollar( a )
def getTest( self ):
return( "Test" )
def createInstance( ctx ):
return OnvistaImp( ctx )
g_ImplementationHelper = unohelper.ImplementationHelper()
g_ImplementationHelper.addImplementation( \
createInstance,"com.Onvista.ticker.getinfo.python.OnvistaImpl",
("com.sun.star.sheet.AddIn",),)
Code: Alles auswählen
#ifndef INCLUDED_ORG_OPENOFFICE_SHEET_ADDIN_XCALCADDIN_IDL
#define INCLUDED_ORG_OPENOFFICE_SHEET_ADDIN_XCALCADDIN_IDL
#include <com/sun/star/beans/XPropertySet.idl>
#include <com/sun/star/sheet/AddIn.idl>
module com {
module Onvista {
module ticker {
module getinfo {
interface XOnvista
{
// Modeled as an 'any' to allow it to be NULL/None/Missing.
any getDollar( [in] string a );
any getKurs( [in] string a );
any getTest( );
};
service Onvista
{
interface XOnvista;
service com::sun::star::sheet::AddIn;
};
}; }; }; };
#endif
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="CalcAddIns" oor:package="org.openoffice.Office">
<node oor:name="AddInInfo">
<node oor:name="com.Onvista.ticker.getinfo.python.OnvistaImpl" oor:op="replace">
<node oor:name="AddInFunctions">
<node oor:name="getDollar" oor:op="replace">
<prop oor:name="DisplayName">
<value xml:lang="en">getDollar</value>
</prop>
<prop oor:name="Description">
<value xml:lang="en">Fetches Dollar-Kurs from Onvista.</value>
</prop>
<prop oor:name="Category">
<value>Add-In</value>
</prop>
<prop oor:name="CompatibilityName">
<value xml:lang="en">AutoAddIn.XOnvista.getDollar</value>
</prop>
<node oor:name="Parameters">
<node oor:name="a" oor:op="replace">
<prop oor:name="DisplayName">
<value xml:lang="en">a</value>
</prop>
<prop oor:name="Description">
<value xml:lang="en">The URL to the Onvista-Site</value>
</prop>
</node>
</node>
</node>
<node oor:name="getKurs" oor:op="replace">
<prop oor:name="DisplayName">
<value xml:lang="en">getKurs</value>
</prop>
<prop oor:name="Description">
<value xml:lang="en">Fetches Aktien-Kurs from Onvista.</value>
</prop>
<prop oor:name="Category">
<value>Add-In</value>
</prop>
<prop oor:name="CompatibilityName">
<value xml:lang="en">AutoAddIn.XOnvista.getKurs</value>
</prop>
<node oor:name="Parameters">
<node oor:name="a" oor:op="replace">
<prop oor:name="DisplayName">
<value xml:lang="en">a</value>
</prop>
<prop oor:name="Description">
<value xml:lang="en">The URL to the Onvista-Site</value>
</prop>
</node>
</node>
</node>
<node oor:name="getTest" oor:op="replace">
<prop oor:name="DisplayName">
<value xml:lang="en">getTest</value>
</prop>
<prop oor:name="Description">
<value xml:lang="en">Test-Function</value>
</prop>
<prop oor:name="Category">
<value>Add-In</value>
</prop>
<prop oor:name="CompatibilityName">
<value xml:lang="en">AutoAddIn.XOnvista.getTest</value>
</prop>
<node oor:name="Parameters">
<node oor:name="" oor:op="replace">
<prop oor:name="DisplayName">
<value xml:lang="en"></value>
</prop>
<prop oor:name="Description">
<value xml:lang="en"></value>
</prop>
</node>
</node>
</node>
</node>
</node>
</node>
</oor:component-data>