UPDATE: Adds a bunch of documentation and examples

This commit is contained in:
Nicolás Hatcher
2024-02-19 23:00:55 +01:00
parent c84621e13f
commit 2d6e45ad94
13 changed files with 381 additions and 76 deletions

View File

@@ -1,4 +1,4 @@
# 📚 IronCalc
# IronCalc
[![MIT licensed][mit-badge]][mit-url]
[![Apache 2.0 licensed][apache-badge]][apache-url]
@@ -33,7 +33,7 @@ Programmed in Rust, you will be able to use it from a variety of programming lan
We will build different _skins_: in the terminal, as a desktop application or use it in you own web application.
# 🛠️ Building
# Building
```bash
cargo build --release
@@ -41,37 +41,81 @@ cargo build --release
# Testing, linting and code coverage
Testing:
```bash
cargo test
```
Test are run automatically and test coverage can always be found in [codecov](https://codecov.io/gh/ironcalc/IronCalc)
Linting:
```bash
make lint
```
If you want to run the tests yourself:
Testing and linting:
```bash
make tests
```
Code coverage:
Note that this runs unit tests, integration tests, linter tests and formatting tests.
If you want to run the code coverage yourself:
```bash
make coverage
cd target/coverage/html/
python -m http.server
```
# 🖹 API Documentation
# API Documentation
Documentation might be generated with
Documentation is published at: https://docs.rs/ironcalc/latest/ironcalc/
It might be generated locally
```bash
$ cargo doc --no-deps
$ make docs
$ cd target/doc
$ python -m http.server
```
# 📝 ROADMAP
And visit <http://0.0.0.0:8000/ironcalc/>
# Simple example
Add the dependency to `Cargo.toml`:
```toml
[dependencies]
ironcalc = { git = "https://github.com/ironcalc/IronCalc", version = "0.1"}
```
And then use this code in `main.rs`:
```rust
use ironcalc::{
base::{expressions::utils::number_to_column, model::Model},
export::save_to_xlsx,
};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let mut model = Model::new_empty("hello-calc.xlsx", "en", "UTC")?;
// Adds a square of numbers in the first sheet
for row in 1..100 {
for column in 1..100 {
let value = row * column;
model.set_user_input(0, row, column, format!("{}", value));
}
}
// Adds a new sheet
model.add_sheet("Calculation")?;
// column 100 is CV
let last_column = number_to_column(100).unwrap();
let formula = format!("=SUM(Sheet1!A1:{}100)", last_column);
model.set_user_input(1, 1, 1, formula);
// evaluates
model.evaluate();
// saves to disk
save_to_xlsx(&model, "hello-calc.xlsx")?;
Ok(())
}
```
See more examples in the `examples` folder of the xlsx crate.
# ROADMAP
> [!WARNING]
> This is work-in-progress. IronCalc in developed in the open. Expect things to be broken and change quickly until version 0.5
@@ -83,7 +127,7 @@ Major milestones:
MVP stands for _Minimum Viable Product_
## Version 0.5 or MVP (15 March 2024)
## Version 0.5 or MVP (early 2024)
Version 0.5 includes the engine, javascript and nodejs bindings and a web application
@@ -123,8 +167,6 @@ Minor milestones in the ROADMAD for version 1.0.0 (engine and UI):
* Python bindings
* Full test coverage
I will be creating issues during the first two months of 2024
# Early testing
An early preview of the technology running entirely in your browser:
@@ -132,6 +174,16 @@ An early preview of the technology running entirely in your browser:
https://playground.ironcalc.com
# Collaborators needed!. Call to action
We don't have a vibrant community just yet. This is the very stages of the project. But if you are passionate about code with high standards and no compromises, if you are looking for a project with high impact, if you are interested in a better, more open infrastructure for spreadsheets, whether you are a developer (rust, python, TypeScript, electron/tauri/anything else native app, React, you name it), a designer (we need a logo desperately!), an Excel power user who wants features, a business looking to integrate a MIT/Apache licensed spreadsheet in your own SaaS application join us!
The best place to start will be to join or [discord channel](https://discord.gg/zZYWfh3RHJ) or sheet me an email at hello@ironcalc.com.
Many have said it better before me:
Folks wanted for hazardous journey. Low wages, bitter cold, long hours of complete darkness. Safe return doubtful. Honour and recognition in event of success.
# License