Introduction
JuliaInXL is a package that’s designed to enhance Microsoft Excel® spreadsheets with Julia. It empowers users with the capability of accessing Julia language and it’s rich package ecosystem from within the world’s most popular spreadsheet.
It is easily one of the most useful packages bundled with the Enterprise version of JuliaPro (v0.6.0.1, now supporting Julia 0.6).
The package lets users call Julia functions from Excel, and enables loading files and functions into new or existing Julia processes from the Excel ribbon. It also allows switching a single Excel session between multiple separate Julia environments, and lets users effortlessly develop and deploy Julia functionality to Excel by using Juno and JuliaInXL together.
Demonstration
JuliaInXL is installed by running the “JuliaPro_JuliaInXL” executable that is available on downloading JuliaPro (Enterprise).
Once the installation is complete, a Julia process should launch automatically on starting an Excel session in most cases. In case a Julia process doesn’t launch automatically, the user can launch it using the “Launch Local Julia” button embedded in the Office ribbon. The Office Ribbon also contains a number of buttons and text boxes for controlling the connection between Julia and Excel, as well as loading functionality into the current Julia process.
The ”Launch Local Julia” button launches a new child Julia process, establishing a fresh TCP connection between Excel and Julia, killing any previously active Julia processes.
Adjacent to the “Launch Local Julia” button is a “Julia File Path” button (under the “Julia” tab) that lets users enter the path to a .jl
file that can be loaded into the current Julia process. It is the equivalent of running the include
command to load a particular file in a Julia terminal
In our current example, we have preloaded a file called “sim.jl”, that defines a Julia function called simulate
.
To call this function from Excel, we use the jlcall
worksheet function.
The first input argument to the jlcall
function is a string. The string in question should be the name of the registered Julia function the user intends to call. Subsequent arguments to the jlcall
function are passed as parameters to the Julia function being called. These can be constant literals, or cell references. Arrays can be passed via cell ranges.
In this example, a sample worksheet function call would look like this : =jlcall("simulate",100)
(internally calling the simulate
function with 100 as it’s input parameter, simulate(100)
)
By copying the contents of the cell in which jlcall
was executed into multiple cells, the original jlcall
operation can be repeated within multiple cells.
That brings us to the end of this brief JuliaInXL demonstration. Read the documentation to know more about this simple, comprehensive and extremely handy tool, or watch this video tutorial by Julia Computing’s Andy Greenwell below.
JuliaInXL: Enhancing spreadsheets with Julia
About Julia and Julia Computing
Julia is the fastest high performance open source computing language for data, analytics, algorithmic trading, machine learning, artificial intelligence, and many other domains. Julia solves the two language problem by combining the ease of use of Python and R with the speed of C++. Julia provides parallel computing capabilities out of the box and unlimited scalability with minimal effort. For example, Julia has run at petascale on 650,000 cores with 1.3 million threads to analyze over 56 terabytes of data using Cori, the world’s sixth-largest supercomputer. With more than 1.2 million downloads and +161% annual growth, Julia is one of the top programming languages developed on GitHub. Julia adoption is growing rapidly in finance, insurance, machine learning, energy, robotics, genomics, aerospace, medicine and many other fields.
Julia Computing was founded in 2015 by all the creators of Julia to develop products and provide professional services to businesses and researchers using Julia. Julia Computing offers the following products:
- JuliaPro for data science professionals and researchers to install and run Julia with more than one hundred carefully curated popular Julia packages on a laptop or desktop computer.
- JuliaRun for deploying Julia at scale on dozens, hundreds or thousands of nodes in the public or private cloud, including AWS and Microsoft Azure.
- JuliaFin for financial modeling, algorithmic trading and risk analysis including Bloomberg and Excel integration, Miletus for designing and executing trading strategies and advanced time-series analytics.
- JuliaDB for in-database in-memory analytics and advanced time-series analysis.
- JuliaBox for students or new Julia users to experience Julia in a Jupyter notebook right from a Web browser with no download or installation required.
Julia users, partners and employers hiring Julia programmers in 2017 include Amazon, Apple, BlackRock, Capital One, Citibank, Comcast, Disney, Facebook, Ford, Google, IBM, Intel, KPMG, Microsoft, NASA, Oracle, PwC, Uber, and many more.