Skip to content

Excel bindings for Clojure, based on Apache POI

Notifications You must be signed in to change notification settings

undernorthernsky/clj-excel

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

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

TODO

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

Relevant links

Depending on your needs:

  • Guide: How to get things done ...
  • API docs: ... in a little more detail
  • the source: ... when everything else fails

License

Copyright (C) 2012 FIXME

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

About

Excel bindings for Clojure, based on Apache POI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Clojure 100.0%