Choosing a language
xllify supports multiple languages for different use cases, with more on the way. You can even mix and match languages in the same add-in.
Luau
Luau is an incredibly easy language to learn, it boasts strong numerical performance and is used in Roblox and other well-known games. It therefore has millions of end users!
With xllify, your Luau code compiles to bytecode and runs directly in Excel's process at near-C speeds with full multithreaded recalculation support.
Despite being dominant for games and web server configuration, Lua(u) it is less widely used than Python in the data space. However, we encourage you to check out Luau as a starting point if your functions can be expressed as pure computations. It is simple and very fast.
Luau features:
Code is embedded as bytecode and sandboxed (no file system access, users can't easily view your code)
Maximum performance (runs at native speeds)
Pure computations and simple async operations
True multithreaded recalculation
Incredibly fast statistical functions in the xllify standard library, implemented in C++ - maybe Pandas is overkill for some use cases!
Python
Python needs no introduction. It is the defacto choice for data analysis and machine learning. Repurpose your existing, tried and tested code in a few minutes.
Python features:
Full system access without sandboxing restrictions
Use any Python library (pandas, numpy, duckdb, requests...)
Ideal for data analysis, machine learning and calling out to APIs
High performance communication via named pipes and shared memory
Keeping your code private from end-users isn't required
Load balancing across multiple processes to make use of multiple cores
Why not both?
You can combine Python and Luau in a single XLL:
xllify MyAddin.xll calculations.luau data_fetch.py --py-entrypoint data_fetchOur view? Use Luau for pure computations and Python for API calls or data processing.
Last updated