Робота з управлінням електронними таблицями

Робота з управлінням електронними таблицями

Робота з управлінням електронними таблицями

Керування електронними таблицями охоплює щоденний об’єктний інтерфейс crate: листи, колекції клітинок, типізовані значення, формули, стилізація та структурні можливості, які роблять робочий зошит придатним до використання. Точкою входу завжди є Workbook.


Worksheets

Листи керуються через колекції робочих листів у робочому зошиті — доступ для читання через get_worksheets, зміни — через get_worksheets_mut. Листи адресуються за індексом (get(0)) або назвою (get_by_name), перейменовуються за допомогою set_name і додаються за допомогою add_worksheet:

let mut workbook = Workbook::new();
{
    let mut worksheets = workbook.get_worksheets_mut();
    let sheet = worksheets.get(0)?;
    sheet.set_name("Data")?;
}

Доступ до клітинок та типізовані значення

Клітинки адресуються у стилі A1 або чисельно. get_by_index(row, column) підходить для згенерованих макетів:

let mut cells = sheet.get_cells_mut();
cells.get("A1")?.put_value_string("Month")?;
for month in 1..=12_u32 {
    cells
        .get_by_index(month, 0)
        .put_value_string(format!("Month {month}"))?;
}

При читанні назад, display_string_value повертає текст відображення, а value_type повідомляє збережений тип.


Формули з кешованими результатами

cells.get("F1")?.put_value_i32(10)?;
cells.get("G1")?
    .put_formula_with_cached_value("=F1*2", CellValue::Number(20.0))?;

Кешоване значення — це те, що Excel показує до першого перерахунку — надайте його, щоб користувачі файлу одразу бачили правильні результати.


Styling

CellStyle агрегує Font, Fill і Borders; StyleFlag контролює, які аспекти стилю застосовуються при оновленні, тож існуюче форматування зберігається там, де ви його не перевизначаєте. NumberFormat визначає, як відображаються значення.


Налаштування сторінки та навігація

PageSetup керує макетом друку: PaperSizeType, PageOrientationType та полями. FreezePane тримає рядки заголовків видимими під час прокручування, а видимість рядків і стовпців використовує VisibilityType.


Структура: таблиці, імена, коментарі, гіперпосилання

  • ListObject перетворює діапазон у структуровану таблицю з TableStyleType оформленням та TotalsCalculation рядками підсумків.
  • DefinedName та DefinedNameCollection керують іменованими діапазонами.
  • Comment / CommentCollection та Hyperlink / HyperlinkCollection охоплюють анотацію та навігацію.

Поради та найкращі практики

  • Тримайте змінювані запозичення (get_worksheets_mut, get_cells_mut) всередині блоку області; збережіть робочий зошит після закриття блоку.
  • Використовуйте get_by_index для циклів і згенерованих макетів; імена A1 для фіксованих позицій.
  • Застосовуйте стилі за допомогою StyleFlag, щоб інше форматування залишалося незмінним.
  • Називайте важливі діапазони за допомогою DefinedName замість жорсткого кодування адрес.

Поширені проблеми

ПроблемаПричинаВиправлення
Помилка запозичення під час збереження книгиЗапозичення змінюваного листа все ще існуєЗакрийте блок області перед викликом save
Формула показує 0 в ExcelНе вказано кешоване значенняВикористовуйте put_formula_with_cached_value з очікуваним результатом
Лист не знайденоНевідповідність іменіАдреса за індексом або перевірте правопис set_name

FAQ

Як додати другий лист?

Викличте add_worksheet на робочій книзі, потім отримайте його через колекцію листів за індексом або назвою.

Чи можна читати і записувати в одному проході?

Так — завантажте за допомогою Workbook::load_xlsx, змінюйте через get_worksheets_mut та save у той самий або новий шлях.

Чи перетворюють типізовані сеттери значення?

Конверсії не застосовуються: кожен сеттер put_value_* зберігає свій рідний тип; display_string_value відображає текст під час читання.


API Reference Підсумок

Клас/МетодОпис
Workbook.add_worksheetДодайте лист до робочої книги
Worksheet.set_nameПерейменувати лист
Worksheet.get_cells_mutЗмінна колекція клітинок
CellMut.put_value_stringВстановлювач типізованого рядка
CellMut.put_formula_with_cached_valueФормула плюс кешований результат
CellStyleФорматування шрифту, заповнення та обводки
StyleFlagВибирає, які аспекти стилю застосовуються
PageSetupДрук та розмітка сторінки
ListObjectСтруктуровані таблиці

Дивіться також

 Українська