xlOil


NamexlOil JSON
Version 0.18.7 PyPI version JSON
download
home_pagehttps://gitlab.com/stevecu/xloil
SummaryExcel interop for Python and Jupyter
upload_time2024-03-31 23:40:23
maintainerNone
docs_urlNone
authorSteven Cunnane
requires_python>=3.6
licenseApache
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
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).

            

Raw data

            {
    "_id": null,
    "home_page": "https://gitlab.com/stevecu/xloil",
    "name": "xlOil",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": null,
    "author": "Steven Cunnane",
    "author_email": "replace-this-with-my-surname@gmail.com",
    "download_url": "https://gitlab.com/stevecu/xloil/-/releases/",
    "platform": null,
    "description": "\r\nxlOil\r\n=====\r\n\r\nxlOil provides framework for interacting with Excel in different programming\r\nlanguages. It gives a way to write functions in a language and have them \r\nappear in Excel as worksheet functions or macros or have them control GUI elements. \r\nFor example, the Python bindings can replace VBA in almost all use cases \r\nand even provide functionality not available from VBA.\r\n\r\nxlOil is designed to have very low overheads when calling your worksheet \r\nfunctions.\r\n\r\nxlOil supports different languages via plugins. The languages currently \r\nsupported are:\r\n\r\n- C++\r\n- Python\r\n- SQL\r\n\r\nIn addition there is *xlOil_Utils* which contains some handy tools which Microsoft\r\nnever quite got around to adding.\r\n\r\nThe latest stable documentation is here: https://xloil.readthedocs.io/en/stable.\r\n\r\nxlOil features\r\n--------------\r\n\r\n* Python\r\n  - Concise syntax to declare an Excel function\r\n  - Optional type checking of function parameters\r\n  - Supports keyword arguments\r\n  - Choice of globally declared functions or code modules limited to a single workbook\r\n    like VBA workbook-level functions\r\n  - Tight integration with *numpy* - very low overheads for array functions\r\n  - Understands python tuples, lists, dictionarys and *pandas* dataframes\r\n  - Async functions\r\n  - RTD functions and on-the-fly RTD server creation\r\n  - Macro type functions which write to ranges on the sheet\r\n  - Access to the Excel Application object and the full Excel object model\r\n  - Drive Excel through COM automation\r\n  - Hook Excel events\r\n  - Pass any python object back to Excel and back into another function\r\n  - Simple add-in deployment\r\n  - Two-way connection to *Jupyter* notebooks: run worksheet functions in *Jupyter* and query variables\r\n    in the *jupyter* kernel\r\n  - Create Ribbon toolbars and Custom Task Panes\r\n  - Return *matplotlib* plots and images from worksheet functions\r\n* C++\r\n  - Safe and convenient wrappers around most things in the C-API\r\n  - Concise syntax to declare Excel functions: registration is automatic\r\n  - Deal with Excel variants, Ranges, Arrays and strings in a natural C++ fashion\r\n  - Object cache allows returning opaque objects to Excel and passing them back to other functions\r\n  - Simplified RTD server creation\r\n  - RTD-based background calculation\r\n  - Create Ribbon toolbars and Custom Task Panes  \r\n* SQL\r\n  - Create tables from Excel ranges and arrays\r\n  - Query and join them with the full sqlite3 SQL syntax\r\n* Utils: very fast functions to:\r\n  - Sort on multiple columns\r\n  - Split and join strings\r\n  - Make arrays from blocks\r\n\r\n\r\nSupporting other languages\r\n--------------------------\r\n\r\nYou can use xlOil as an end-user of these plugins or you can use it to write\r\nyou own language bindings (and ideally add them to the repo).\r\n",
    "bugtrack_url": null,
    "license": "Apache",
    "summary": "Excel interop for Python and Jupyter",
    "version": "0.18.7",
    "project_urls": {
        "Documentation": "https://xloil.readthedocs.io/en/stable",
        "Download": "https://gitlab.com/stevecu/xloil/-/releases/",
        "Homepage": "https://gitlab.com/stevecu/xloil"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "41f9ce113bb7090d454811be12b64169324775bec97280202c3546536083e2fe",
                "md5": "53d095ab6ebf24fa3355e6f07875e59d",
                "sha256": "44223ee095787dbee98850ec5fe3e328c39bfed480f7161ca0a62e8180571ee6"
            },
            "downloads": -1,
            "filename": "xlOil-0.18.7-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "53d095ab6ebf24fa3355e6f07875e59d",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.6",
            "size": 2032397,
            "upload_time": "2024-03-31T23:40:23",
            "upload_time_iso_8601": "2024-03-31T23:40:23.783607Z",
            "url": "https://files.pythonhosted.org/packages/41/f9/ce113bb7090d454811be12b64169324775bec97280202c3546536083e2fe/xlOil-0.18.7-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "25bd0802383d79453a1b459f35b27f10e2fa64bc0128051dfb1f867609d0e32e",
                "md5": "3944ec0e71939e29edbb7c1c55b17ef7",
                "sha256": "c2cca40d641d70be6fdd3b4ee9f7aa9c790a0f0051770b4e2c615a71c610801b"
            },
            "downloads": -1,
            "filename": "xlOil-0.18.7-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "3944ec0e71939e29edbb7c1c55b17ef7",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": ">=3.6",
            "size": 2303128,
            "upload_time": "2024-03-31T23:40:28",
            "upload_time_iso_8601": "2024-03-31T23:40:28.837859Z",
            "url": "https://files.pythonhosted.org/packages/25/bd/0802383d79453a1b459f35b27f10e2fa64bc0128051dfb1f867609d0e32e/xlOil-0.18.7-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a7be5e5f832fda31a429c81ea486dce274a50aae31ce645bc7b6f9107cca808a",
                "md5": "c06fbd454749a9551681f25c1f0601af",
                "sha256": "20ed6573c7122b291fcd8aeb5c7270e1f99f09674c9b43950d059c848f09b985"
            },
            "downloads": -1,
            "filename": "xlOil-0.18.7-cp312-cp312-win32.whl",
            "has_sig": false,
            "md5_digest": "c06fbd454749a9551681f25c1f0601af",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.6",
            "size": 2037675,
            "upload_time": "2024-03-31T23:40:32",
            "upload_time_iso_8601": "2024-03-31T23:40:32.741054Z",
            "url": "https://files.pythonhosted.org/packages/a7/be/5e5f832fda31a429c81ea486dce274a50aae31ce645bc7b6f9107cca808a/xlOil-0.18.7-cp312-cp312-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9c67468356a3357e73b78fea32e1f1b697d72d2a2ec5c969ce5315ec9c49dacf",
                "md5": "11c34a3a9b4281e97c32ed61689838d1",
                "sha256": "97478f90fe962491c734e7b0421cc5eb8f092a2a9002149606850ab4a91a2307"
            },
            "downloads": -1,
            "filename": "xlOil-0.18.7-cp312-cp312-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "11c34a3a9b4281e97c32ed61689838d1",
            "packagetype": "bdist_wheel",
            "python_version": "cp312",
            "requires_python": ">=3.6",
            "size": 2306712,
            "upload_time": "2024-03-31T23:40:36",
            "upload_time_iso_8601": "2024-03-31T23:40:36.931957Z",
            "url": "https://files.pythonhosted.org/packages/9c/67/468356a3357e73b78fea32e1f1b697d72d2a2ec5c969ce5315ec9c49dacf/xlOil-0.18.7-cp312-cp312-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c564b79ce6ad1976ef0ecd4473e95d1467f1c1d8b3fba2f8da3a22fdf940d7a6",
                "md5": "55718ffdeab56a22a106e7f8daf2390b",
                "sha256": "42e433944afd586bba7d79b0839e0439b68364c7939db6d21b9e57f5fd1aa5a0"
            },
            "downloads": -1,
            "filename": "xlOil-0.18.7-cp36-cp36m-win32.whl",
            "has_sig": false,
            "md5_digest": "55718ffdeab56a22a106e7f8daf2390b",
            "packagetype": "bdist_wheel",
            "python_version": "cp36",
            "requires_python": ">=3.6",
            "size": 2610386,
            "upload_time": "2024-03-31T23:40:41",
            "upload_time_iso_8601": "2024-03-31T23:40:41.323359Z",
            "url": "https://files.pythonhosted.org/packages/c5/64/b79ce6ad1976ef0ecd4473e95d1467f1c1d8b3fba2f8da3a22fdf940d7a6/xlOil-0.18.7-cp36-cp36m-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "62c68e694b734a5eccb6ccab2ad42607438e2740397c299e8a5ab82b9df1f1b7",
                "md5": "12362872b87e3ebd6507e3e43e6f5d26",
                "sha256": "cb1b40f84da01e275cc342b46eddad86c917a7f7f2402344060c080552c2533a"
            },
            "downloads": -1,
            "filename": "xlOil-0.18.7-cp36-cp36m-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "12362872b87e3ebd6507e3e43e6f5d26",
            "packagetype": "bdist_wheel",
            "python_version": "cp36",
            "requires_python": ">=3.6",
            "size": 2989753,
            "upload_time": "2024-03-31T23:40:46",
            "upload_time_iso_8601": "2024-03-31T23:40:46.225556Z",
            "url": "https://files.pythonhosted.org/packages/62/c6/8e694b734a5eccb6ccab2ad42607438e2740397c299e8a5ab82b9df1f1b7/xlOil-0.18.7-cp36-cp36m-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "438bfb30eff949432360e12553245de103a0b6d6cc31c6d611680c83ad73c1da",
                "md5": "717c17612bd026be730f8ae9de220848",
                "sha256": "97318c5bace85deee46adbea6c446f28f8b0145dee815ae565abb7384db5d9df"
            },
            "downloads": -1,
            "filename": "xlOil-0.18.7-cp37-cp37m-win32.whl",
            "has_sig": false,
            "md5_digest": "717c17612bd026be730f8ae9de220848",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.6",
            "size": 2610434,
            "upload_time": "2024-03-31T23:40:50",
            "upload_time_iso_8601": "2024-03-31T23:40:50.302514Z",
            "url": "https://files.pythonhosted.org/packages/43/8b/fb30eff949432360e12553245de103a0b6d6cc31c6d611680c83ad73c1da/xlOil-0.18.7-cp37-cp37m-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bba60a6110f6f774d93b1b95dd357daba7bf7c40264fd5e70ed1f76d6ace8abb",
                "md5": "6a9cacc2dd2beb0a425b1611298e3505",
                "sha256": "d83e6569e87eb39fbdbca00b8cb6cf356105fd2f5fd782f0a590d6ec7e656956"
            },
            "downloads": -1,
            "filename": "xlOil-0.18.7-cp37-cp37m-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "6a9cacc2dd2beb0a425b1611298e3505",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": ">=3.6",
            "size": 2989210,
            "upload_time": "2024-03-31T23:40:55",
            "upload_time_iso_8601": "2024-03-31T23:40:55.098412Z",
            "url": "https://files.pythonhosted.org/packages/bb/a6/0a6110f6f774d93b1b95dd357daba7bf7c40264fd5e70ed1f76d6ace8abb/xlOil-0.18.7-cp37-cp37m-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4a57cdd31c1a7883a9a402e052eb2f1f66a5a711b0898844ec8bb063e3906c85",
                "md5": "b491ad458e46508176d7a691209b82b7",
                "sha256": "415dca4bb1c81c4bac2e25988f7348949b82404e08819b716711504ea5d5ca77"
            },
            "downloads": -1,
            "filename": "xlOil-0.18.7-cp38-cp38-win32.whl",
            "has_sig": false,
            "md5_digest": "b491ad458e46508176d7a691209b82b7",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.6",
            "size": 2592741,
            "upload_time": "2024-03-31T23:40:59",
            "upload_time_iso_8601": "2024-03-31T23:40:59.823139Z",
            "url": "https://files.pythonhosted.org/packages/4a/57/cdd31c1a7883a9a402e052eb2f1f66a5a711b0898844ec8bb063e3906c85/xlOil-0.18.7-cp38-cp38-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "29b42c5e8a63f14ec710c0ffea5799fae0cf0cb7e66c968142ea1b853565ecd4",
                "md5": "caf8ebd73b9970678f66bf39f0ff9882",
                "sha256": "8bb0fab8dc097f65dc0b3256a862a0d0ff56cec13588898ca4a857657ddb17e2"
            },
            "downloads": -1,
            "filename": "xlOil-0.18.7-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "caf8ebd73b9970678f66bf39f0ff9882",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": ">=3.6",
            "size": 2992912,
            "upload_time": "2024-03-31T23:41:04",
            "upload_time_iso_8601": "2024-03-31T23:41:04.730081Z",
            "url": "https://files.pythonhosted.org/packages/29/b4/2c5e8a63f14ec710c0ffea5799fae0cf0cb7e66c968142ea1b853565ecd4/xlOil-0.18.7-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9ee8611928bf9ec3df784b26446d57fb87395c87adcbcaeede23ea6b935e45f8",
                "md5": "e0a4d317132765f0fbd5c3c0f3355d53",
                "sha256": "185d23914b5177d36dddb2d6c06f14245b913f53dd77bb6f557448b4e5a0800c"
            },
            "downloads": -1,
            "filename": "xlOil-0.18.7-cp39-cp39-win32.whl",
            "has_sig": false,
            "md5_digest": "e0a4d317132765f0fbd5c3c0f3355d53",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.6",
            "size": 2034721,
            "upload_time": "2024-03-31T23:41:08",
            "upload_time_iso_8601": "2024-03-31T23:41:08.779659Z",
            "url": "https://files.pythonhosted.org/packages/9e/e8/611928bf9ec3df784b26446d57fb87395c87adcbcaeede23ea6b935e45f8/xlOil-0.18.7-cp39-cp39-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9e4184629051aa0f3405ee8d950545275be51fcd0d66e015f04ae605da06f5aa",
                "md5": "6d93807acd31362ed59f95772f6f682b",
                "sha256": "77f80629d994ebdbeec5fb694994758626a5f59d2d7f2ae9307fd310fb64a1c0"
            },
            "downloads": -1,
            "filename": "xlOil-0.18.7-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "6d93807acd31362ed59f95772f6f682b",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": ">=3.6",
            "size": 2306510,
            "upload_time": "2024-03-31T23:41:12",
            "upload_time_iso_8601": "2024-03-31T23:41:12.515136Z",
            "url": "https://files.pythonhosted.org/packages/9e/41/84629051aa0f3405ee8d950545275be51fcd0d66e015f04ae605da06f5aa/xlOil-0.18.7-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-03-31 23:40:23",
    "github": false,
    "gitlab": true,
    "bitbucket": false,
    "codeberg": false,
    "gitlab_user": "stevecu",
    "gitlab_project": "xloil",
    "lcname": "xloil"
}
        
Elapsed time: 0.33995s