UPDATE: Adds a bunch of documentation and examples
This commit is contained in:
90
README.md
90
README.md
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user