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