Hi Curt,

The add-in is based on COM automation services, so it is Windows-only to the best of my knowledge. We chose to implement it as a COM service since the Python code was then extremely simple and very easy to extend.


I don't have access to a Mac so I am having a hard time figuring out if MS Office on Mac implements enough of the COM subsystem to support COM automation servers. It might be that both Mac and Windows could be supported if the add-in was written in C++ as an XLL. My gut feeling is that it would then be harder to extend dynamically, but I could be wrong. One thing I do know is that it would be more complex to write.

To support both Windows and Mac you can also take the approach that xlwings has taken where a DLL is loaded by VBA code and talks to the Python code:
https://www.xlwings.org/

We initially tried to base our add-in on xlwings but got into trouble sharing Excel worksheets with User Defined Functions. The UDFs in xlwings are made available to Excel through VBA auto-generated from the Python code. Smart concept, but gets us into trouble using UDFs in sheets that are passed around or copied.

Python 3 - yes, we should go there. If the COM support that the add-in relies on is available in Python 3 it should be straightforward (famous last words :-) ). Hopefully I will have some time to check this out over the summer.

Cheers
-- Jan

On 2017-06-19 18:40, Curt Fischer wrote:
This is great!  Thanks Jan.

I haven't tried it yet, but based on the GitHub README it looks like this is only for Excel on a Windows box. Is that right, or can Mac versions of Excel also work? And since it's come up on the mailing list recently, is there a plan to expand to/move to Python 3 at any point soon?

Curt

On Sun, Jun 18, 2017 at 11:06 AM, Jan Holst Jensen <j...@biochemfusion.com <mailto:j...@biochemfusion.com>> wrote:

    Hi RDKitters,

    I am happy to announce an open source Excel add-in that gives easy
    access to the RDKit Python API. The add-in is BSD-licensed like RDKit.
    https://github.com/janholstjensen/rdkit4excel
    <https://github.com/janholstjensen/rdkit4excel>

    Screenshot of the add-in running in Excel 2016 (note: molecule
    rendering requires additional 3rd party software):


    The add-in is easily extendable via pure Python scripting. A new
    Excel function is added by adding a function to the CRDKitXL
    Python class and annotating the new function's input/output
    parameter types through structured comments. For example, adding
    an "rdkit_SmilesToMolBlock()" function that has a single "smiles"
    string input parameter:

        #RDKITXL: in:smiles:str, out:str
            def rdkit_SmilesToMolBlock(self, smiles):
                # Python function implementation follows here...


    Many thanks to Esben Jannik Bjerrum who did the implementation of
    this first version.

    Cheers
    -- Jan Holst Jensen

    
------------------------------------------------------------------------------
    Check out the vibrant tech community on one of the world's most
    engaging tech sites, Slashdot.org! http://sdm.link/slashdot
    _______________________________________________
    Rdkit-discuss mailing list
    Rdkit-discuss@lists.sourceforge.net
    <mailto:Rdkit-discuss@lists.sourceforge.net>
    https://lists.sourceforge.net/lists/listinfo/rdkit-discuss
    <https://lists.sourceforge.net/lists/listinfo/rdkit-discuss>



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Rdkit-discuss mailing list
Rdkit-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rdkit-discuss

Reply via email to