git clone ''

(ql:quickload :mebaran.clj-excel)

clj-excel: The Beauty And The Beast

The goal is to give you a carefree experience while using Apache POI from Clojure.

Please note that the API isn't stable yet!

Build Status


Saving and loading data:

(use 'clj-excel.core)
(-> (build-workbook (workbook-hssf) {"Numbers" [[1] [2 3] [4 5 6]]})
    (save "numbers.xls"))

(lazy-workbook (workbook-hssf "numbers.xls"))
; {"Numbers" ((1.0) (2.0 3.0) (4.0 5.0 6.0))}

Cell values can be any type supported by POI (boolean, double, String, Date, …; see setCellValue(…)).

They may also be maps; this enables styling:

(def a-cell-value
  {:value "world" :alignment :center
   :border [:none :thin :dashed :thin]
   :foreground-color :grey-25-percent :pattern :solid-foreground
   :font {:color :blue :underline :single :italic true
          :size 12 :font "Arial"}})

(-> (build-workbook (workbook-hssf) {"hello" [[a-cell-value]]})
    (save "hello-world.xls"))

Creating links:

;; just the data
{"a" [[{:value "foo" :link-document "b!A1"}]]
 "b" [[{:value "" :link-url ""}]]}

Creating comments:

{"a" [[{:value "foo" :comment {:text "Lorem Ipsum" :width 4 :height 2}}]]})


Relevant links

Depending on your needs:


Copyright (C) 2012 FIXME

Distributed under the Eclipse Public License, the same as Clojure.