Skip to content

Evil project to turn excel spreadsheets in persistent reactive structures.

Notifications You must be signed in to change notification settings

cgrand/spreadmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

spreadmap

Evil Clojure library to turn Excel spreadsheets in persistent reactive associative structures.

Installation

[net.cgrand/spreadmap "0.1.4"]

What's new in 0.1.4?

  • The Java API with public modifiers on methods. cough cough

What's new in 0.1.3?

  • Due to popular demand: Java API! Call net.cgrand.SpreadMap.create(src) where src is a File, an InputStream or a String. It returns an Associative so you use .valAt and .assoc to read/update.
  • Fix the value of FALSE cells (returned nil instead of false).

What's new in 0.1.2?

  • Rewrite to get rid of the crippled ForkedEvaluator from POI.
  • It means XLSX are now supported as they should have been in the first place.

What's new in 0.1.1?

  • Keys can be "A1" "Foo!A1" "CellName" ["Foo" "A1"] [0 0] ["Foo" 0 0] [0 0 0]
  • Dates are returned as j.u.Date instances

Usage

=> (require '[net.cgrand.spreadmap :as evil])
nil
=> (def m (evil/spreadmap "/Users/christophe/Documents/Test.xls"))
#'user/m
=> (select-keys m ["A1" "B1" "C1"])
{"C1" 6.0, "B1" 2.0, "A1" 3.0}
; m is a spreadhseet where C1 is A1*B1
=> (-> m (assoc "B1" 12) (get "C1"))
36.0
=> (-> m (assoc "A1" 8) (get "C1"))
16.0
=> (defn mul [a b]
     (-> m
       (assoc "A1" a)
       (assoc "B1" b)
       (get "C1")))
#'user/mul
=> (mul 8 9)
72.0
=> (mul 7 6)
42.0

License

Copyright © 2013 Christophe Grand

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

About

Evil project to turn excel spreadsheets in persistent reactive structures.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages