Skip to content

fwilhe2/Inzell

Repository files navigation

Inzell

CI Latest Release License

This project is meant to explore the kotlin programming language, learn about functional programming and implement a tiny spreadsheet-software.

Name

The name is intended to be a pun on a popular spreadsheet software. Also, Inzell is a city in Bavaria.

Concepts

The basic idea is that every column in a spreadsheet is usually some function. It may be a constant function, if only one value is needed. Input for the function is the row index. This allows to make a function that does anything with that value, counting for example.

The function may return values of any type:

fun f(n: Int): Any

Some of such functions are provided by StandardLibrary.kt.

Ech Column has a title which is used as a header, and a function to compute its value. An example is:

Column("Number of CPUs", ::powerOfTwo)

Finally, a spreadsheet is built like so:

spreadsheet {
    column("Expenses", expenses)
    column("Share of Expense", ::shareOfExpense)
    column("Cost with (fictional) tax", ::expenseWithTaxes)
}

More Examples

See Inzell-Examples for more examples, also ones not in Kotlin.

Using the library

The maven artifacts are published to GitHub. Use the following coordinates for a jvm application:

<dependency>
  <groupId>com.github.fwilhe.inzell</groupId>
  <artifactId>inzell-jvm</artifactId>
  <version>LATEST_VERSION_HERE</version>
</dependency>

Be sure to configure the GitHub repo in maven.

The library depends on the Kotlin standard library.

Building

To install the library to your local Maven repo, type ./gradlew publishToMavenLocal in the project root.

License

This software is written by Florian Wilhelm and available under the MIT license (see LICENSE for details)

About

Simple spreadsheet using Kotlin

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •  

Languages