Excel interop for Python and Jupyter
Project description
xlOil
xlOil is a framework for building Excel language bindings. That is, a way to write functions in a language of your choice and have them appear in Excel as worksheet functions and macros.
xlOil is designed to have very low overheads when calling your own 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 go around to adding.
You can use xlOil as an end-user of these plugins or you can use it to write you own language bindings and contribute.
The latest documentation is here: https://xloil.readthedocs.io.
You can build the documentation from a clone of the source with:
cd docs
make html
xlOil features
- Python
- Very 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 just 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
- Hook Excel events
- Pass any python object back to Excel and then back into any python function
- Simple and quick add-in deployment
- Two-way connection to Jupyter notebooks: run worksheet functions in Jupyter and query variables in the jupyter kernel
- 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
- 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
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
Built Distributions
File details
Details for the file xlOil-0.7.1-cp39-cp39-win_amd64.whl
.
File metadata
- Download URL: xlOil-0.7.1-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36a0310c5a70e9f60883b71f689681218f74444d3ebc96c5df46675d45ad2448 |
|
MD5 | 4ee1bcb1e60479ea08d405df036e67eb |
|
BLAKE2b-256 | 919423cc89cc305c631ef919b0a991c087a884cb529db6f4acfab3f7221ece39 |
File details
Details for the file xlOil-0.7.1-cp39-cp39-win32.whl
.
File metadata
- Download URL: xlOil-0.7.1-cp39-cp39-win32.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.9, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d13789fe92dca31f41b4167b41fd5ffcf3f2c9617def3af70128cdfa51e78610 |
|
MD5 | 527891205dcf5f170506155bfe0d6aa6 |
|
BLAKE2b-256 | d5e69880de6044d4e6d590c7c541f9b44f61e5b546640792ee954fe29ebdaf88 |
File details
Details for the file xlOil-0.7.1-cp38-cp38-win_amd64.whl
.
File metadata
- Download URL: xlOil-0.7.1-cp38-cp38-win_amd64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.8, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0399c56737360edb885280039ae0b25dd3dc3600f75452fa09bd5f224c9cba56 |
|
MD5 | 1b030f3f9c12103c1640533e07d349c4 |
|
BLAKE2b-256 | 05b1eed79673e2289b98387375f970478c6eb72f2da478fa23f38d9d58c4e746 |
File details
Details for the file xlOil-0.7.1-cp38-cp38-win32.whl
.
File metadata
- Download URL: xlOil-0.7.1-cp38-cp38-win32.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.8, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63becec1e5c1bc93a98a782b26e4bd28fa8caf05cf0d5a153f9b91784f0758a6 |
|
MD5 | 690941d4dd58ad9d4652a66d095b00bd |
|
BLAKE2b-256 | b818250998e8d5584acb922ce07c5aa79885345e7a1dfeb02ecbe5f4dc368166 |
File details
Details for the file xlOil-0.7.1-cp37-cp37m-win_amd64.whl
.
File metadata
- Download URL: xlOil-0.7.1-cp37-cp37m-win_amd64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.7m, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | add5fdac185f746eff92d50555b3895517c2a2168c033bea59b5cc2087693ec9 |
|
MD5 | b2c3df96c44a968cedcadc8889de50a3 |
|
BLAKE2b-256 | 570dbaa40c2dcb33082b93b8dec34ff8e188eed6a1b9d7420c3842903ac85bb6 |
File details
Details for the file xlOil-0.7.1-cp37-cp37m-win32.whl
.
File metadata
- Download URL: xlOil-0.7.1-cp37-cp37m-win32.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.7m, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59354a0cc284262b4d128f42a6f35935cf08a6d6bc035724975146bba60793d1 |
|
MD5 | 2b081a0968bdc68072ee4508ebeb6fc7 |
|
BLAKE2b-256 | 126189f295f89df03561c74908be1fa87948d7c73ba44c639a775d9ed804a7cf |
File details
Details for the file xlOil-0.7.1-cp36-cp36m-win_amd64.whl
.
File metadata
- Download URL: xlOil-0.7.1-cp36-cp36m-win_amd64.whl
- Upload date:
- Size: 1.9 MB
- Tags: CPython 3.6m, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa165f42ab801920f1be73a2fc50190ea957ae90f89fa930b3e7d52aa7bd369e |
|
MD5 | 1aa17ac3c830eced763f67aac02813a0 |
|
BLAKE2b-256 | 4a70afdd83dc8ea358b6d62fcfd36e765660e038600986ddfd151cbe380f8121 |
File details
Details for the file xlOil-0.7.1-cp36-cp36m-win32.whl
.
File metadata
- Download URL: xlOil-0.7.1-cp36-cp36m-win32.whl
- Upload date:
- Size: 1.7 MB
- Tags: CPython 3.6m, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e42fd2e097e9a27aa5e1b34b61028bd8ef37c9d3eb8f55a129d9d90a6f2ae146 |
|
MD5 | 3ed819ef113e4e6f776f2842a74eff05 |
|
BLAKE2b-256 | 77ed8383dbd038c1eaa0fc09d83032d9df233bd3f0b0276732122d74a9213a6a |