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.2-cp311-cp311-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.11 Windows x86-64

xlOil-0.17.2-cp311-cp311-win32.whl (2.0 MB view details)

Uploaded CPython 3.11 Windows x86

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

Uploaded CPython 3.10 Windows x86-64

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

Uploaded CPython 3.10 Windows x86

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

Uploaded CPython 3.9 Windows x86-64

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

Uploaded CPython 3.9 Windows x86

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

Uploaded CPython 3.8 Windows x86-64

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

Uploaded CPython 3.8 Windows x86

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

Uploaded CPython 3.7m Windows x86-64

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

Uploaded CPython 3.7m Windows x86

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

Uploaded CPython 3.6m Windows x86-64

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

Uploaded CPython 3.6m Windows x86

File details

Details for the file xlOil-0.17.2-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: xlOil-0.17.2-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 2.2 MB
  • Tags: CPython 3.11, 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.2-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 01c53b55bb19deaae144bfb62061f13264bc0b5c35beed888890c4700c032894
MD5 f2e2b3e2a442a8bbb8bb7722993aa1f4
BLAKE2b-256 80fa788c5fb0cc40ae701a7d3906242883194f7e2d663b0c6fbb67c2a1cf9d28

See more details on using hashes here.

File details

Details for the file xlOil-0.17.2-cp311-cp311-win32.whl.

File metadata

  • Download URL: xlOil-0.17.2-cp311-cp311-win32.whl
  • Upload date:
  • Size: 2.0 MB
  • Tags: CPython 3.11, 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.2-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 82f2817bb8ff5d6607b68f69bda0e5f9d2593886dc4f4d6d59f59325835156a8
MD5 24e3505391b0c7b7592307e07bbc302d
BLAKE2b-256 3dd19a9111834f46fbc76dd24c1aaa01faad64425ea324f3a36ececc6c9c3aa7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xlOil-0.17.2-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.2-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 af2ede60479fcb8efb6a161c7bc323b20e5a1b79dd2046d09dfbe760deafe0f7
MD5 e77f056a54de2309866af478f7c9161f
BLAKE2b-256 99d3544f378e3e5c3711b4ff33a1c0d1c4ef4b1ad1cb7f086a1449b2bdbc80c3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xlOil-0.17.2-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.2-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 46c882c9bce1a82d292396a1c9ac4e0bcdcbd6ae7bce22cf699e4acd0504d831
MD5 c66b76ea94cd60a732823909c9abd75e
BLAKE2b-256 1fb7069469e1507636a08392135ad0c9a79f943deb1da3549e3a10061f6111c3

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xlOil-0.17.2-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.2-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 5b7cf71c1f4928631c9347692251acbc0441d22c452639a4280430b4771502d0
MD5 3e202654ad711efdc5c1e5e5be96c7d9
BLAKE2b-256 a7c4be3f9fbc778cf27a7a315c58807c78196987de9f2de3ed1caef05406108c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xlOil-0.17.2-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.2-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 f9b96b6d9a356bd3b6f5e3e37f413f715949977ccc003496081c1e376ab7a9f7
MD5 44fb7dd3a7219efb129d6be6381e532f
BLAKE2b-256 8ae8d0209f75dce3be8b9b392dc0277d859210939a83afb2456a261b88359b61

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xlOil-0.17.2-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.2-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 1617b5b99fb5e377e604cbe9d12710a2097a3ae8b02925229337143472ada0b5
MD5 1d5a3c01abcb0510e72ced24e12a6132
BLAKE2b-256 7622132f93bfe9212b807de2b5424d3fd312d7d98d60ce276957953ccb6f6151

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xlOil-0.17.2-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.2-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 8be3d632debe1c63c5d019ea88739f3e03572dbbd3cf647e2d332a258d8eea27
MD5 a86c44ecb39afc57321400e448039017
BLAKE2b-256 15cbeab6c69e73dc8a680413ca9e54c306a73ed68a51d8389b79af5a91f2a250

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xlOil-0.17.2-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.2-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 8abd52c69106d4d797a5c40e55c274b692ea2c7c500460dc582421ba9e728cff
MD5 f6b0aeed0731e92a7f9acf24ff527090
BLAKE2b-256 be111543de21787b0f4bdb6d10277b0ff7899255a538ff41e2eea9ade792a482

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xlOil-0.17.2-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.2-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 4c39ecd5fbb704ba6c474329e012f713f9a88a4defc5c7911a9bab24afd0e15c
MD5 81279eda804b4e80b3d7a3094da7a741
BLAKE2b-256 5b5b0f157bd36b7caad26b719964234fb21b5e892759dd2186f653ddca3b4717

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xlOil-0.17.2-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.2-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 d46b3583476bffc21e1f43d26f6faa192c72bd0dc8cb322ee0ca471f2f4c5d53
MD5 adfaf315fdf165a100b3aeae89ddb128
BLAKE2b-256 5ce5194d8e877aa84c756d77396d02e9cdbd2273dfb7d9c92d55f52e8534d2c6

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xlOil-0.17.2-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.2-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 e7247bf52b8db4547f79e6f80eebf9266a44527b20973e0a576ace829198c95b
MD5 f6763f5d5c27ffe0d67d2bbc66321083
BLAKE2b-256 caea5328d04ed25f090650f6645d6c8fed0ce1265701136d21a8f8f223cd1264

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