Skip to content

Excel bindings for Clojure, based on Apache POI

Notifications You must be signed in to change notification settings

outpace/clj-excel

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

clj-excel: The Beauty And The Beast

This is a fork from the original clj-excel. It has a few more features but really no more documentation.

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

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:

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

License

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

About

Excel bindings for Clojure, based on Apache POI

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Clojure 100.0%