使用 Workbook Model Layer

使用 Workbook Model Layer

使用工作簿模型层

在面向用户的 API 之下,crate 保持一个纯数据模型层,映射 XLSX 包:值结构体、规则模型和共享存储。大多数应用程序从不直接触及这些类型,但当你深入检查已加载的工作簿或为 crate 本身做贡献时,它们会显现出来。


值类型

ColorValue 将 ARGB 颜色分量作为普通的 a、r、g、b 字段存储,并使用 equals 和 get_hash_code 进行比较。模型层的数字格式位于 NumberFormatValue,它支持 clone 用于在模型记录之间复制格式定义。


规则模型

数据质量规则有模型对应:ValidationModel 将规则的 areas、validation_type、alert_style、operator,以及 formula1 / formula2 表达式公开为字段;FormatConditionModel 和 ConditionalFormattingModel 在条件格式记录中扮演相同的角色。这些通过 default 构建,并逐字段填充。


共享字符串存储

XLSX 文件在 shared-strings 表中存储重复的单元格文本。SharedStringRepository 将其建模为 interner:

  • intern 添加一个字符串并返回其索引(复用已有条目),
  • try_get_value 将索引解析回对应的字符串,
  • clear 重置 repository。

Diagnostics

DiagnosticBag 通过收集结构化问题 add 在模型操作期间。在 API 级别,同样的信息通过…到达您 LoadDiagnostics 在加载工作簿时 — 请参见 功能概览.


提示与最佳实践

  • 优先使用面向用户的 API(Workbook、Worksheet、cell collections)——常规电子表格工作不需要模型层。
  • 将模型结构体视为数据记录:使用 default 构造,然后显式设置字段。
  • 在调查损坏的文件时,将 LoadOptions 修复标志与加载器报告的诊断信息结合使用。

常见问题

问题原因修复
重复的共享字符串绕过 interner通过 SharedStringRepository.intern 路由文本
验证规则被忽略模型字段不完整在 ValidationModel 上设置 validation_type、operator 和 formula1

FAQ

我需要模型层来写电子表格吗?

不。Workbook API 包括创建、编辑和保存工作簿;模型层为其提供支撑。

为什么模型结构体使用 default 构造函数?

它们是映射 XLSX 结构的普通数据记录——default 提供一个空记录,您可以逐字段填充。


API Reference 概述

类/方法描述
ColorValueARGB 颜色记录 (a, r, g, b)
NumberFormatValue.clone复制数字格式定义
ValidationModel验证规则记录(区域、运算符、公式)
FormatConditionModel.default空的条件格式规则记录
SharedStringRepository.intern对字符串进行驻留,返回其索引
SharedStringRepository.try_get_value解析 interned 索引
DiagnosticBag.add记录结构化诊断

另请参阅

 中文