IronCalc: движок для работы с таблицами из разных языков программирования
IronCalc — это современный движок для работы с таблицами и набор инструментов для взаимодействия с ними.
Проект предлагает альтернативу классическим табличным расчетам, позволяя работать с ними из разных языков программирования, таких как Python и JavaScript. Это может быть полезно, если вам нужна гибкость при создании веб-приложений или интеграции с существующими системами. IronCalc поддерживает чтение и запись файлов в формате XLSX, что обеспечивает совместимость с популярными офисными приложениями.
Движок написан на Rust, что обеспечивает высокую производительность. Запуск осуществляется через Docker: достаточно выполнить команду docker compose up --build, после чего можно протестировать приложение по адресу <http://localhost:2080>. Обрати внимание, что проект всё еще находится в состоянии разработки, так что стабильность и полная функциональность могут быть не гарантированы.
IronCalc — это современный движок для работы с электронными таблицами и набор инструментов, предназначенный для использования в различных условиях. Проект всё ещё находится в разработке, но уже включает в себя основной движок и средства для чтения и записи файлов формата xlsx.
Разработанный на языке Rust, IronCalc поддерживает интеграцию с различными языками программирования, такими как Python, JavaScript (wasm), Node.js, а также потенциально R, Julia и Go. В будущем планируется создание различных интерфейсов: от терминала до настольных приложений и веб-приложений.
Установка и запуск
Для быстрого развёртывания с использованием Docker, убедись, что Docker установлен, и выполни команду:
docker compose up --build
После этого открой http://localhost:2080 в браузере, чтобы протестировать приложение.
Если ты предпочитаешь собирать проект локально, используй следующую команду:
cargo build --release
Тестирование и документация
Тесты запускаются автоматически, а покрытие тестами доступно на Codecov. Чтобы запустить тесты вручную, используй:
make tests
Для проверки покрытия тестами выполни:
make coverage
cd target/coverage/html/
python -m http.server
Документация API доступна на docs.rs или может быть сгенерирована локально следующими командами:
make docs
cd target/doc
python -m http.server
После этого можно посетить http://0.0.0.0:8000/ironcalc/.
Пример использования
Чтобы использовать IronCalc в своем проекте, добавь зависимость в файл `Cargo.toml`:
[dependencies]
ironcalc = { git = "https://github.com/ironcalc/IronCalc", version = "0.8"}
Затем можно использовать следующий код в `main.rs`:
use ironcalc::{
base::{expressions::utils::number_to_column, Model},
export::save_to_xlsx,
};
fn main() -> Result<(), Box> {
let mut model = Model::new_empty("hello-calc.xlsx", "en", "UTC", "en")?;
// Добавляем квадрат чисел на первый лист
for row in 1..100 {
for column in 1..100 {
let value = row * column;
model.set_user_input(0, row, column, format!("{}", value));
}
}
// Добавляем новый лист
model.add_sheet("Calculation")?;
// столбец 100 — это 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);
// выполняем вычисления
model.evaluate();
// сохраняем на диск
save_to_xlsx(&model, "hello-calc.xlsx")?;
Ok(())
}
Ограничения и сообщество
IronCalc находится на ранних этапах разработки, и сообщество проекта пока не велико. Если ты заинтересован в развитии проекта, рекомендуется присоединиться к Discord-каналу или написать на почту hello@ironcalc.com. Проект готов принять участие разработчиков, дизайнеров и пользователей, которые хотят улучшить инфраструктуру для работы с электронными таблицами.
Открыть на GitHub: ironcalc/IronCalc →
RepoRadar