Skip to main content

Excel interop for Python and Jupyter

Project description

xlOil

xlOil provides framework for interacting with Excel in different programming languages. It gives a way to write functions in a language and have them appear in Excel as worksheet functions or macros or have them control GUI elements. For example, the Python bindings can replace VBA in almost all use cases and even provide functionality not available from VBA.

xlOil is designed to have very low overheads when calling your worksheet functions.

xlOil supports different languages via plugins. The languages currently supported are:

  • C++
  • Python
  • SQL

In addition there is xlOil_Utils which contains some handy tools which Microsoft never quite got around to adding.

The latest stable documentation is here: https://xloil.readthedocs.io/en/stable.

xlOil features

  • Python
    • Concise syntax to declare an Excel function
    • Optional type checking of function parameters
    • Supports keyword arguments
    • Choice of globally declared functions or code modules limited to a single workbook like VBA workbook-level functions
    • Tight integration with numpy - very low overheads for array functions
    • Understands python tuples, lists, dictionarys and pandas dataframes
    • Async functions
    • RTD functions and on-the-fly RTD server creation
    • Macro type functions which write to ranges on the sheet
    • Access to the Excel Application object and the full Excel object model
    • Drive Excel through COM automation
    • Hook Excel events
    • Pass any python object back to Excel and back into another function
    • Simple add-in deployment
    • Two-way connection to Jupyter notebooks: run worksheet functions in Jupyter and query variables in the jupyter kernel
    • Create Ribbon toolbars and Custom Task Panes
    • Return matplotlib plots and images from worksheet functions
  • C++
    • Safe and convenient wrappers around most things in the C-API
    • Concise syntax to declare Excel functions: registration is automatic
    • Deal with Excel variants, Ranges, Arrays and strings in a natural C++ fashion
    • Object cache allows returning opaque objects to Excel and passing them back to other functions
    • Simplified RTD server creation
    • RTD-based background calculation
    • Create Ribbon toolbars and Custom Task Panes
  • SQL
    • Create tables from Excel ranges and arrays
    • Query and join them with the full sqlite3 SQL syntax
  • Utils: very fast functions to:
    • Sort on multiple columns
    • Split and join strings
    • Make arrays from blocks

Supporting other languages

You can use xlOil as an end-user of these plugins or you can use it to write you own language bindings (and ideally add them to the repo).

Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

xloil-0.21.0-cp313-cp313-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.13Windows x86-64

xloil-0.21.0-cp313-cp313-win32.whl (2.2 MB view details)

Uploaded CPython 3.13Windows x86

xloil-0.21.0-cp312-cp312-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.12Windows x86-64

xloil-0.21.0-cp312-cp312-win32.whl (2.2 MB view details)

Uploaded CPython 3.12Windows x86

xloil-0.21.0-cp311-cp311-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.11Windows x86-64

xloil-0.21.0-cp311-cp311-win32.whl (2.2 MB view details)

Uploaded CPython 3.11Windows x86

xloil-0.21.0-cp39-cp39-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.9Windows x86-64

xloil-0.21.0-cp39-cp39-win32.whl (2.2 MB view details)

Uploaded CPython 3.9Windows x86

xloil-0.21.0-cp38-cp38-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.8Windows x86-64

xloil-0.21.0-cp38-cp38-win32.whl (2.2 MB view details)

Uploaded CPython 3.8Windows x86

xloil-0.21.0-cp37-cp37m-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.7mWindows x86-64

xloil-0.21.0-cp37-cp37m-win32.whl (2.2 MB view details)

Uploaded CPython 3.7mWindows x86

xloil-0.21.0-cp36-cp36m-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.6mWindows x86-64

xloil-0.21.0-cp36-cp36m-win32.whl (2.2 MB view details)

Uploaded CPython 3.6mWindows x86

File details

Details for the file xloil-0.21.0-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: xloil-0.21.0-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for xloil-0.21.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 cc14d053acc3f08d00a6482ce7fb9be85a30ae952618dbd8ea775bcd9ee6fc0d
MD5 3d9db6ab369127a902b50ca6c32de6f8
BLAKE2b-256 22dbca8a135452d51a983a8285385d1995bb67931dfb895be60305e745a7b1ca

See more details on using hashes here.

File details

Details for the file xloil-0.21.0-cp313-cp313-win32.whl.

File metadata

  • Download URL: xloil-0.21.0-cp313-cp313-win32.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: CPython 3.13, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for xloil-0.21.0-cp313-cp313-win32.whl
Algorithm Hash digest
SHA256 e11410afef25c05a9992d23d5a478a0dc28d621355df38a209917e5fe21c7af7
MD5 66c52fdd220b7bedefc8bc3f2ae6021b
BLAKE2b-256 1cc29a9ff0fcadf915135d7a3a06e1004241987c6cbb53bb0e843bd28aa93b18

See more details on using hashes here.

File details

Details for the file xloil-0.21.0-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: xloil-0.21.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for xloil-0.21.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8669d4111f139a9c3d374dbf7ea9909869e84b66093eee57ea26be0f8e29d61c
MD5 5136542e895f30ad06e3828e921ff7b1
BLAKE2b-256 3abd82ac6db960c01753d5a060524968115cf164528fc611292c122f16803da7

See more details on using hashes here.

File details

Details for the file xloil-0.21.0-cp312-cp312-win32.whl.

File metadata

  • Download URL: xloil-0.21.0-cp312-cp312-win32.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: CPython 3.12, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for xloil-0.21.0-cp312-cp312-win32.whl
Algorithm Hash digest
SHA256 3582ed40fff1bb39da19edc7f6a6d91c2964d80e844fc590d6fcb92a2b56c6a8
MD5 b06a209ba45c598e5f73f7c82ec73981
BLAKE2b-256 83e941365aaf84add809d3c61d2e485bd3eed981534debe2cf8c00ba6292a02f

See more details on using hashes here.

File details

Details for the file xloil-0.21.0-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: xloil-0.21.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for xloil-0.21.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 d1f6997af8a0c58789be00dd0afeab6b89716e778ee5a42fe2ff3e1b7bd9e208
MD5 3f5d4e1ca8f8166e99e6af6ad8df5bed
BLAKE2b-256 6000686fc3081f69ad6c9ca9161b295fe7fe1b559bba87041a15cb99ccc5d190

See more details on using hashes here.

File details

Details for the file xloil-0.21.0-cp311-cp311-win32.whl.

File metadata

  • Download URL: xloil-0.21.0-cp311-cp311-win32.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: CPython 3.11, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for xloil-0.21.0-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 db5071b064aefc757773c3f61f49efdd0ff0a681762a5d5942cb6b0a4d31e938
MD5 ccc13e65196191d79502d82ab2fcaa97
BLAKE2b-256 7da16f7a9d6e1df36d785827129fb15c24804eb87923e180f9b6afd7ce3eb8b5

See more details on using hashes here.

File details

Details for the file xloil-0.21.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: xloil-0.21.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for xloil-0.21.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 1abbe2faa07f1b6212bf04a893f8c6aca7394c7909b7854046adc8e3a8eda41b
MD5 38113e25a8772b3c3193d8c02727fd55
BLAKE2b-256 afaf145e97b239dbc8e50657f48ff65f9708d2d5838703b439c82c11a6afea49

See more details on using hashes here.

File details

Details for the file xloil-0.21.0-cp39-cp39-win32.whl.

File metadata

  • Download URL: xloil-0.21.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for xloil-0.21.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 90930fcd8d92556ef064b7536ec1051e239f99b9045e12baefd8b62e9077620d
MD5 4ec28d106f8848bcaef46381efd4f271
BLAKE2b-256 646900e92bf39fe371f383718e6026bdf3918f922815fd434a4061819a6a2cc0

See more details on using hashes here.

File details

Details for the file xloil-0.21.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: xloil-0.21.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for xloil-0.21.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 29f8d7b4d90b4e8aab48058b9d5146c8d1df56f1508bc2a768d3b0d1d10a3568
MD5 0cbfac72633a64f05df1da081cc87910
BLAKE2b-256 cdfa2bab93e892b44bc24f862003990a2dd301c13a23eb6855fbfd7af34c0703

See more details on using hashes here.

File details

Details for the file xloil-0.21.0-cp38-cp38-win32.whl.

File metadata

  • Download URL: xloil-0.21.0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for xloil-0.21.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 45eed354ae86be3768007d093701c203f93880f4d64a7b86e7482e9a0c6aef56
MD5 32588f9b84ac10f894ea415667d9c572
BLAKE2b-256 f644771d3aefe3d5867eb6e7360396b77f9f8327c1654f2406fdbd75a0ef7b5c

See more details on using hashes here.

File details

Details for the file xloil-0.21.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: xloil-0.21.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for xloil-0.21.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 3028995c452e09db013e8b2e7b2ec52f8bc39386930a0b9947cc2305172f7f4e
MD5 58627ce3d4d502d40ca440690e087db7
BLAKE2b-256 bf95f4f6f17dc516ca7dd06aa5fd446b9271b0432aed85de1b660248ead0cdfc

See more details on using hashes here.

File details

Details for the file xloil-0.21.0-cp37-cp37m-win32.whl.

File metadata

  • Download URL: xloil-0.21.0-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for xloil-0.21.0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 ecdf85a393e4eb921a9bee54f3083a8109f571fdf07bf0bf03e309a65af8fe24
MD5 f06f848f16f93e82cef263b4008a2830
BLAKE2b-256 f66d09643762c855741b11861871046e423160100e70e84a744468d9c32bb262

See more details on using hashes here.

File details

Details for the file xloil-0.21.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: xloil-0.21.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for xloil-0.21.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 2e09f900accefed617cbdfdb4cef271bc786766dc4bd38fd753ef065ba640ed6
MD5 21e57d2bc403b77aeadd3644501dd3bc
BLAKE2b-256 2fba9914f16634b4c5810421bcf46e5404929f2f89487274e0de7ceeb406c526

See more details on using hashes here.

File details

Details for the file xloil-0.21.0-cp36-cp36m-win32.whl.

File metadata

  • Download URL: xloil-0.21.0-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.5

File hashes

Hashes for xloil-0.21.0-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 bf8193da68c67a362a44f63256153fa80c9903c1059fabf05d522d577814ea54
MD5 942a0b7d4b3cb09efa86b8f0f117ed6b
BLAKE2b-256 e5dfd21c8741e67d57d07b87cec20b8b4f753a305f1c8348f4070aefd26631c6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page