Run a ClojureScript REPL within Microsoft Excel
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
examples New example: Calling JSONP web services Jan 19, 2016
src-resource Make textarea get focus on (show-sp). Closes #11 Dec 20, 2015
src/cljs4excel Added work-around for (require ..), added (boot ..) function Nov 25, 2015
.gitignore Ignore .DS_Store Nov 22, 2015
LICENSE Initial commit Nov 15, 2015 README update Jan 12, 2016 Utility script to start local Python based web server Dec 7, 2015


Run a ClojureScript REPL within Microsoft Excel.

This is a bootstrapped ClojureScript as shown on running within an Office Add-in, which is essentially a browser running within Microsoft Excel. Using Office.js and some JS->CLJS->JS code you can then interact with the Excel document from ClojureScript.

How to install locally

If you just want to try it out I'd recommend following the steps as shown on When you have that up and running the steps to run with all local files would be these:

1: Build the project with:

lein cljsbuild once
lein resource

2: Take the manifest file in target/cljs4excel.xml and change the SourceLocation so that it points to a URL you're in control of.

3: Take the files and folders in the target folder and place them at the location of the URL you selected. There's no need to use https for this URL, and using localhost is also fine.

Note that the manifest XML must always be placed on some network share for Excel to accept it. However, this network share can simply be a shared folder locally, as long as you stick to UNC paths (for example: \\WIN-AABBCCDDEE\Share\cljs4excel.xml). No need for any advanced external file server. It's also technically possible to have the SourceLocation pointing to a network share instead of a web server URL, but I've had issues making that work.

To add the XML manifest from a shared location in Excel, please see below link:

Consider this as beta software at the moment. There are plenty of things I'd like to improve, so I'll put up a list of things we can work on soon.

Change log


  • Simple proof of concept


  • Changed to a proper leiningen project
  • Use replumb for REPL
  • Added scratchpad editor, open it with (show-sp) in REPL
  • Included replumb work-around for (require ..)
  • Added (boot ..) function, used to eval content within sheet document


  • Added "debug" REPL for running in browser outside Excel (repl-debug.html)
  • Added some flexibility on how get-binding-data, get-binding-details, set-binding-data! operate on arguments
  • Added a fill-binding-data! function that takes any sequence and fills it into the shape of a binding.

Related links

Prepackaged cljs4excel:

Office Add-ins:


Copyright © 2015 Christian Felde & Contributors

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.