Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tsoding/minicel

Simple Excel engine without any UI
https://github.com/tsoding/minicel

Last synced: 5 days ago
JSON representation

Simple Excel engine without any UI

Awesome Lists containing this project

README

        

# Minicel

The idea is to implement a batch program that can accept a CSV file that looks like this:

```csv
A | B
1 | 2
3 | 4
=A1+B1 | =A2+B2
```

And outputs:

```csv
A | B
1 | 2
3 | 4
3 | 7
```

Basically a simple Excel engine without any UI.

## Quick Start

The project is using [nobuild](https://github.com/tsoding/nobuild) build system.

```console
$ cc -o nobuild nobuild.c
$ ./nobuild
$ ./minicel csv/sum.csv
```

## Syntax

### Types of Cells

| Type | Description | Examples |
| --- | --- | --- |
| Text | Just a human readiable text. | `A`, `B`, `C`, etc |
| Number | Anything that can be parsed as a double by [strtod](https://en.cppreference.com/w/c/string/byte/strtof) | `1`, `2.0`, `1e-6`, etc |
| Expression | Always starts with `=`. Excel style math expression that involves numbers and other cells. | `=A1+B1`, `=69+420`, `=A1+69` etc |
| Clone | Always starts with `:`. Clones a neighbor cell in a particular direction denoted by characters `<`, `>`, `v`, `^`. | `:<`, `:>`, `:v`, `:^` |