Skip to content

Commit

Permalink
New engine layer, Google Sheets & Excel on the web support, free PRO …
Browse files Browse the repository at this point in the history
…for noncommercial use (#1804)
  • Loading branch information
fzumstein committed Feb 1, 2022
1 parent 942bab2 commit 8a9a225
Show file tree
Hide file tree
Showing 47 changed files with 3,130 additions and 297 deletions.
9 changes: 3 additions & 6 deletions LICENSE.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
* **xlwings CE** includes all files in the xlwings package except the ``pro`` folder, i.e. the ``xlwings.pro`` subpackage.
* **xlwings PRO** is a subscription that combines the ``xlwings.pro`` subpackage and additional services like dedicated support. It is licensed under a commercial license and must be used with a valid license key.

**xlwings CE** is distributed under a BSD 3-clause license:
xlwings (Open Source) includes all files in the xlwings package except
the pro folder, i.e., the xlwings.pro subpackage and is distributed under
the following BSD 3-clause license:

Copyright (C) 2014 - present, Zoomer Analytics GmbH.
All rights reserved.
Expand Down Expand Up @@ -30,5 +29,3 @@ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

xlwings PRO is distributed under a commercial license, see: LICENSE_PRO.txt
2 changes: 2 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@ include xlwings/addin/xlwings_unprotected.xlam
include xlwings*.dll
include xlwings/xlwings*.applescript
include xlwings/Dictionary.cls
include xlwings/js/xlwings.*
include xlwings/quickstart_fastapi/*.*

recursive-include docs *
prune docs
Expand Down
37 changes: 30 additions & 7 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,45 @@ xlwings is a `BSD-licensed <http://opensource.org/licenses/BSD-3-Clause>`_ Pytho
* **Scripting**: Automate/interact with Excel from Python using a syntax that is close to VBA.
* **Macros**: Replace your messy VBA macros with clean and powerful Python code.
* **UDFs**: Write User Defined Functions (UDFs) in Python (Windows only).
* **REST API**: Expose your Excel workbooks via REST API.

**Numpy arrays** and **Pandas Series/DataFrames** are fully supported. xlwings-powered workbooks are easy to distribute and work
on **Windows** and **Mac**.
on **Windows** and **macOS**.

xlwings includes all files in the xlwings package except the ``pro`` folder, i.e. the ``xlwings.pro`` subpackage.
xlwings includes all files in the xlwings package except the ``pro`` folder, i.e., the ``xlwings.pro`` subpackage.

xlwings PRO
-----------

The purpose of xlwings PRO is to finance the continued maintenance and enhancement of xlwings. This will allow you to rely on the package without being left with the dreaded `"this library currently has no active maintainers" <https://github.com/python-excel/xlrd>`_ message that happens to too many open-source packages after a couple of years.
xlwings PRO offers additional functionality on top of xlwings (Open Source), including:

To get access to the additional functionality of xlwings PRO, you need a (trial) license key and at least xlwings v0.19.0. Everything under the ``xlwings.pro`` subpackage is distributed under a commercial license, see https://github.com/xlwings/xlwings/blob/master/LICENSE_PRO.txt.
* Support for Google Sheets and Excel on the web
* xlwings Reports, the flexible, template-based reporting system
* Easy deployment via embedded code
* See the `full list of PRO features <https://docs.xlwings.org/en/stable/pro.html>`_

* For current features and pricing: https://www.xlwings.org/pricing
* To request a trial license key: https://www.xlwings.org/trial
xlwings PRO is `source available <https://en.wikipedia.org/wiki/Source-available_software>`_ and dual-licensed under one of the following licenses:

* `PolyForm Noncommercial License 1.0.0 <https://polyformproject.org/licenses/noncommercial/1.0.0>`_ (noncommercial use is free)
* `xlwings PRO License <https://github.com/xlwings/xlwings/blob/main/LICENSE_PRO.txt>`_ (commercial use requires a `paid plan <https://www.xlwings.org/pricing>`_)

**License Key**

To use xlwings PRO, you need to install a license key on a Terminal/Command Prompt like so (alternatively, set the env var ``XLWINGS_LICENSE_KEY``::

xlwings license update -k YOUR_LICENSE_KEY

See `the docs <https://docs.xlwings.org/en/stable/pro.html>`_ for more details.

**License key for noncommercial purpose**:

* To use xlwings PRO for free in a noncommercial context, use the following license key: ``noncommercial``.

**License key for commercial purpose**:

* To try xlwings PRO for free in a commercial context, request a trial license key: https://www.xlwings.org/trial
* To use xlwings PRO in a commercial context beyond the trial, you need to enroll in a paid plan (they include additional services like support and the ability to create one-click installers): https://www.xlwings.org/pricing

xlwings PRO licenses are developer licenses, are verified offline (i.e., no telemetry/license server involved) and allow royalty-free deployments to unlimited internal and external end-users and servers for a hassle-free management. Deployments use deploy keys that don't expire but instead are bound to a specific version of xlwings.

Links
-----
Expand Down
2 changes: 1 addition & 1 deletion docs/addin.rst
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ The global settings of the Ribbon/Config file can be overridden for one or more
in the workbook's directory.

.. note::
Workbook directory config files are not supported if your workbook is stored on SharePoint.
Workbook directory config files are not supported if your workbook is stored on SharePoint or OneDrive.

.. _addin_wb_settings:

Expand Down
4 changes: 4 additions & 0 deletions docs/command_line.rst
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,7 @@ xlwings comes with a command line client. On Windows, type the commands into a C
workbook to work with a one-click installer for easy
deployment. Requires xlwings PRO.
(New in 0.23.4)
copy Run "xlwings copy os" to copy the xlwings Office
Scripts module. Run "xlwings copy gs" to copy the
xlwings Google Apps Script module.
(New in 0.26.0)
3 changes: 2 additions & 1 deletion docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,9 +75,10 @@ def __getitem__(cls, key):
'sphinxcontrib.napoleon',
'sphinx.ext.mathjax',
'sphinx.ext.extlinks',
'sphinx.ext.autosectionlabel', # To make easy intra-page links like so: :ref:`Title`
'sphinxcontrib.httpdomain',
'sphinx_copybutton',
'sphinx_design'
'sphinx_design',
]

# autodoc_member_order = 'bysource'
Expand Down
Binary file added docs/images/xlwings_conf_sheet.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 4 additions & 4 deletions docs/index.rst
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
xlwings - Make Excel Fly!
=========================

xlwings is a `BSD-licensed <http://opensource.org/licenses/BSD-3-Clause>`_ Python library that makes it easy to call Python from Excel and vice versa:
xlwings (Open Source) is a `BSD-licensed <http://opensource.org/licenses/BSD-3-Clause>`_ Python library that makes it easy to call Python from Excel and vice versa:

* **Scripting**: Automate/interact with Excel from Python using a syntax close to VBA.
* **Macros**: Replace VBA macros with clean and powerful Python code.
* **UDFs**: Write User Defined Functions (UDFs) in Python (Windows only).
* **REST API**: Expose your Excel workbooks via REST API.

**Numpy arrays** and **Pandas Series/DataFrames** are fully supported. xlwings-powered workbooks are easy to distribute and work
on **Windows** and **Mac**.
Expand All @@ -26,11 +25,11 @@ on **Windows** and **Mac**.

More in-depths explanations about converters, debugging or how to write your own add-in.

.. grid-item-card:: :octicon:`lock;2em;sd-text-success` xlwings PRO
.. grid-item-card:: :octicon:`star;2em;sd-text-success` xlwings PRO
:link: pro
:link-type: doc

xlwings PRO offers additional functionality including xlwings Reports, the template-based reporting system.
Work with Google Sheets & Excel on the web, use xlwings Reports (template-based reporting), embed your Python code for easy deployment and more. Free for noncommercial use only.

.. grid-item-card:: :octicon:`code-square;2em;sd-text-success` API Reference
:link: api
Expand Down Expand Up @@ -78,6 +77,7 @@ on **Windows** and **Mac**.
:caption: xlwings PRO

pro
remote_interpreter
reports
markdown
release
Expand Down
1 change: 1 addition & 0 deletions docs/index_latex.rst
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
:caption: xlwings PRO

pro
remote_interpreter
reports
markdown
release
Expand Down
42 changes: 15 additions & 27 deletions docs/installation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,13 @@ Installation
Prerequisites
-------------

* xlwings requires an **installation of Excel** and therefore only works on **Windows** and **macOS**. Note that macOS currently does not support UDFs.
* xlwings requires at least Python 3.6.
* Traditionally, xlwings requires an **installation of Excel** and therefore only works on **Windows** and **macOS**. Note that macOS currently does not support UDFs.
* Since v0.26.0, xlwings can be installed on Linux servers in connection with Google Sheets or Excel on the web, see :ref:`Remote Interpreter <remote_interpreter>`.
* xlwings requires at least Python 3.7.

Here are the last versions of xlwings to support:
Here are previous versions of xlwings that support older versions of Python:

* Python 3.6: 0.25.3
* Python 3.5: 0.19.5
* Python 2.7: 0.16.6

Expand All @@ -22,23 +24,19 @@ xlwings comes pre-installed with
* `Anaconda <https://www.anaconda.com/products/individual>`_ (Windows and macOS)
* `WinPython <https://winpython.github.io>`_ (Windows only) Make sure **not** to take the ``dot`` version as this only contains Python.

If you are new to Python or have trouble installing xlwings, one of these distributions is highly recommended. Otherwise, you can also install it manually with pip::
If you are new to Python or have trouble installing xlwings, one of these distributions is highly recommended. Otherwise, you can also install it with pip::

pip install xlwings

or conda::

conda install xlwings

Note that the official ``conda`` package might be a few releases behind. You can, however,
Note that the official conda package might be a few releases behind. You can, however,
use the ``conda-forge`` channel (replace ``install`` with ``upgrade`` if xlwings is already installed)::

conda install -c conda-forge xlwings

.. note::
When you are on macOS and are installing xlwings with ``conda`` (or use the version that comes with Anaconda),
you'll need to run ``$ xlwings runpython install`` once to enable the ``RunPython`` calls from VBA. This is done automatically if you install the addin via ``$ xlwings addin install``.

Add-in
------

Expand All @@ -49,7 +47,10 @@ To install the add-in, run the following command::
To call Excel from Python, you don't need an add-in. Also, you can use a single file VBA module (*standalone workbook*) instead of the add-in. For more details, see :ref:`xlwings_addin`.

.. note::
The add-in needs to be the same version as the Python package. Make sure to re-install the add-in after upgrading the xlwings package.
The add-in needs to be the same version as the Python package. Make sure to re-install the add-in after upgrading the xlwings package. Make sure to close Ecxel before installing/upgrading the add-in.

.. note::
When you are on macOS and are using the VBA standalone module instead of the add-in, you need to run ``$ xlwings runpython install`` once.

Dependencies
------------
Expand All @@ -59,33 +60,20 @@ Dependencies
* **Mac**: ``psutil``, ``appscript``

The dependencies are automatically installed via ``conda`` or ``pip``.
If you would like to install xlwings without dependencies, you can run ``pip install xlwings --no-deps`` or set the environment variable ``XLWINGS_NO_DEPS=1`` before running ``pip install xlwings``.

How to activate xlwings PRO
---------------------------

xlwings PRO offers access to :ref:`additional functionality <pro>`. All PRO features are marked with xlwings :guilabel:`PRO` in the docs.

.. note::
To get access to the additional functionality of xlwings PRO, you need a license key and at least xlwings v0.19.0. Everything under the ``xlwings.pro`` subpackage is distributed under a :ref:`commercial license <commercial_license>`. See :ref:`pro` for more details.

To activate the license key, run the following command::

xlwings license update -k LICENSE_KEY

Make sure to replace ``LICENSE_KEY`` with your personal key. This will store the license key under your ``xlwings.conf`` file (see :ref:`user_config` for where this is on your system). Alternatively, you can also store the license key as an environment variable with the name ``XLWINGS_LICENSE_KEY``.

xlwings PRO requires additionally the ``cryptography`` and ``Jinja2`` packages which come preinstalled with Anaconda and WinPython. Otherwise, install them via pip or conda.

With pip, you can also run ``pip install "xlwings[pro]"`` which will take care of the extra dependencies for xlwings PRO.
See :ref:`xlwings PRO <pro>`.

Optional Dependencies
---------------------

* NumPy
* Pandas
* pandas
* Matplotlib
* Pillow/PIL
* Flask (for REST API)
* Pillow
* cryptography (for xlwings.pro)
* Jinja2 (for xlwings.pro.reports)
* requests (for permissioning)
Expand Down
41 changes: 31 additions & 10 deletions docs/pro.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,24 +3,45 @@
xlwings PRO Overview
====================

The purpose of xlwings PRO is to fund the continued maintenance and enhancement of xlwings. This will allow you to rely on the package without being left with the dreaded "this library currently has no active maintainers" message that happens to too many open-source packages after a couple of years.
xlwings PRO is `source-available <https://en.wikipedia.org/wiki/Source-available_software>`_ and dual-licensed under one of the following licenses:

xlwings PRO offers access to additional functionality. All PRO features are marked with xlwings :guilabel:`PRO` in the docs.
* `PolyForm Noncommercial License 1.0.0 <https://polyformproject.org/licenses/noncommercial/1.0.0>`_ (noncommercial use is free)
* `xlwings PRO License <https://github.com/xlwings/xlwings/blob/main/LICENSE_PRO.txt>`_ (commercial use requires a `paid plan <https://www.xlwings.org/pricing>`_)

.. note::
To get access to the additional functionality of xlwings PRO, you need a (trial) license key and at least xlwings v0.19.0. Everything under the ``xlwings.pro`` subpackage is distributed under a :ref:`commercial license <commercial_license>`. To make use of xlwings PRO functionality beyond the trial, you will need to subscribe to one of our `paid plans <https://www.xlwings.org/pricing>`_.
**License Key**

To use xlwings PRO, you need to install a license key on a Terminal/Command Prompt like so::

xlwings license update -k YOUR_LICENSE_KEY

Make sure to replace ``LICENSE_KEY`` with your personal key (see below). This will store the license key in your ``xlwings.conf`` file (see :ref:`user_config` for where this is on your system). Instead of running this command, you can also store the license key as an environment variable with the name ``XLWINGS_LICENSE_KEY``.

**License key for noncommercial purpose**:

* To use xlwings PRO for free in a noncommercial context, use the following license key: ``noncommercial``.

**License key for commercial purpose**:

* To try xlwings PRO for free in a commercial context, request a trial license key: https://www.xlwings.org/trial
* To use xlwings PRO in a commercial context beyond the trial, you need to enroll in a paid plan (they include additional services like support and the ability to create one-click installers): https://www.xlwings.org/pricing

xlwings PRO licenses are developer licenses, are verified offline (i.e., no telemetry/license server involved) and allow royalty-free deployments to unlimited internal and external end-users and servers for a hassle-free management. Deployments use deploy keys that don't expire but instead are bound to a specific version of xlwings.

xlwings PRO functionality requires additionally the ``cryptography`` package, which comes preinstalled with Anaconda and WinPython. Otherwise, install it via pip or Conda. With pip, you can also run ``pip install "xlwings[pro]"``: this will take care of the extra dependencies for xlwings PRO.

PRO Features
------------

* :ref:`One-click Installer <zero_config_installer>`: Easily build your own Python installer including all dependencies---your end users don't need to know anything about Python.
* :ref:`Embedded code<embedded_code>`: Store your Python source code directly in Excel for easy deployment.
* :ref:`Remote Interpreter <remote_interpreter>`: Work with Google Sheets and Excel on the web and a remote Python interpreter.
* :ref:`Embedded code <release>`: Store your Python source code directly in Excel for easy deployment.
* :ref:`reports_quickstart`: A template-based reporting mechanism, allowing business users to change the layout of the report without having to touch the Python code.
* :ref:`markdown`: Support for Markdown formatting of text in cells and shapes like e.g., text boxes.
* :ref:`permissioning`: Control which users can run which Python modules via xlwings.

More Infos
----------
Paid plans come with additional services like:

* :ref:`One-click Installer <zero_config_installer>`: Easily build your own Python installer including all dependencies---your end users don't need to know anything about Python
* `On-demand video course <https://training.xlwings.org/p/xlwings>`_
* Direct Support

* Pricing: https://www.xlwings.org/pricing
* Trial license key: https://www.xlwings.org/trial
Check out the `paid plans <https://www.xlwings.org/pricing>`_ for more details!
Loading

0 comments on commit 8a9a225

Please sign in to comment.