使用电子表格管理

使用电子表格管理

使用电子表格管理

电子表格管理涵盖了 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 聚合 FontFillBordersStyleFlag 控制更新应用的样式方面,从而在未覆盖的地方保留现有格式。NumberFormat 决定数值的呈现方式。


页面设置与导航

PageSetup 管理打印布局:PaperSizeTypePageOrientationType 和页边距。FreezePane 在滚动时保持标题行可见,行和列的可见性使用 VisibilityType


结构:表格、名称、批注、超链接

  • ListObject 将范围转换为结构化表格,使用 TableStyleType 样式和 TotalsCalculation 合计行。
  • DefinedNameDefinedNameCollection 管理命名范围。
  • Comment / CommentCollectionHyperlink / HyperlinkCollection 涵盖注释和导航。

技巧与最佳实践

  • 将可变借用(get_worksheets_mutget_cells_mut)保持在作用域块内;块关闭后保存工作簿。
  • 使用 get_by_index 进行循环和生成布局;使用 A1 名称表示固定位置。
  • 使用 StyleFlag 应用样式,以免影响其他格式。
  • 使用 DefinedName 为重要范围命名,而不是硬编码地址。

常见问题

问题原因修复
保存工作簿时的借用错误可变工作表的借用仍然存在在调用 save 之前关闭作用域块
公式在 Excel 中显示为 0未提供缓存值使用 put_formula_with_cached_value 以获得预期结果
未找到工作表名称不匹配按索引地址或检查 set_name 拼写

FAQ

我该如何添加第二个工作表?

在工作簿上调用 add_worksheet,然后通过工作表集合按索引或名称获取它。

我可以在同一次操作中读取和写入吗?

是的 — 使用 Workbook::load_xlsx 加载,通过 get_worksheets_mut 进行修改,并使用 save 保存到相同或新的路径。

类型化的 setter 会转换值吗?

不进行任何转换:每个 put_value_* setter 存储其原生类型;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结构化表格

另请参阅

 中文