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

 
 
 

Languages

  • Clojure 100.0%