1. Продукты
  2.   Aspose.Cells
  3.   Aspose.Cells FOSS for Rust

Aspose.Cells FOSS для Rust

Открытый crate Rust для создания, чтения, редактирования и сохранения электронных таблиц Excel XLSX без зависимостей от Office.

Aspose.Cells FOSS — библиотека Rust с открытым исходным кодом

Aspose.Cells FOSS for Rust — это открытая библиотека для работы с электронными таблицами Excel XLSX в приложениях на Rust. Она предоставляет системным программистам нативный, безопасный по памяти способ создавать книги с нуля, загружать существующие файлы XLSX, изменять их содержимое и сохранять результат — без Microsoft Office, автоматизации COM или какого-либо внешнего runtime.

Крейт моделирует полное дерево объектов таблицы: Workbook, Worksheet и коллекции ячеек с типизированными установщиками значений (put_value_string, put_value_i32, put_value_bool, put_value_decimal), формулы с кэшированными значениями через put_formula_with_cached_value, диаграммы (Chart, ChartType), условное форматирование (FormatCondition), проверку данных (Validation), автофильтры (AutoFilter), стили ячеек (CellStyle, Font, Fill, Borders), настройку страниц (PageSetup), изображения, фигуры, комментарии, гиперссылки, таблицы (ListObject), спарклайны (SparklineGroup), определённые имена и защиту книги/листа.

Aspose.Cells FOSS for Rust имеет лицензию MIT и нацелен на редакцию Rust 2021. Устанавливается как стандартная зависимость Cargo из репозитория GitHub — см. руководство по установке для точного указания в Cargo.toml. Ошибки выводятся через обычные типы Result (CellsError), а загрузка XLSX предлагает варианты восстановления (LoadOptions) с структурированной диагностикой (LoadDiagnostics). Для корпоративного семейства продуктов см. Aspose.Cells — Enterprise Product Family.

Управление рабочей книгой и листом

  • Создавайте пустые рабочие книги с Workbook::new или загружайте существующие файлы с Workbook::load_xlsx
  • Добавляйте и получайте доступ к листам через add_worksheet, worksheet и изменяемые коллекции листов
  • Сохраняйте на диск с помощью save, save_xlsx или явно указывая формат save_with_format
  • Управляйте представлениями рабочей книги, настройками и свойствами документа

Где это подходит

  • Сервисы бэкенда, генерирующие XLSX-отчёты без установленного Office
  • Инструменты CLI, которые пакетно создают или постобрабатывают таблицы
  • Конвейеры данных на Rust, экспортирующие табличные результаты для бизнес-пользователей

Данные ячейки, формулы и типы

  • Типизированные сеттеры: put_value_string, put_value_i32, put_value_bool, put_value_decimal, put_value_date_time
  • Записывайте формулы с кэшированными результатами через put_formula_with_cached_value
  • Читайте значения обратно с помощью display_string_value и value_type
  • Обращайтесь к ячейкам по имени A1 или индексу строки/столбца (get, get_by_index)

Практические применения

  • Финансовый экспорт, где формулы должны открываться с правильными кэшированными значениями
  • Шаблоны ввода данных с типизированными столбцами
  • Двустороннее редактирование пользовательских книг

Стилизация и макет

  • Оформление ячеек через CellStyle с Font, Fill и Borders
  • Применение целевых обновлений стилей с помощью StyleFlag
  • Форматирование чисел через NumberFormat
  • Печать и макет страницы через PageSetup (размер бумаги, ориентация, поля)
  • Заморозка областей с FreezePane; управление видимостью строк/столбцов

Почему это важно

  • Брендированные, готовые к печати отчёты прямо из сервисов Rust
  • Читаемые экспорты с правильными форматами чисел и дат
  • Большие листы, остающиеся навигационными благодаря замороженным строкам заголовков

Диаграммы, изображения и фигуры

  • Добавьте столбчатые, линейные и другие типы диаграмм через ChartType в коллекции диаграмм листа
  • Считайте привязки диаграмм и их типы из загруженных файлов (Chart, ChartCollection)
  • Встраивайте изображения с помощью Picture и рисуйте фигуры с помощью Shape
  • Компактно отображайте внутриклеточные тенденции с помощью SparklineGroup

Сценарии использования

  • Дашборды и рабочие книги KPI, генерируемые по расписанию
  • Визуальные сводки, встроенные рядом с исходными данными
  • Автоматическое размещение диаграмм из диапазонов данных

Анализ данных и защита

  • Правила условного форматирования через FormatCondition
  • Правила проверки данных через Validation с OperatorType
  • Автофильтры через AutoFilter; структурированные таблицы через ListObject
  • Определённые имена через DefinedName; защита через WorkbookProtection и WorksheetProtection
  • Надёжная загрузка XLSX с флагами восстановления LoadOptions и LoadDiagnostics

Кому это выгодно

  • Команды, отправляющие проверенные рабочие книги ввода данных
  • Сервисы, принимающие сторонние файлы XLSX, которые могут потребовать ремонта
  • Аналитики, получающие предварительно отфильтрованные, защищённые отчёты

Создать, сохранить и перезагрузить рабочую книгу

Создайте рабочую книгу, запишите типизированные значения и формулу с кэшированным результатом, сохраните её как XLSX и загрузите обратно:

use aspose_cells_foss_rust::{CellValue, Workbook};
use std::error::Error;

fn main() -> Result<(), Box<dyn Error>> {
    // Create a new workbook (starts with one sheet, "Sheet1").
    let mut workbook = Workbook::new();
    {
        let mut worksheets = workbook.get_worksheets_mut();
        let sheet = worksheets.get(0)?;
        let mut cells = sheet.get_cells_mut();

        cells.get("A1")?.put_value_string("Hello")?;
        cells.get("B1")?.put_value_i32(123)?;
        cells.get("C1")?.put_value_bool(true)?;
        cells.get("D1")?.put_value_decimal(12.5)?;
        cells.get("F1")?.put_value_i32(10)?;
        cells.get("G1")?
            .put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;
    }
    workbook.save("hello.xlsx")?;

    // Load it back.
    let loaded = Workbook::load_xlsx("hello.xlsx")?;
    let sheet = loaded.worksheet("Sheet1")?;
    let cells = sheet.get_cells();
    println!("A1 = {}", cells.get("A1")?.display_string_value());

    Ok(())
}

Загрузка файлов XLSX с параметрами восстановления

Открывайте книги защитно с флагами восстановления LoadOptions и проверяйте структурированную диагностику загрузки:

let options = LoadOptions {
    try_repair_package: true,
    try_repair_xml: true,
    ..LoadOptions::default()
};

let loaded = Workbook::load_xlsx_with_options(&valid_path, &options)?;
let sheet = loaded.worksheet("Sheet1")?;
let cells = sheet.get_cells();

println!("Saved: {}", valid_path.display());
println!(
    "Loaded workbook with {} worksheet(s) and {} diagnostic issue(s).",
    loaded.get_worksheets().count(),
    loaded.get_load_diagnostics().issues().len()
);

Добавить диаграммы из диапазонов данных

Заполните диапазон данных, а затем привяжите к нему столбчатую и линейную диаграммы:

let mut charts = sheet.get_charts();
charts.add(
    ChartType::Column,
    "Charts!$B$1:$B$13".to_string(),
    0,
    4,
    18,
    8,
)?;
charts.add(
    ChartType::Line,
    "Charts!$C$1:$C$13".to_string(),
    0,
    9,
    18,
    13,
)?;

Часто задаваемые вопросы

Какую лицензию использует Aspose.Cells FOSS for Rust?

Крейт выпускается под лицензией MIT; полный текст доступен в репозитории как LICENSE.txt.

Можно ли использовать его в коммерческих продуктах?

Да. Лицензия MIT разрешает коммерческое использование, модификацию и распространение, при условии сохранения уведомления об авторских правах и лицензии.

Как установить crate?

Добавьте aspose-cells-foss-rust в ваш Cargo.toml в качестве git-зависимости из репозитория GitHub.

Какие форматы можно читать и записывать?

XLSX, с полным циклическим чтением и записью через Workbook::load_xlsx и save. Другие форматы электронных таблиц не поддерживаются в текущем выпуске.

Требуется ли Microsoft Office?

Нет. Библиотека читает и записывает формат пакета XLSX напрямую — нет установки Office, автоматизации COM или внешней среды выполнения.

  

Ресурсы поддержки и обучения

 Русский