The goal is to give you a carefree experience while using Apache POI from Clojure.
Please note that the API isn't stable yet!
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 "example.com" :link-url "http://www.example.com/"}]]}
Creating comments:
{"a" [[{:value "foo" :comment {:text "Lorem Ipsum" :width 4 :height 2}}]]})
- more concise styling; inheriting from declared styles?
- support for images
- autoresize columns
- convienent in-document links
Depending on your needs:
- Guide: How to get things done ...
- API docs: ... in a little more detail
- the source: ... when everything else fails
Copyright (C) 2012 FIXME
Distributed under the Eclipse Public License, the same as Clojure.