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).

Project details


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

xlOil-0.17.0-cp310-cp310-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.10 Windows x86-64

xlOil-0.17.0-cp310-cp310-win32.whl (2.0 MB view details)

Uploaded CPython 3.10 Windows x86

xlOil-0.17.0-cp39-cp39-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.9 Windows x86-64

xlOil-0.17.0-cp39-cp39-win32.whl (2.0 MB view details)

Uploaded CPython 3.9 Windows x86

xlOil-0.17.0-cp38-cp38-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.8 Windows x86-64

xlOil-0.17.0-cp38-cp38-win32.whl (2.0 MB view details)

Uploaded CPython 3.8 Windows x86

xlOil-0.17.0-cp37-cp37m-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.7m Windows x86-64

xlOil-0.17.0-cp37-cp37m-win32.whl (2.0 MB view details)

Uploaded CPython 3.7m Windows x86

xlOil-0.17.0-cp36-cp36m-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.6m Windows x86-64

xlOil-0.17.0-cp36-cp36m-win32.whl (2.0 MB view details)

Uploaded CPython 3.6m Windows x86

File details

Details for the file xlOil-0.17.0-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: xlOil-0.17.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.1 CPython/3.9.15

File hashes

Hashes for xlOil-0.17.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 77655d12dc68c84bd638fa5c484951a4880f7ff9288ec895e2f9a7b74ccf0f2d
MD5 dc8ca1b213b6d862e502c2a656273d26
BLAKE2b-256 5ca33ab22f57ee918f2434368547948a783c38fb6b3960b3ad5cf00927fcd652

See more details on using hashes here.

File details

Details for the file xlOil-0.17.0-cp310-cp310-win32.whl.

File metadata

  • Download URL: xlOil-0.17.0-cp310-cp310-win32.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.1 CPython/3.9.15

File hashes

Hashes for xlOil-0.17.0-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 0ca3b2bbb5a110898aea5b4c103de239504c6de12abfb9f562c8eb957ad09d87
MD5 827ebeb6338b8ba9a3fcc028d74fc43e
BLAKE2b-256 9f5b6487a5284ea32dfe0d2bc47ce6ddb4a92a17acd22f0dc38d7eb2966ec446

See more details on using hashes here.

File details

Details for the file xlOil-0.17.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: xlOil-0.17.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.1 CPython/3.9.15

File hashes

Hashes for xlOil-0.17.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 8d1a3d7b73e0d14a7abb045912c00f49e5d96a92dc42079c4168de7fd04700db
MD5 2021d55d498d42e5b786952c2b167a67
BLAKE2b-256 6e80b0f40af1451d9b3a8c5c381f1c79ea55bdb884fa1bf6a71904263e592435

See more details on using hashes here.

File details

Details for the file xlOil-0.17.0-cp39-cp39-win32.whl.

File metadata

  • Download URL: xlOil-0.17.0-cp39-cp39-win32.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.1 CPython/3.9.15

File hashes

Hashes for xlOil-0.17.0-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 4f351ef1e496828e93d4f0154f8e38be5b3aa932a27fce8b2817ff644753c6ec
MD5 504a5448bbe4a67b07cb885e5656c714
BLAKE2b-256 f2bb67791c48db8967c9b3d7ddcce0df5c92980e834416df23d3cd4a088bafa4

See more details on using hashes here.

File details

Details for the file xlOil-0.17.0-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: xlOil-0.17.0-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.1 CPython/3.9.15

File hashes

Hashes for xlOil-0.17.0-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 3e6b9c8487d459bcc6b6b5f70aa156204b8724cacd54befee368bc7e7355594b
MD5 3dec345491b9975582c28b0adacaa4ec
BLAKE2b-256 883a82c0c83ba0c6efe9b1c52cb2b2119ecacf82adbb1cf0d1388db50c34101d

See more details on using hashes here.

File details

Details for the file xlOil-0.17.0-cp38-cp38-win32.whl.

File metadata

  • Download URL: xlOil-0.17.0-cp38-cp38-win32.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.1 CPython/3.9.15

File hashes

Hashes for xlOil-0.17.0-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 2cf4aba445ac46b7e4d267bd22dde112677cb0d58b6ea87a7d1e6e8b60a293b5
MD5 0929822eb1b8f4e317d96a7fa9ebddb5
BLAKE2b-256 8c7f1ac3c2d54025b85f9186ed8c83db9ab75d454aae867678cf8c45f8b7c93b

See more details on using hashes here.

File details

Details for the file xlOil-0.17.0-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: xlOil-0.17.0-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.1 CPython/3.9.15

File hashes

Hashes for xlOil-0.17.0-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 8f3b1e08b175a8067094b295b8c88fa096d753ef170154b5fd35048be534c2a6
MD5 986efedd4681aba6f6cfa3d703698ce8
BLAKE2b-256 56bcf249dc6680f9f45b1891e5dc0b17bc6f0c3051e404d9fb95688ace0b505c

See more details on using hashes here.

File details

Details for the file xlOil-0.17.0-cp37-cp37m-win32.whl.

File metadata

  • Download URL: xlOil-0.17.0-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.1 CPython/3.9.15

File hashes

Hashes for xlOil-0.17.0-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 fd6c08f86ea31952b84e5f88bd3ed936c9b2bad8b4522467a68df168397fb1f1
MD5 151949cc531190114e05b81a3a850e4f
BLAKE2b-256 62619f746a4c0f580f522abf9d8b182cd03bdd1a29d9fb787139b18312e5ff06

See more details on using hashes here.

File details

Details for the file xlOil-0.17.0-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: xlOil-0.17.0-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.1 CPython/3.9.15

File hashes

Hashes for xlOil-0.17.0-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 17461e31d90c3462a5db641bcbfecce286ff6044d3d6af412705fbd94a127d93
MD5 fc61ce516db8f1c612da220a0abf0d1d
BLAKE2b-256 0c6500a0ac731341b246b33df5cad661f80868d365277615934cef56a9a99bb8

See more details on using hashes here.

File details

Details for the file xlOil-0.17.0-cp36-cp36m-win32.whl.

File metadata

  • Download URL: xlOil-0.17.0-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.11.3 pkginfo/1.8.3 requests/2.28.1 requests-toolbelt/0.9.1 tqdm/4.64.1 CPython/3.9.15

File hashes

Hashes for xlOil-0.17.0-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 7bb7ed1ae1a832dbbea6ac0730548bbcb2119add2d3eb1f70e800937b38c3423
MD5 bba33e26e007f6c22e2c92fee13c01b4
BLAKE2b-256 dc0d95f2ff3d64fa9604619c8cc21e035164aab8eec303084bf890920e0593c0

See more details on using hashes here.

Supported by

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