Trabalhando com a Camada de Modelo de Workbook
Trabalhando com a Camada de Modelo da Pasta de Trabalho
Abaixo da interface voltada ao usuário API, o crate mantém uma camada de modelo de dados simples que espelha o pacote XLSX: structs de valor, modelos de regras e armazenamento compartilhado. A maioria das aplicações nunca manipula esses tipos diretamente, mas eles aparecem quando você inspeciona pastas de trabalho carregadas em profundidade ou contribui para o próprio crate.
Tipos de Valor
ColorValue transporta componentes de cor ARGB como campos simples a, r, g, b, com equals e get_hash_code para comparações. A formatação numérica no nível do modelo reside em NumberFormatValue, que suporta clone para copiar definições de formato entre registros de modelo.
Modelos de Regra
As regras de qualidade de dados têm gêmeos de modelo: ValidationModel expõe os areas, validation_type, alert_style, operator da regra, e as expressões formula1 / formula2 como campos; FormatConditionModel e ConditionalFormattingModel desempenham o mesmo papel para registros de formatação condicional. Estes são construídos com default e preenchidos campo a campo.
Armazenamento de Strings Compartilhadas
Arquivos XLSX armazenam texto de célula repetido em uma tabela shared-strings. O SharedStringRepository modela isso como um interner:
internadiciona uma string e retorna seu índice (reutilizando entradas existentes),try_get_valueresolve um índice de volta para sua string,clearreinicia o repositório.
Diagnostics
DiagnosticBag coleta problemas estruturados via add durante as operações do modelo. No nível API a mesma informação chega até você através de LoadDiagnostics ao carregar workbooks — veja Visão geral dos recursos.
Dicas e Melhores Práticas
- Prefira o API voltado ao usuário (
Workbook,Worksheet, coleções de células) — a camada de modelo não é necessária para trabalhos rotineiros com planilhas. - Trate structs de modelo como registros de dados: construa com
default, então defina os campos explicitamente. - Ao investigar arquivos malformados, combine as flags de reparo
LoadOptionscom os diagnósticos que o carregador relata.
Problemas Comuns
| Problema | Causa | Correção |
|---|---|---|
| Strings compartilhadas duplicadas | Contornando o interner | Encaminhar texto através de SharedStringRepository.intern |
| Regra de validação ignorada | Campos do modelo incompletos | Defina validation_type, operator e formula1 em ValidationModel |
FAQ
Preciso da camada de modelo para escrever planilhas?
Não. O Workbook API cobre a criação, edição e salvamento de pastas de trabalho; a camada de modelo a sustenta.
Por que structs de modelo utilizam construtores default?
São registros de dados simples que espelham as estruturas XLSX — default fornece um registro vazio que você preenche campo a campo.
API Reference Resumo
| Classe/Método | Descrição |
|---|---|
ColorValue | Registro de cor ARGB (a, r, g, b) |
NumberFormatValue.clone | Copiar uma definição de formato numérico |
ValidationModel | Registro de regra de validação (áreas, operador, fórmulas) |
FormatConditionModel.default | Registro de regra de formatação condicional vazio |
SharedStringRepository.intern | Internar uma string, retornando seu índice |
SharedStringRepository.try_get_value | Resolver um índice internado |
DiagnosticBag.add | Registrar um diagnóstico estruturado |