Введение
Управление электронными таблицами является ядром крейта aspose-cells-foss-rust: объектов, моделирующих рабочую книгу, её листы и их ячейки, а также операций, преобразующих данные Rust в презентабельные файлы XLSX. Эта статья проходит по этой поверхности — от создания листов и записи типизированных значений до стилизации, разметки страниц и структурных функций, делающих рабочие книги удобными: комментарии, гиперссылки, таблицы и определённые имена.
Всё, что показано здесь, является частью открытого, лицензированного по MIT crate. Установка Microsoft Office ни при каком этапе не требуется; библиотека читает и записывает формат пакета XLSX напрямую.
Этот раздел был проверен в соответствии с текущей моделью исходного кода для последнего поведения продукта и охвата API.
Ключевые возможности
Листы и коллекции ячеек
Листы управляются через коллекции листов рабочей книги. Листы обращаются по индексу или имени, переименовываются с помощью set_name, а их ячейки доступны через get_cells (чтение) или get_cells_mut (запись):
let mut workbook = Workbook::new();
{
let mut worksheets = workbook.get_worksheets_mut();
let sheet = worksheets.get(0)?;
sheet.set_name("Charts")?;
{
let mut cells = sheet.get_cells_mut();
cells.get("A1")?.put_value_string("Month")?;
cells.get("B1")?.put_value_string("Sales")?;
}
}
Типизированные значения по имени или индексу
Ячейки принимают строки, целые числа, булевы значения, десятичные числа и даты/время через типизированные сеттеры. Ячейки можно адресовать в стиле A1 (get("B3")) или численно (get_by_index(row, column)), что удобно для сгенерированных макетов:
for month in 1..=12_u32 {
cells
.get_by_index(month, 0)
.put_value_string(format!("Month {month}"))?;
cells
.get_by_index(month, 1)
.put_value_i32((month as i32 * 1000) + (month as i32 * 50))?;
}
Формулы с кэшированными значениями
put_formula_with_cached_value сохраняет текст формулы вместе со значением, которое Excel должен отобразить до первой перерасчёта — важно, когда файл используется другими инструментами, читающими кэшированные результаты:
cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
.put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;
Оформление и макет страницы
CellStyle содержит Font, Fill и Borders; StyleFlag выбирает, какие аспекты стиля применяется при обновлении. NumberFormat управляет отображением значений, а PageSetup управляет PaperSizeType и PageOrientationType для печати. FreezePane и VisibilityType для строк/столбцов обеспечивают навигацию по большим листам.
Комментарии, гиперссылки и имена
Рабочие процессы рецензирования и навигация реализованы через Comment и CommentCollection, Hyperlink вместе с HyperlinkCollection, а также DefinedName и DefinedNameCollection для именованных диапазонов.
Структурированные таблицы и фильтры
ListObject преобразует диапазон в структурированную таблицу со стилем TableStyleType и строками TotalsCalculation; AutoFilter добавляет фильтрацию с условиями FilterColumn и FilterOperatorType.
Быстрый старт
Добавьте crate в ваш Cargo.toml как git-зависимость (crate ещё не опубликован на crates.io):
# Cargo.toml
[dependencies]
aspose-cells-foss-rust = { git = "https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Rust" }Минимальная сессия управления электронными таблицами — создать, записать, сохранить, перезагрузить:
use aspose_cells_foss_rust::{CellValue, Workbook};
use std::error::Error;
fn main() -> Result<(), Box<dyn Error>> {
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("Item")?;
cells.get("B1")?.put_value_string("Quantity")?;
cells.get("A2")?.put_value_string("Apples")?;
cells.get("B2")?.put_value_i32(12)?;
}
workbook.save("inventory.xlsx")?;
let loaded = Workbook::load_xlsx("inventory.xlsx")?;
let sheet = loaded.worksheet("Sheet1")?;
let cells = sheet.get_cells();
println!("A2 = {}", cells.get("A2")?.display_string_value());
Ok(())
}
Поддерживаемые форматы
| Формат | Расширение | Читать | Записать |
|---|---|---|---|
| XLSX | .xlsx | ✓ | ✓ |
Загрузка принимает флаги восстановления LoadOptions (try_repair_package, try_repair_xml) со структурированными LoadDiagnostics; сохранение выполняется через save, save_xlsx или save_with_format с перечислением SaveFormat.
Открытый исходный код и лицензирование
Aspose.Cells FOSS для Rust лицензируется по MIT. Исходный код находится на GitHub; коммерческое использование, модификация и перераспространение разрешены.
Начало работы
- Начало работы
- Руководство разработчика
- Работа с управлением электронными таблицами
- Статьи базы знаний
- API Reference
- Страница продукта