--- id: pycel version: "1.0b30" license: unclear license_treatment: copyleft maintenance: dormant --- # pycel — A library for compiling excel spreadsheets to python code & visualizing them as a graph License: copyleft · Maintenance: dormant · Downloads: 327.0K/mo ## What it is and what it does Pycel is a Python library that reads an Excel workbook and compiles its formulas into a directed acyclic graph of Python functions, then evaluates that graph to produce results without requiring Excel. It supports common mathematical functions (sin, cos, atan2), operators, ranges, and lookup functions like MIN, MAX, INDEX, and LINEST. The compiled code can be exported and analyzed using graph visualization tools like Gephi. The library is designed for spreadsheets with hundreds or thousands of formulas where you need reproducible, auditable computation outside Excel. It depends on networkx for graph representation, numpy for numerical operations, openpyxl for reading .xlsx files, python-dateutil for date handling, and ruamel.yaml for configuration. The codebase is intentionally small and relatively fast, though the author notes that truly high-performance use cases might require replacing the graph with sparse-matrix-based dependency tracking. Use it for: - Automate recurring spreadsheet calculations in production without Excel licensing or manual re-entry. - Audit and version-control complex financial or engineering models by converting them to readable Python code. - Integrate Excel-based business logic into Python data pipelines or web services. - Visualize formula dependencies and data flow in large spreadsheets using graph export tools. - Test spreadsheet formulas programmatically by evaluating them in a Python test suite. ## Worth the install? AI-flagged interpretation of the facts above — verify before relying. Pycel translates Excel spreadsheets into executable Python code that runs independently of Excel, using a graph-based computation model with caching and lazy evaluation. Yes, if you have a stable Excel workbook with supported functions and can accept GPLv3 licensing. The low install friction and graph-based design make it suitable for one-time or occasional spreadsheet compilation. However, maintenance is dormant (last release October 2021), so expect no new function support or bug fixes; verify that your spreadsheet's functions are already implemented before committing to this library. Not recommended for proprietary projects due to copyleft licensing. ## Install pip install pycel uv add pycel poetry add pycel ## Installing pycel Before you install: Low install friction with a pure-Python wheel. Maintenance is dormant—last release was 2021-10-13 and no commits since 2024-05-29—so expect limited bug fixes or feature updates going forward. License in practice: Licensed under GPLv3 (copyleft), which requires any derivative work or distribution to also be open-source under GPLv3; proprietary projects cannot incorporate this code without releasing their modifications. Quickstart: pip install pycel from pycel import ExcelCompiler compiler = ExcelCompiler(filename='spreadsheet.xlsx') result = compiler.evaluate('Sheet1!A1') Requires openpyxl to read .xlsx files and networkx, numpy, python-dateutil, ruamel.yaml as runtime dependencies. Verify before relying: - Whether all Excel functions used in a given spreadsheet are actually supported by the version installed. - Performance characteristics on spreadsheets larger than the 10,000-formula example mentioned in the description. - Current compatibility with modern versions of openpyxl and networkx beyond what the changelog documents. ## Package facts - License: not declared (copyleft) - Python support: supports_current - Install friction: low - Maintenance: dormant - Downloads: 327.0K/month (top 15,000 on PyPI) - Known vulnerabilities: 2 ## Tags excel to python compiler, excel formula parser, spreadsheet code generation, excel automation python, convert excel to code, excel graph visualization, formula evaluation engine, excel-interop, formula-evaluation, code-generation [View on SkillFed](https://skillfed.io/packages/pycel) · [View on PyPI](https://pypi.org/project/pycel/)