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

Uploaded CPython 3.11 Windows x86-64

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

Uploaded CPython 3.11 Windows x86

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

Uploaded CPython 3.10 Windows x86-64

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

Uploaded CPython 3.10 Windows x86

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

Uploaded CPython 3.9 Windows x86-64

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

Uploaded CPython 3.9 Windows x86

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

Uploaded CPython 3.8 Windows x86-64

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

Uploaded CPython 3.8 Windows x86

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

Uploaded CPython 3.7m Windows x86-64

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

Uploaded CPython 3.7m Windows x86

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

Uploaded CPython 3.6m Windows x86-64

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

Uploaded CPython 3.6m Windows x86

File details

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

File metadata

  • Download URL: xlOil-0.17.1-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.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 a8ebea102b90dda9c2efb18a94b18dbe682d5e48d2f1dbbba4e86ca93aad683b
MD5 af8c45e785eb99831f67b36445109fc8
BLAKE2b-256 57e503b53408123f60dc15825ce7e3be94d8e47bc8d9f08127c8fbde4c7d40de

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xlOil-0.17.1-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.1-cp311-cp311-win32.whl
Algorithm Hash digest
SHA256 d604b7b47c55adc581e3342027ff7ba55fcd8b08633ffaefcd36db0d73fb5dcb
MD5 9e8612b5c32c6b11f1143fd8d6878ef7
BLAKE2b-256 1b5d029a23d23c8cf38f5b10ed2ec470943473a8b75be863b7adb72438d4621b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xlOil-0.17.1-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.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 e3b501eebce6b33fe722aecf9be65866ce53f9b2625f368fa30e4153a4b3c4de
MD5 142a7b1342efc2e0561d8c60b02f2c3e
BLAKE2b-256 92c1f734a45cce8d343f44f90b00e8957e571581406ec31807494349ee9f8390

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xlOil-0.17.1-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.1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 6e9612171e6f3ff6049aa15ff00ccdcc5061d6f3610b0d5adba32d5266e105a8
MD5 87e2c8185eeee9f94812a52ee71bdeee
BLAKE2b-256 aac2e829f351fa2415e33a4425ae205e74366499c2574f23d9d5b24fe102ee12

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xlOil-0.17.1-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.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 d330e658360f72e346d1cc831e94c8fca5d4f14e61b0f80fceee854a1e875b69
MD5 cb13c872fecacde524a3bd17b7afa7bb
BLAKE2b-256 0d3bba0cc5761753001946184f016bb8e3c35111c85e4d9f9f646b4763ecd9dc

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xlOil-0.17.1-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.1-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 937d2885e2206d684f86a1e539026dea8c9b74f4c5e78191ecfd1fbb3db08662
MD5 be69a53cc39b0cd50f01dcad9eacc2a3
BLAKE2b-256 58ed17464467be8f2dd3b29b58f4af13e155eb8b98e5c4e143b56dbb24226513

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xlOil-0.17.1-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.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 a3dda0cf9b237d816aa3811d2d8b5200fa5b6ace8088924c711d86fe94a659cc
MD5 586ae4c9729d04839a9c0c43baa65e9b
BLAKE2b-256 dbd4f91986995e52bfc51be61c73330a234d013bd60847872f4fee85b5343c55

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xlOil-0.17.1-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.1-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 81633d51baae3d6a1ea276426f5be344a3ddcd71852721a35c09dd125d9fcde5
MD5 6d2d135aa26b5f75ed312ac4e73bf995
BLAKE2b-256 699fcdf199fa7dab8546e34e38c6f875b2ff9c0fdd0a6b68e168ae4fe71d35fb

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xlOil-0.17.1-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.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 35b7079ad5d8c493f21368ace8ca7153d5c7ddf5b9c74da3fb62b57e9d3f03fa
MD5 b46387b62a924fe1b0fcfed4e2bee601
BLAKE2b-256 7aae6555ec03fe84cd6558be8fc2b9e9b0dcb9cd73bf438f2a9756623657a731

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xlOil-0.17.1-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.1-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 385d3c2c7d08fd937cbdf5031d32b6cdc171caf988849bc9660f527dd39b15d1
MD5 d4b48a3db842a0259fe4a8b40c396b25
BLAKE2b-256 dd53e81f8f26295f1ea6769fc15fae2b3010956e163e5e8dbe998931e0746914

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xlOil-0.17.1-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.1-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 9e5af9943ce5c8a0224d799c29bbcb510efab3d4cfadde51b76fd02d62636e22
MD5 9498a44cefd634cb8c1487ca8424a963
BLAKE2b-256 2dd38503a1dfd5f5144bdc849a7fd1cdd45e7aee687adbc5b58577235c1f613e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: xlOil-0.17.1-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.1-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 915b588eb04e6c37bd6c15647030745140099b0f1c21fdcc1dffa3d1dd641eff
MD5 8de7ef4babdab16a3fd868e0353bdee7
BLAKE2b-256 b26ad5adc987f51c94e4881bcae8f5e4ba7964711a4bff32f46b2e5a3b40db63

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