.luau ⇢ .xll

.py ⇢ .xll Coming Soon

The easiest way to create very high performance Microsoft Excel custom functions.

View the action on GitHub Marketplace

xllify gives you high performance of the Excel C SDK from Luau and (soon) Python, while handling the entire build process on GitHub Actions. Scripts in, .xll out. Try it out by copying our template repo and pressing build! ⇢

Python Luau
  • Write Excel functions in Luau and Python. Luau has strong numerical perfomance and is used in Roblox and other well-known games. Python has a vast ecosystem, making it the choice of analysts and data scienists: leverage your existing code in minutes.
  • It's fast. Every part of xllify is built for speed. It uses Excel's C SDK, multithreaded recalculation (MTR) and shared memory for maximum performance. Combined with Luau's exceptional performance and Python's vast ecosystem, you get the best of all worlds.
  • Async functions Longer running functions, such as those that perform heavy computation, inferences or rely on network requests will not freeze Excel.
  • External functions Coming Soon In addition to Luau, you can implement your functions in any language that is supported by the SDK. External functions run a separate process to Excel. Shared memory keeps things fast when passing large ranges back and forth to keep things spritely.
  • Zero dependencies. By default, everything is packaged into a single file (typically around 1MB) which is yours to distribute and deploy however you want, forever. Python dependencies, if used, automatically install.
  • Be productive in minutes. No faffing with C++, Visual Studio versions, xlcall32.lib or build configurations. Just feed xllify some plain old functions... and get back an .xll 📈
  • Develop anywhere. Test your functions on Mac, Linux, or Windows before deploying.
High performance
Luau gives exceptional performance and safety, running at close-to-C speeds. Luau code is precompiled and sandboxed, running inside the Excel process. Python (with other languages to come) run out of process for maximum flexibility. A single .xll can contain both Luau and external functions.
Integrated with GitHub
Feed in some scripts and get back a ready-to-use XLL add-in in about a minute. The returned .xll is yours to distribute however you wish, without limitation. The entire build process happens within your GitHub account.
Focus on your users
xllify uses C++ under the hood for maximum performance, while correctly managing memory, threads and handling the finicky build process. Anyone with scripting knowledge can write an add-in in a few minutes. They're plain ol' functions. You can even leverage your existing code!

But why?

Formulas aren't maintainable at scale. They're not reusable and it's easy to create a mess when they're duplicated. Custom functions can be the answer, but every way to add them to Excel has trade-offs. VBA is single-threaded, hard to maintain and doesn't fit with modern development workflows. Office.js is quite slow and has a convoluted deployment mechanism. Microsoft's Python for Excel makes network calls for each calculation. Excel-DNA is open-source and truly excellent, but needs .NET expertise and a Windows environment to develop in. The original Excel C SDK is easily the fastest, but it is also low level and notoriously hard to use correctly.

xllify removes compromises. It overcomes the pain points of the C SDK by fusing it to a high level scripting language with strong numerical performance. It automates away the tricky build process. What's left? The easiest way of writing high performance custom functions.

Analysts and domain experts generally don't care about the technical nitty gritty. They just want to focus on solving real problems. xllify lets them do just that.

Read the introductory blog post