Excel plug-ins for Anaconda
===========================

Anaconda on Windows comes ready to interact with Microsoft Excel— quickly, intuitively 
and powerfully. You can use one of the many included packages in Anaconda or you 
can connect to an outside integration tool to bring the power of Python into Excel.

All packages described here are only available on Windows unless otherwise noted. Like most Anaconda packages, this software is written by third-party open source development teams around the world. Continuum collects and curates these programs, builds them into conda packages, and distributes them through the Anaconda platform so our users can enjoy the benefits of easy installation, version control, and package and environment management.

What tool should I use?
-----------------------

For a versatile, all-purpose tool, Anaconda includes `xlwings <http://xlwings.org>`_,which incorporates the following features:

* Drives Excel interactively from an IPython Session/Notebook
* Performs one-line conversion to and from a numpy array or pandas DataFrame
* Uses Python as Excel's computation backend by wrapping Python function calls in VBA macros
* Easily shares Python-integrated Excel workbooks with collaborators who are also running Anaconda; no additional installation is needed.

NOTE: xlwings is in active development; additional features may be added in the 
future. This package is available for Windows **and OS X** platforms.

To export data from a Python object into Excel, or import the contents of an Excel spreadsheet to perform calculations or visualizations in Python, Anaconda also includes the following libraries and modules:

* `openpyxl <https://openpyxl.readthedocs.org/en/latest/>`_ - Read/Write Excel 2007 xlsx/xlsm files
* `xlrd <https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html?p=4966>`_ - Extract data from Excel spreadsheets (.xls and .xlsx, versions 2.0 onwards) on any platform
* `xlsxwriter <https://xlsxwriter.readthedocs.org/>`_ - Write files in the Excel 2007+ XLSX file format
* `xlwt <https://secure.simplistix.co.uk/svn/xlwt/trunk/xlwt/doc/xlwt.html?p=4966>`_ - Generate spreadsheet files that are compatible with Excel 97/2000/XP/2003, OpenOffice.org Calc, and Gnumeric.

You will want to review the documentation for each library or module to determine which one is best suited to your needs.

Other Python-Excel tools not included in Anaconda:
----------------------------------------------------------------------------------------

* `DataNitro <https://datanitro.com/>`_ - DataNitro also offers full-featured Python-Excel integration, including UDFs. Trial downloads are available, but users must purchase a license.
* `ExcelPython <https://github.com/ericremoreynolds/excelpython>`_ - ExcelPython is a free, open-source library that lets you write UDFs and macros in Python, as well as load Python modules, call methods and manipulate objects from VBA without modifying the original Python code.
* `XLLoop <http://xlloop.sourceforge.net/>`_ - Implements user-defined functions (UDFs) that are hosted from a server in a variety of languages, including Python, Java, C++, and R. The software is open-source. Installation requires multiple steps to set up the Excel add-in (provided) and configure the UDF server.
* `ExPy <http://www.bnikolic.co.uk/expy/expy.html>`_ - ExPy is freely available demonstration software that is simple to install. Once installed, Excel users have access to built-in Excel functions that wrap Python code. Documentation and examples are provided at the site.
* `PyXLL <https://www.pyxll.com/>`_ - PyXLL is a widely used tool (free for personal or educational use) that implements UDFs written in Python as add-in functions for Excel.
