Liking cljdoc? Tell your friends :D

clj-excel: The Beauty And The Beast

This is a fork from out-pace/clj-excel created for use with the grafter ETL framework. We added support for coercing numbers when reading workbooks such that the value matches the GUI representation (not the underlying excel storage format which is always a double).

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

Please note that the API isn't stable yet!

Usage

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}}]]})

TODO

  • more concise styling; inheriting from declared styles?
  • support for images
  • autoresize columns
  • convienent in-document links

Relevant links

Depending on your needs:

License

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

Can you improve this documentation? These fine people already did:
tok, Robin Gower, Jake McCrary & Paul Stadig
Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close