IronCalc: движок для работы с таблицами из разных языков программирования

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 →

Что нового на GitHub — короткие обзоры на русском Новые обзоры приходят в Telegram. Без спама, по делу.
Подписаться

Похожие статьи

Популярные темы на сайте