Membros adicionais da API da biblioteca
Esta página completa a referência dos tipos públicos que dão suporte às APIs principais de pasta de trabalho, planilha, renderização, importação, diagnósticos e visualizador, mas não exigem um guia separado orientado a tarefas
Filtragem e formatação condicional
TXLSAutofilter | Add, AddAutofilterData, AssignFrom, Cleare ParseAutofilterData editam ou importam a definição do filtro; SetRangeBounds(ARow1, ACol1, ARow2, ACol2) restaura limites inclusivos de base 1 sem remover critérios carregados nem formas de dropdown, e ignora limites não positivos ou invertidos e uma contagem de colunas que difere dos campos carregados; Defined, FirstRow, FirstCol, LastCol, LastRowe FieldCount expõem seus limites ativos e a contagem de colunas filtradas |
TXLSAutofilterItem | Shape expõe o desenho do botão de filtro associado ao item, e o critério de filtro carregado está disponível como um record de operando TXLSAutofilterDOPER — DataType seleciona a forma do operando e grbitSgn carrega os bits de sinal e de sinalizadores — para inspeção ou edição round-trip |
TXLSDataBarSpec | AxisColor, AxisIsThemeColor, AxisThemeColorId, AxisThemeColorTinte ClearAxisThemeColor controlam o eixo; Direction, GradientFill, NegativeBarBorderColorSameAsPositive, NegativeBarColor, NegativeBarColorSameAsPositivee NegativeBorderColor controlam a aparência das barras; IsIndexedColor, IndexedColorIndexe ClearIndexedColor gerenciam a cor da barra por índice de paleta |
TXLSIconSetSpec | ThresholdEqualsInclude seleciona comparação inclusiva ou exclusiva para cada limite de ícone |
TXLSCfValue | IsIndexedColor e IndexedColorIndex informam uma cor de limite armazenada como índice de paleta herdado, ClearIndexedColor remove novamente essa forma, e cores de tema ou literais permanecem disponíveis pelos acessadores existentes |
TXLSCfValue, TXLSDataBarSpec, TXLSColorScaleSpec, TXLSIconSetSpece TXLSDxfStyle aceitam AttachWriteGuardOwner, vinculando o objeto de regra à sua pasta de trabalho proprietária para que as edições adquiram automaticamente uma proteção de gravação; o proprietário implementa TXLSCondFormatWriteGuardOwner, cujo único método AcquireWriteGuard entrega à regra a proteção de gravação da pasta de trabalho. TXLSDxfStyle adiciona FontColorIndex com FontColorIsIndexed , além dos pares FillFgColorIndex / FillFgColorIsIndexed e FillBgColorIndex / FillBgColorIsIndexed para cores de regra por índice de paleta, e os overrides de fonte diferencial FontName, FontSizee FontScheme (string vazia, um tamanho em pontos ou um slot de fonte do tema como major / minor) ao lado dos membros existentes de negrito, itálico, sublinhado e cor; cada atribuição adquire a proteção de gravação e marca a regra como dirty para reemissão
TXLSConnections, TXLSDataTablese TXLSQueryTables expõem OnAcquireWriteGuard (tipos TXLSConnectionAcquireWriteGuard, TXLSDataTableAcquireWriteGuarde TXLSQueryTableAcquireWriteGuard), o gancho que seus caminhos de edição usam para obter o IXLSWorkbookWriteGuard da pasta de trabalho proprietária antes de mutar e para avançar a geração da pasta de trabalho em seguida; a proteção registra StartGeneration, e Complete marca a gravação como concluída para que caches dependentes possam ser reconstruídos
Conexões de dados preservadas carregam uma descrição tipada: TXLSConnectionKind (xlckUnknown, xlckOdbc, xlckDao, xlckFile, xlckWeb, xlckOleDb, xlckText, xlckAdo) classifica a conexão, TXLSConnectionCredentials (xlccIntegrated, xlccNone, xlccStored, xlccPrompt) registra seu modo de autenticação, e cada valor de parâmetro de conexão é marcado com TXLSConnectionParameterValueKind (xlcpvNone, xlcpvBoolean, xlcpvDouble, xlcpvInteger, xlcpvString, xlcpvCell). Tabelas de dados what-if informam o tipo de definição armazenado por meio de TXLSDataTableKind
Tabelas de dados What-If e agrupamento dinâmico
TXLSDataTable | Assign, ContainsCelle IsRoot copiam e examinam uma tabela; Kind, FirstRow, FirstCol, LastCol, LastRow, AlwaysCalculate, ColumnInputCol, ColumnInputRow, ColumnInputDeleted, RowInputCol, RowInputRowe RowInputDeleted expõem a definição de cálculo armazenada |
TXLSDataTables | Add, AddExisting, Delete, Clear, Assign, AdjustForShifte Offset mantêm a coleção; FindByCell e FindRoot localizam a tabela que contém determinada célula ou que está enraizada nela; Count, Itemse OnChange expõem o estado da coleção |
TXLSPivotCacheField | GroupBaseField e GroupParentField expõem as relações entre um campo agrupado e seu campo de origem ou pai |
Limites de conjuntos de ícones podem ser renderizados ou validados programaticamente: XLSCfIconSetCount informa quantos ícones um TXLSIconSetType define, e XLSBuildCfIconGeometry preenche um TXLSCfIconGeometry com as primitivas (TXLSCfIconPrimitive, tipo TXLSCfIconPrimitiveKind: cfipPolygon, cfipEllipse, cfipRect, cfipLine) e os pontos (TXLSCfIconPoint) que desenham um ícone, para que renderizadores personalizados acompanhem as formas de ícone internas do Excel
Diagnósticos, rastreamento de fórmulas e validação
TXLSDiagnostic | Code, NativeCode, Message, Severity, ExceptionClass, PartName, RecordId, SheetIndex, SheetNamee StreamOffset identificam um diagnóstico de analisador, gravador ou pacote |
TXLSDiagnostics | Add anexa um diagnóstico, Clear redefine a coleção, e Count mais Items enumeram suas entradas |
TXLSDiagnosticSeverity and TXLSDiagnosticOperation | TXLSDiagnosticSeverity (xlsDiagnosticInfo, xlsDiagnosticWarning, xlsDiagnosticError, xlsDiagnosticFatal) classifica um diagnóstico e TXLSDiagnosticOperation (xlsOperationNone, xlsOperationOpen, xlsOperationSave, xlsOperationCalculate, xlsOperationExport) nomeia a fase que o produziu; os manipuladores de OnDiagnostic leem ambos do TXLSDiagnostic |
TXLSFormulaDebugSession | CurrentStep, DependencyCount, NodeCounte StepCount expõem o instantâneo atual do depurador e os tamanhos de seu rastreamento |
TXLSFormulaTracer | StepCount informa o número de etapas de avaliação registradas |
TXLSImportCheck | AddRule, AddUniqueRulee AddCrossColumnRule configuram predicados de coluna, unicidade composta e comparações tipadas; Check retorna violações estruturadas a partir de valores armazenados da planilha e de caches de fórmulas, sem recálculo nem materialização de células empacotadas; HeaderRow, FirstRow, LastRow, OnVerifyCell, ViolationCounte Violation expõem limites, callbacks e resultados; Annotatee KeepOnlyViolations são operações explícitas de pasta de trabalho de correção; veja esquemas de validação de importação para tipos, limites, sistemas de datas, identidade de tuplas e comportamento de falha |
Esquemas de validação de importação
TXLSImportCheck de lxImportCheck valida uma TXLSXWorksheet contra regras de propriedade da aplicação; ele examina valores escalares armazenados e resultados de fórmulas armazenados, com coordenadas de planilha de base 1 e nenhuma conversão implícita de texto para número, de texto para data ou de texto para booleano
Validator := TXLSImportCheck.Create;
try
Validator.HeaderRow := 1;
Rule := Validator.AddRule(2);
Rule.Name := 'quantity';
Rule.Flags := [irRequired, irValueType, irValueRange];
Rule.ValueKind := ivkInteger;
Rule.MinimumValue := 1;
Rule.MaximumValue := 1000;
Validator.AddUniqueRule([1, 3]).Name := 'account-and-region';
Validator.AddCrossColumnRule(4, 5, icLessOrEqual).Name := 'start-before-end';
FailureCount := Validator.Check(Sheet);
if FailureCount > 0 then
Validator.Annotate(Sheet, 'Import validator');
finally
Validator.Free;
end;HeaderRow > 0 inicia a verificação na linha seguinte e tem precedência sobre FirstRow; caso contrário, FirstRow tem como padrão 1; LastRow = 0 usa a última linha usada da planilha, enquanto um LastRow positivo pode incluir células ausentes sem criá-las; as colunas devem estar entre 1 e 16.384, e os limites ativos de linhas de dados entre 1 e 1.048.576
Regras de coluna e tipos explícitos
TlxImportColumnRule | Column, Flags, Name, Title, MinLength, MaxLength, Pattern, ValueKinde DateSerialMode configuram uma coluna; MinimumValue, MaximumValue, HasMinimum, HasMaximum, MinimumInclusivee MaximumInclusive configuram limites; Validate verifica a configuração do esquema e PreparePattern prepara a regex; os dois overloads de Check retornam um booleano com uma mensagem de erro e, opcionalmente, um TlxImportViolationKind |
TlxImportRuleFlags | irRequired, irTextLength, irPattern, irUniquee irCallback retêm as verificações existentes deles; irValueType habilita ValueKinde irValueRange habilita os limites configurados; uma coluna sem flags não é verificada |
TlxImportValueKind | ivkAny aceita valores escalares finitos suportados, ivkNumber aceita Variants numéricos finitos, ivkInteger exige adicionalmente um valor integral, ivkDate aceita Variants de data ou seriais do Excel explicitamente habilitados, ivkBoolean exige um Variant booleano, e ivkText exige um Variant de string |
TlxImportDateSerialMode | idsNone é o padrão e mantém valores numéricos distintos de datas; idsExcel1900e idsExcel1904 interpretam explicitamente valores numéricos para uma coluna usando irValueType com ValueKind = ivkDate |
AddRule(Column) substitui e libera qualquer regra anterior para aquela coluna; os predicados por valor de tipo, intervalo, comprimento e padrão pulam valores ausentes, nulls e strings vazias, enquanto irRequired os reporta; a unicidade retém as políticas distintas descritas abaixo; espaço em branco não vazio permanece um valor; um número não se qualifica como booleano, uma data não se qualifica como número comum, e uma string com aparência numérica permanece texto
Atribuir MinimumValue ou MaximumValue habilita aquele limite; HasMinimum ou HasMaximum pode desabilitá-lo novamente; ambos os switches de inclusividade têm True como padrão; os limites devem ser números ou datas tipados finitos, e dois limites devem ser comparáveis e descrever um intervalo não vazio; limites invertidos, ausentes, incompatíveis ou vazios geram exceção antes do início da validação da planilha
Limites numéricos comparam valores numéricos e limites de data comparam datas; comparações de inteiro para inteiro preservam todos os bits de Int64 e UInt64; valores de uma categoria incompatível falham na verificação de intervalo; predicados de comprimento de texto e de regex continuam a inspecionar a representação de texto do escalar, e as verificações de regex retêm o comportamento IsMatch existente, então use âncoras como ^...$ quando o texto completo deve corresponder; uma regex inválida desabilita sua verificação de padrão por compatibilidade
Valores do Excel com formato de data
Uma célula importada do Excel pode conter um serial numérico mesmo quando seu formato numérico exibe uma data; escolha um modo de serial explicitamente quando esse for o esquema de importação aceito; o modo afeta apenas a validação e nunca muda o valor armazenado da célula
Rule := Validator.AddRule(4); Rule.Flags := [irRequired, irValueType, irValueRange]; Rule.ValueKind := ivkDate; if Sheet.Workbook.Date1904 then Rule.DateSerialMode := idsExcel1904 else Rule.DateSerialMode := idsExcel1900; Rule.MinimumValue := VarFromDateTime(EncodeDate(2026, 1, 1)); Rule.MaximumValue := VarFromDateTime(EncodeDate(2026, 12, 31));
VarFromDateTime é declarado em Variantse EncodeDate em SysUtils; seriais numéricos devem ser não negativos e resolver antes de 1º de janeiro de 10000; seriais fracionários retêm sua hora do dia; o sistema 1900 rejeita todo serial de 60 inclusive a 61 exclusivo, porque esse intervalo denota o dia bissexto fictício; o sistema 1904 mapeia o serial zero para 1º de janeiro de 1904
Limites de data incluem a hora do dia, de modo que um máximo definido como meia-noite de 31 de dezembro exclui horários posteriores naquele dia; use um limite superior exclusivo em 1º de janeiro do ano seguinte quando o dia final inteiro deve ser aceito; datas textuais como 10/08/2026 permanecem texto, independentemente do modo de serial configurado
Unicidade composta e comparações entre colunas
AddUniqueRule(const AColumns: array of Integer): TlxImportUniqueRule | Acrescenta uma restrição de tupla independente sobre uma lista ordenada e não vazia de colunas distintas; Name identifica a regra, Title prefixa a mensagem dela, ColumnCounte Columns[Index] de base zero expõem seus membros, e SkipIncompleteRows tem True como padrão |
AddCrossColumnRule(ALeftColumn, ARightColumn: Integer; AComparison: TlxImportComparison): TlxImportCrossColumnRule | Acrescenta uma comparação de mesma linha com LeftColumne RightColumn somente leitura, uma Comparison editável, Name, Titlee SkipBlankValues, que tem True como padrão |
TlxImportComparison | icEqual, icNotEqual, icLess, icLessOrEqual, icGreatere icGreaterOrEqual selecionam a relação; pares numéricos e pares de datas comparam seus valores, pares booleanos ordenam False antes de True, e pares de strings comparam unidades de código UTF-16 de forma ordinal e sensível a maiúsculas |
Chaves compostas retêm o tipo Variant exato e a identidade de texto de cada membro; Integer(1), Double(1), a string '1', um booleano e uma data são membros distintos; não há case folding, normalização Unicode, análise de localidade nem ambiguidade de delimitador; combinações como ('ab', 'c')e ('a', 'bc') permanecem diferentes; cada passada de validação inicia um índice de tuplas novo
Quando SkipIncompleteRows = True, um membro ausente, nulo ou de string vazia exclui aquela linha da unicidade de tuplas; defini-lo como False inclui esses membros com suas identidades Variant originais; uma duplicata informa a primeira coluna da tupla como endereço de célula e a primeira linha correspondente por meio de FirstDuplicateRow
O irUnique existente de coluna única retém seu comportamento de correspondência baseado em texto e insensível a maiúsculas, e pula valores ausentes ou nulos; use AddUniqueRule([Column]) quando identidade tipada estrita for exigida para uma coluna
Comparações entre colunas nunca convertem strings em números, números em booleanos ou números comuns em datas; categorias mistas incompatíveis falham mesmo para icNotEqual; comparações de strings distinguem Unicode composto e decomposto, preservam caracteres nulos embutidos e usam ordenação de prefixo mais curto primeiro; quando SkipBlankValues = False, qualquer operando em branco produz uma violação entre colunas
Resultados estruturados e pastas de trabalho de correção
TlxImportViolation | Row, Col, SheetNamee Address identificam a célula, com Address em notação A1; ValueTexte ErrorText carregam informações de exibição; RuleNamee Kind identificam a regra configurada e a categoria de falha; RelatedColumn identifica o segundo operando de uma falha entre colunas, e FirstDuplicateRow identifica a linha original para falhas de unicidade |
TlxImportViolationKind | ivRequired, ivTextLength, ivPattern, ivUnique, ivCallback, ivValueType, ivValueRange, ivCellError, ivFormulaCacheMissing, ivCompositeUniquee ivCrossColumn distinguem as categorias de falha suportadas |
Check(Sheet) retorna o número de violações, e ViolationCount mais Violation(Index) de base zero enumeram o relatório; uma regra de coluna informa seu primeiro predicado que falha, enquanto regras de tupla e de comparação configuradas de forma independente podem acrescentar mais violações para a mesma célula; atribua valores significativos de Name quando os chamadores precisarem de identificadores estáveis de regras da aplicação
Células de fórmula são validadas usando seus valores em cache armazenados; uma fórmula sem resultado em cache armazenado reporta ivFormulaCacheMissing, e um resultado de erro reporta ivCellError; recalcule explicitamente antes de verificar quando resultados de fórmulas atualizados forem exigidos; a validação não acessa fontes externas, não altera definições de fórmulas nem avalia fórmulas sem cache
OnVerifyCell retém a assinatura de callback TlxImportVerifyCell e roda após predicados de coluna aplicáveis bem-sucedidos e verificações de unicidade; ele retorna um booleano e pode definir uma mensagem de erro da aplicação; os callbacks devem manter a pasta de trabalho e o esquema de validação inalterados, e gravações na pasta de trabalho são rejeitadas pela concessão de leitura; exceções de callback propagam, e a concessão é liberada para operações subsequentes
Check nunca anota, exclui linhas nem materializa valores empacotados; use Annotate após a verificação para aplicar fontes vermelhas e acrescentar texto de erro a comentários existentes, ou chame explicitamente KeepOnlyViolations para remover linhas sem violação e criar uma pasta de trabalho de correção; esses métodos modificam a planilha fornecida, então chame-os na pasta de trabalho pretendida após revisar o relatório
A validação empresta a planilha e a pasta de trabalho para a chamada síncrona; ela não adota a propriedade de objetos do chamador nem exige uma pasta de trabalho de propriedade de interface; uma concessão de leitura protege os snapshots relevantes de células armazenadas e o acesso ao cache de fórmulas armazenado durante toda a verificação
Políticas de salvamento de vínculos externos
TXLSExternalLinkUpdateMode = (xluPromptUser, xluNever, xluAlways);
property IXLSWorkbook.SaveExternalLinkValues: Boolean;
property IXLSWorkbook.UpdateLinks: TXLSExternalLinkUpdateMode;
property TXLSXWorkbook.SaveExternalLinkValues: Boolean;
property TXLSXWorkbook.UpdateLinks: TXLSExternalLinkUpdateMode;
xluPromptUser; xluNever e xluAlways apenas alteram a preferência de atualização armazenada na pasta de trabalho e nunca autorizam ou iniciam acesso externo a arquivos ou à rede
Auditoria de cálculo e dicas da pasta de trabalho
function TXLSWorkbook.RecalcAndVerify(MaxIssues: Integer = 10000): TXLSCalculationAuditReport;
function TXLSXWorkbook.RecalcAndVerify(MaxIssues: Integer = 10000): TXLSCalculationAuditReport;
function TXLSWorkbook.RecalcAndVerifyEx(const Options: TXLSRecalcAuditOptions): TXLSCalculationAuditReport;
function TXLSXWorkbook.RecalcAndVerifyEx(const Options: TXLSRecalcAuditOptions): TXLSCalculationAuditReport;
function TXLSWorkbook.RunCalculationAudit(const Options: TXLSRecalcAuditOptions): TXLSCalculationAuditReport;
function TXLSWorkbook.FormulaIsVolatile(Formula: WideString): Boolean;
function TXLSWorkbook.AuditOverlayHash(SheetIndex, Row, Col: Integer): Integer;
function TXLSWorkbook.AuditOverlayRead(SheetIndex, Row, Col: Integer; var Value: Variant): Boolean;
procedure TXLSWorkbook.AuditOverlayWrite(SheetIndex, Row, Col: Integer; const Value: Variant);
procedure TXLSWorkbook.AuditOverlayClear;
TXLSCalculationAuditIssueKind = (xlcaiCacheMismatch, xlcaiParseFailure,
xlcaiMissingFunction, xlcaiMissingName, xlcaiUnsupportedArguments,
xlcaiCircularReference, xlcaiExternalReferenceDenied,
xlcaiExternalReferenceMissing, xlcaiDataTableSkipped, xlcaiCancelled,
xlcaiInternalFailure);
TXLSCalculationAuditIssue = record
Kind: TXLSCalculationAuditIssueKind;
SheetIndex: Integer;
SheetName: WideString;
Row: Integer;
Col: Integer;
Formula: WideString;
Symbol: WideString;
Expected: Variant;
Actual: Variant;
ResultCode: Integer;
Stack: WideString;
ExternalTarget: WideString;
end;
TXLSCalculationAuditIssues = array of TXLSCalculationAuditIssue;
TXLSRecalcAuditProgress = procedure(ASender: TObject;
ACurrent, ATotal: Integer; var ACancel: Boolean) of object;
property WorkbookCodeName: WideString;
property CalculationThreadMode: TXLSCalculationThreadMode;
property ForceFullCalculationState: TXLSOptionalBooleanState;
property RefreshAllOnLoadState: TXLSOptionalBooleanState;
RecalcAndVerify combina falhas de símbolos de fórmulas e divergências de valores em cache em categorias estruturadas estáveis, com coordenadas de planilha, fórmulas, símbolos, valores esperados e obtidos, e truncamento limitado, deixando caches e a semântica da pasta de trabalho inalterados. RecalcAndVerifyEx executa a auditoria profunda: ele avalia cada fórmula uma vez por meio do grafo de dependências em uma camada de resultados isolada, para que as células dependentes leiam desta passada em vez de caches desatualizados, classifica falhas de avaliação (argumentos sem suporte, referências circulares, referências externas negadas ou ausentes, tabelas de dados ignoradas, cancelamento, falhas internas) com códigos de resultado, registra uma pilha de chamadas limitada por falha, respeita um orçamento de problemas e um coletor de progresso/cancelamento, e permanece somente leitura, a menos que ApplyResults confirme atomicamente os valores recalculados após uma passada totalmente bem-sucedida sobre uma estrutura de pasta de trabalho inalteradaAbsoluteTolerance e RelativeTolerance controlam quais divergências são reportadas, não os valores intermediários de cálculo nem a aplicação explícita de caches
Para resultados numéricos, uma divergência exige uma diferença absoluta acima de AbsoluteTolerance e, quando a tolerância relativa está habilitada, acima de RelativeTolerance * max(abs(Expected), abs(Actual))
A igualdade em qualquer um dos dois limiares é tolerada; valores alterados ainda entram no overlay da auditoria para que as fórmulas dependentes vejam o cálculo atual, e o ApplyResults confirma esses valores mesmo quando suas diferenças não são reportáveis
Uma auditoria somente leitura nunca altera os caches armazenadosTXLSCalculationAuditReport.Issues é um TXLSCalculationAuditIssue; Kind seleciona uma das categorias xlcai* , Expected / Actual carregam os valores comparados nas divergências de cache, Stack é a cadeia de chamadas de avaliação limitada renderizada como Sheet!A1 > Sheet!B2 (quadro mais externo primeiro), e ExternalTarget descreve a pasta de trabalho externa para problemas de referência externa. TXLSRecalcAuditOptions.OnProgress é um coletor TXLSRecalcAuditProgress que recebe o progresso de nós ACurrent / ATotal e pode definir ACancel para interromper a auditoria no próximo limite de nó com um único problema xlcaiCancelled issueRunCalculationAudit é o ponto de entrada do motor para o qual os wrappers de auditoria no nível da pasta de trabalho delegam e aceita o mesmo registro de opções. FormulaIsVolatile informa se uma fórmula forçaria um recálculo em cada passada (chamadas como NOW, RAND, TODAY, OFFSET, INDIRECTou uma referência não resolvível)AuditOverlayWrite armazena um valor de substituição para uma célula (índice de planilha com base um, linha e coluna com base zero, seguindo a convenção do calculador), AuditOverlayRead e AuditOverlayHash o consultam, e AuditOverlayClear esvazia a camada. Os valores sobrepostos são retornados pelos getters normais de valor de célula, de modo que o recálculo e a auditoria profunda os observam sem mutar células da planilha; limpar o overlay restaura os valores armazenadosEstado de fórmulas de tabela e IME
property TXLSXTable.ColumnCalculatedFormulaArrayStates[Index: Integer]: TXLSTableFormulaArrayState;
property TXLSXTable.ColumnTotalsFormulaArrayStates[Index: Integer]: TXLSTableFormulaArrayState;
property TDataValidation.ImeMode: TXLSDataValidationImeMode;
property TXLSXDataValidation.ImeModeKind: TXLSDataValidationImeMode;
SaveExternalLinkValues como False omite os registros clássicos XCT e CRN ou a subárvore sheetDataSet da pasta de trabalho externa XLSX, mantendo os destinos de vínculo, nomes de planilhas, nomes definidos externos, relações, referências de fórmulas, XML desconhecido e o cache em memória; restaurar a propriedade para True na mesma pasta de trabalho pode serializar novamente esse cache retido
Inspeção e remoção de painéis de tarefas de suplementos da Web
function IXLSWorkbook.HasWebAddinTaskPanes: Boolean;
function IXLSWorkbook.WebAddinTaskPaneCount: Integer;
function IXLSWorkbook.RemoveWebAddinTaskPanes: Integer;
function TXLSXWorkbook.HasWebAddinTaskPanes: Boolean;
function TXLSXWorkbook.WebAddinTaskPaneCount: Integer;
function TXLSXWorkbook.RemoveWebAddinTaskPanes: Integer;
1303 e geram uma exceção antes da mutação, enquanto o XLS clássico e o ODS retornam False, 0e -1 sem varredura do pacote
Política de exibição de objetos da pasta de trabalho
TXLSObjectDisplayMode = (xlsodmShowAll, xlsodmShowPlaceholders,
xlsodmHideAll);
property IXLSWorkbook.ObjectDisplayMode: TXLSObjectDisplayMode;
property TXLSWorkbook.ObjectDisplayMode: TXLSObjectDisplayMode;
property TXLSXWorkbook.ObjectDisplayMode: TXLSObjectDisplayMode;
property TXLSPaginationModel.ExportObjectPlaceholders: Boolean;
property TXLSPDFExport.ExportObjectPlaceholders: Boolean;
property TXLSSvgExport.ExportObjectPlaceholders: Boolean;
property TXLSPageImageExporter.ExportObjectPlaceholders: Boolean;
property TXLSPrintDocument.ExportObjectPlaceholders: Boolean;
property TXLSXHtmlExportOptions.ExportObjectPlaceholders: Boolean;
workbookPr.showObjects; valores ausentes assumem o padrão xlsodmShowAll, payloads reservados do Classic intocados e tokens XLSX sem suporte permanecem sem perdas, e atribuições explícitas emitem apenas valores canônicos
ExportObjectPlaceholders solicita a mesma política de baixo custo sem decodificar payloads de imagem ou construir cenas de gráfico
xlsodmHideAll impede a coleta de desenhos e a expansão de intervalos orientada por objetos antes do início da renderização; a conversão de pastas de trabalho transporta os três estados, o ODS grava desenhos completos no modo de espaço reservado e omite a saída de desenhos e mídia no modo hide-all, e os planos de fundo da planilha permanecem independentes
Valores e instantâneos de calibração de renderização
TXLSRenderCalibration = record
WidthCorrection: Double;
HeightCorrection: Double;
LineSpacing: Double;
CellMarginFactor: Double;
ScreenScaling: Integer;
MeasurementDpi: Integer;
end;
function XLSDefaultRenderCalibration: TXLSRenderCalibration;
function XLSValidateRenderCalibration(const AValue: TXLSRenderCalibration;
out AInvalidField: TXLSRenderCalibrationField): Boolean;
1, 1, 1, 1, 100e 96; as correções de largura e altura devem ser maiores que zero e menores que dois, o espaçamento entre linhas é limitado a (0, 4], as margens de célula a [0, 4], o dimensionamento de tela a [100, 500] por cento e o DPI de medição a [36, 2400]RenderCalibration, CaptureRenderCalibratione ResetRenderCalibration ; a atribuição de registro inteiro valida antes da mutação, e cada captura retorna um instantâneo de valores independente imutável por convenção para uma operação de renderização
Geometria de renderização e medição de fontes
TXLSRenderGeometryBackend = (xlsrgbAutoFit, xlsrgbPagination, xlsrgbPdf,
xlsrgbSvg, xlsrgbBitmap, xlsrgbPrintPreview, xlsrgbViewer, xlsrgbHtml);
TXLSRenderFont = record
Name: WideString;
Size: Double;
Styles: TXLSRenderFontStyles;
Charset: Byte;
end;
function CreateXLSRenderGeometry(
const ACalibration: TXLSRenderCalibration;
AWorkbookGeneration: UInt64;
ABackend: TXLSRenderGeometryBackend;
ACacheCapacity: Integer = 4096): IXLSRenderGeometry;
property TXLSHTMLExport.RenderGeometry: IXLSRenderGeometry;
property TXLSXHtmlExportSession.RenderGeometry: IXLSRenderGeometry;
IXLSRenderGeometry é proprietário de uma calibração imutável, da geração da pasta de trabalho, da identidade de backend, de um serviço de medição e de um cache de métricas limitado ao escopo da operação; CreateXLSRenderGeometry usa GDI, enquanto CreateXLSPortableCairoRenderGeometry em lxPortableCairo usa bytes de fontes explícitos com FreeType/HarfBuzz no Linux ou macOS nativos; MeasureText retorna largura em pixels, altura, altura de linha, ascensão, descensão e contagem de linhas, enquanto MaximumDigitWidthPixels, ColumnWidthToPixels, PixelsToColumnWidth, PointsToPixels, PixelsToPointse UsableCellWidthPixels fornecem as conversões de geometria compartilhadas
MarkSheet de duas fases, enquanto TXLSPaginationModel.Build captura um serviço para o RenderBackendselecionado; os pontos de entrada PDF, SVG, bitmap, visualização de impressão, visualizador de pastas de trabalho e HTML selecionam seu próprio backend antes da saída, alterar a calibração da pasta de trabalho não pode mutar um instantâneo existente, e a saída não grava dimensões de planilha
xlsrgbHtml novo, enquanto uma TXLSXHtmlExportSession incremental captura uma vez em BeginExport e reutiliza esse instantâneo para todas as planilhas; ambos os exportadores expõem o serviço retido por meio de RenderGeometry para diagnósticos de calibração e cache
IXLSRenderGeometry ( WorkbookGeneration, CacheCapacitye CacheEntryCount ) informam a geração vinculada e o preenchimento do cache para diagnósticos, e ImplicitWidthMaximumDigitWidthPixels retorna a medição de largura de dígito por trás da emulação de largura de coluna implícita
MeasureText preenche um record TXLSRenderTextMetrics (largura em pixels, altura, altura de linha, ascensão, descensão e contagem de linhas) a partir de um TXLSRenderFont cujo membro Styles é um conjunto de sinalizadores TXLSRenderFontStyle (negrito, itálico, sublinhado, tachado)
Importação, geração de código, comparação e monitoramento
TXLSHTMLImport | LoadFromHTML importam conteúdo de tabela HTML de um fluxo ou arquivo para uma planilha, com coordenadas iniciais, seleção de tabela e separador decimal opcionais |
TXLSCodeGen | Language (tipo TlxCodeGenLanguage: lcgDelphi ou lcgCppBuilder) seleciona o dialeto de origem das instruções geradas, GenerateToList grava o código gerado da pasta de trabalho em uma lista de cadeias, e TlxCodeGenOptions amplia a saída com mesclagens, larguras de coluna ou formatos numéricos (cgoMerges, cgoColumnWidths, cgoNumberFormats; planilhas e células sempre são emitidas) |
TXLSXWorkbookCompare | Compare compara células armazenadas tipadas, texto de fórmulas, presença de planilhas e mesclagens; Options acrescenta caches de fórmulas, estilos base de células e geometria de linhas ou colunas, SetNumericTolerance configura igualdade numérica, e Count, Diffe Report expõem os resultados ordenados; veja comparação de pastas de trabalho |
TXLSFileMonitor | IntervalMs seleciona o intervalo de sondagem e SynchronizeEvent seleciona a entrega sincronizada do retorno de chamada; um manipulador OnFileChanged pode desativar ou destruir o monitor, ou alterar FileName para começar a observar outro arquivo |
TXLSCSVLoader and TXLSCSVSaver | O loader analisa texto delimitado em uma grade em memória de Variants — ParseFile e ParseStream preenchem a grade, CellValue, RowCounte ColCount a leem de volta — com separador detectado automaticamente (ValueSeparator) e codificação (TXLSCsvEncoding: ANSI do sistema, UTF-16, UTF-8) e promoção de tipos opcional controlada por DetectTypes e entradas ColumnTypes por coluna (TXLSCsvColumnType: auto, texto, número, data, booleano, skip); SkipRows, AutoTrim, LocaleTolerantNumberse FieldWidths refinam o tratamento de largura fixa e de localidade. TXLSCSVSaver.SaveAs grava a grade de volta com aspas RFC 4180, e QuoteAllStrings força o uso de aspas; TXLSTSVSaver deriva do saver para saída separada por tabulação |
Comparação de pastas de trabalho
TXLSXWorkbookCompare em lxCompare compara duas instâncias de TXLSXWorkbook sem recalcular fórmulas nem modificar qualquer uma das pastas de trabalho; as planilhas são emparelhadas pelo nome sem diferenciar maiúsculas, e mudar apenas a ordem das planilhas não produz uma diferença
O valor padrão de Options é vazio, e ambas as tolerâncias têm zero como padrão; a comparação padrão reporta planilhas adicionadas ou removidas, células armazenadas adicionadas ou removidas, valores literais tipados alterados, texto de fórmulas alterado e intervalos mesclados adicionados ou removidos
A comparação de literais distingue números, texto, valores booleanos, datas, erros e células em branco: o número 1 difere do texto '1', um booleano difere de sua grafia de texto, datas retêm o próprio tipo, e erros comparam pelo código de erro armazenado; tipos de armazenamento numérico com valores iguais comparam como iguais, enquanto valores Int64 distintos permanecem distintos durante a comparação exata
lcoFormulaCachedResults | Para células com texto de fórmula correspondente, compara o resultado em cache existente e distingue um cache ausente ou invalidado de um cache disponível; caches carregados e calculados com o mesmo valor tipado comparam como iguais |
lcoCellStyles | Compara estilos base resolvidos em coordenadas armazenadas de células correspondentes, incluindo fontes, preenchimentos, gradientes, bordas, alinhamento, formatos numéricos e proteção de células; ordem de inserção não relacionada do pool de estilos não cria diferenças, e cores de tema resolvem contra o tema atual de cada pasta de trabalho |
lcoAxisGeometry | Compara alturas de linha efetivas, larguras de coluna, flags ocultas, níveis de estrutura de tópicos, flags recolhidas e padrões da planilha; um tamanho explícito igual ao padrão efetivo compara como igual a um tamanho implícito |
lcoDefinedNames | Compara nomes com escopo de pasta de trabalho e de planilha, as definições de fórmulas deles, visibilidade, comentários e flags de macro; o escopo segue os nomes das planilhas, e a ordem de inserção não cria diferenças |
lcoDataValidations | Compara definições de validação na ordem armazenada, incluindo intervalos de alvo normalizados, fórmulas, operadores, prompts, mensagens de erro e flags de controle; mudar a ordem dos intervalos de alvo dentro de uma definição não cria uma diferença |
lcoConditionalFormats | Compara definições de formato condicional na ordem armazenada, incluindo prioridade efetiva, comportamento stop-if-true, intervalos de alvo, fórmulas, estilos diferenciais e configurações suportadas de escala de cores, barra de dados e conjunto de ícones; identificadores de pool de estilos e de paleta indexada resolvem para seus valores semânticos |
lcoTables | Emparelha tabelas pelo nome e compara intervalos, cabeçalhos, totais, configurações de estilo, comentários, nomes de colunas, rótulos, fórmulas, flags de array, nomes únicos, nomes de conexões, critérios de filtro e condições de ordenação; ids de tabela, ids de coluna e ordem de inserção não criam diferenças, enquanto ids de estilo diferencial de filtro de cor e de ordenação resolvem para a aparência |
lcoDrawings | Compara definições tipadas de desenhos na ordem de desenho, retendo a ordem de filhos de grupo e a ordem de grupos de plotagem de gráficos; definições canônicas suportadas cobrem imagens, caixas de texto, gráficos, grupos, views de slicer tipadas completas e views de timeline tipadas, com nós de desenho opacos ou sem suporte gerando EXLSSemanticSnapshot |
lcoBlankStyleRegions | Compara estilos base resolvidos em coordenadas sem célula armazenada de nenhum dos lados, incluindo padrões da planilha e overlays de estilo virtuais; subdivisões retangulares equivalentes comparam como iguais, e mudanças adjacentes iguais coalescem em retângulos sem materializar células |
lcoRichTextRuns | Compara fontes efetivas de runs e texto em células de texto armazenadas correspondentes, herda a fonte base para propriedades de run omitidas, ignora runs vazios e coalesce runs adjacentes com fontes efetivas iguais; texto simples corresponde a um run de rich-text equivalente com fonte padrão |
lcoPivotTables | Emparelha definições tipadas de tabelas dinâmicas pelo nome e compara vínculos de origem, layout, campos, membros de view ordenados, agregações de dados, filtros, referências de agrupamento, definições calculadas, estilos e flags de materialização nativa; ids de cache e de membro compartilhado resolvem para identidades de origem e valores tipados |
lcoPivotCaches | Emparelha definições tipadas locais de PivotCache pela identidade de origem e compara metadados de atualização, metadados de campos, rótulos e intervalos agrupados, domínios de membros compartilhados não ordenados e valores tipados ordenados de registros; membros numéricos, de texto, booleanos, de data, de erro e vazios permanecem distintos, datas retêm precisão binary64, e ids de cache e ordem de slots de membros compartilhados não criam diferenças |
lcoSlicerState | Emparelha views e caches de slicer nomeados, incluindo vínculos de coluna de tabela ou de tabela dinâmica não OLAP, nomes de tabelas dinâmicas conectadas, seleções tipadas de membros, configurações de cross-filter e de ordenação, legenda, posição de rolagem, layout de colunas, dimensões, estilo, flags de bloqueio e de legenda, e geometria de âncora; os vínculos resolvem ids de tabela, de coluna, de planilha e de cache |
lcoTimelineState | Emparelha views de timeline tipadas nomeadas e caches locais não OLAP, incluindo vínculos de campo de origem e de tabelas dinâmicas conectadas, seleção de data ativa, legenda, nível e limites da planilha; seleções inativas omitem extremos de data não utilizados |
Options tem o tipo TlxCompareOptions, um conjunto de TlxCompareOption; habilitar uma opção acrescenta as diferenças dela à comparação padrão
SetFeatureLimits(MaxBytes, MaxItems) valida ambos os limites positivos antes de alterar qualquer uma das configurações; MaxFeatureBytes tem 64 MiB como padrão e MaxFeatureItems tem 1.000.000 como padrão, e os setters individuais preservam a mesma validação atômica
Os orçamentos de recursos cobrem os bytes canônicos destacados agregados e as entradas contadas de ambas as pastas de trabalho, incluindo runs de rich-text, nós XML de filtro, campos de tabela dinâmica, membros de domínio e valores de registro, e conexões de slicer ou de timeline; os leitores verificam contagens e entradas de texto grandes antes de construir XML nativo, impõem streams de saída limitados, e geram EXLSXSemanticBudget quando um limite é excedido
SetNumericTolerance(AbsoluteTolerance, RelativeTolerance) valida ambos os argumentos antes de alterar qualquer uma das configurações; ambos devem ser finitos e não negativos, e os setters individuais AbsoluteTolerancee RelativeTolerance usam a mesma validação
Valores literais numéricos e valores de cache numéricos comparam como iguais quando sua diferença absoluta é no máximo AbsoluteTolerance ou sua diferença relativa ao maior valor absoluto é no máximo RelativeTolerance; um limiar zero retém igualdade exata, o cálculo relativo evita overflow para valores extremos opostos, e a tolerância não converte texto nem se aplica a datas, estilos ou geometria
LeftNamee RightName definem nomes de exibição opcionais usados pelas linhas de Report, com lefte right como padrão; os nomes afetam apenas o relatório, e não o emparelhamento de planilhas nem a comparação
Comparer := TXLSXWorkbookCompare.Create;
try
Comparer.Options := [lcoFormulaCachedResults, lcoCellStyles,
lcoAxisGeometry];
Comparer.SetNumericTolerance(0.001, 0.000001);
DifferenceCount := Comparer.Compare(LeftWorkbook, RightWorkbook);
for I := 0 to DifferenceCount - 1 do
begin
Entry := Comparer.Diff(I);
ReportLines.Add(Entry.Describe);
end;
finally
Comparer.Free;
end;Compare retorna a contagem de diferenças, Count lê essa contagem depois, e Diff(Index) usa indexação de base zero para retornar um TlxCompareDiff de propriedade do comparador; retenha o comparador enquanto lê as entradas dele, e readquira as entradas após outra comparação bem-sucedida
Cada entrada fornece Kind, Sheet, Rowe Col de base 1 quando aplicável, Ref, LeftText, RightTexte valores tipados LeftKind / RightKind; TlxCompareValueKind contém lcvNone, lcvBlank, lcvNumber, lcvText, lcvBoolean, lcvDateTime, lcvErrore lcvFormula, com lcvNone usado para um lado ausente ou uma diferença que não é de valor
TlxCompareKind retém lckSheetAdded, lckSheetRemoved, lckCellAdded, lckCellRemoved, lckValueChanged, lckFormulaChanged, lckMergeAddede lckMergeRemoved, e acrescenta lckFormulaCacheChanged, lckStyleChanged, lckRowGeometryChangede lckColumnGeometryChanged
Diferenças de estilo carregam fingerprints canônicos estáveis de estilo em LeftTexte RightText; diferenças de geometria carregam o estado comparado de tamanho, oculto, estrutura e recolhido, com Ref identificando o intervalo contíguo de eixo afetado, Row definido como a primeira linha dele e Col como zero para linhas, ou Col definido como a primeira coluna dele e Row como zero para colunas
Diferenças de recursos usam lckDefinedNameChanged, lckDataValidationChanged, lckConditionalFormatChanged, lckTableChanged, lckDrawingChanged, lckPivotTableChanged, lckPivotCacheChanged, lckSlicerChangedou lckTimelineChanged; Change é lccChanged, lccAddedou lccRemoved, e cada lado presente carrega seu fingerprint canônico de definição, enquanto um lado ausente carrega uma string vazia
lckRichTextChanged identifica uma definição de run alterada na coordenada de célula dela e carrega fingerprints canônicos de runs em LeftTexte RightText; a tolerância numérica se aplica a literais de célula e a caches de fórmulas, enquanto definições tipadas de recursos comparam de forma exata
Referências de recursos identificam nomes com escopo ou nomes de tabelas, ou usam posições de sequência de base 1 para definições de validação, de formato condicional e de desenhos; inserir ou mover um recurso ordenado pode mudar várias posições, enquanto entradas de nomes no nível da pasta de trabalho têm um Sheetvazio
lckBlankStyleRegionChanged identifica um retângulo em branco alterado por meio de Row, Col, LastRowe LastCol inclusivos, e o Ref em A1 dele; coordenadas armazenadas são tratadas pela comparação comum de células e por lcoCellStyles, então habilite ambas as opções de estilo para inspecionar células armazenadas e áreas em branco juntas
Describe formata uma entrada, enquanto Report(List) acrescenta as entradas formatadas a um TStrings de propriedade do chamador; uma mudança de valor tipado inclui rótulos de tipo quando os tipos diferem, e os resultados são ordenados por nome de planilha, linha, coluna, tipo de diferença e referência, em vez da ordem de inserção de células
A comparação mantém concessões de leitura, percorre células armazenadas por meio de snapshots destacados de cursor, e retém o armazenamento empacotado; a geometria particiona fronteiras de metadados armazenados e spans compactos de linhas repetidas, enquanto a comparação de estilos em branco varre as fronteiras de retângulo ativo e de células armazenadas sem varrer uma grade retangular de um milhão de linhas; o trabalho cresce com os recursos armazenados, as interseções de regiões e as diferenças reportadas
Uma comparação com falha preserva o resultado bem-sucedido anterior; atribuição de tolerância inválida também preserva as configurações e o resultado existentes, enquanto passar uma pasta de trabalho nil limpa o resultado e retorna zero
Esta comparação cobre o conteúdo de células armazenadas da facade XLSX e definições tipadas selecionadas de recursos; a grafia de fórmulas de nomes, validações, formatos condicionais, tabelas e gráficos é normalizada por meio do parser semântico de fórmulas, enquanto fórmulas calculadas de tabelas dinâmicas retêm o texto de definição armazenado delas
Filtros de tabela aceitam formas suportadas personalizadas, de lista de valores, de grupo de datas, de cor, de ícone, dinâmicas e de contagem superior, além de condições de ordenação; colunas de filtro independentes e entradas de conjuntos de valores normalizam a ordem, padrões booleanos e grafias numéricas são normalizados, e a ordem das condições de ordenação permanece significativa
A comparação tipada de tabelas dinâmicas, slicers e timelines resolve origens de planilha locais suportadas e vínculos não OLAP sem atualizar nem avaliar disponibilidade; dicas nativas de disponibilidade de slicer são metadados de exibição derivados, enquanto seleções de membros e metadados nativos de ordenação reconhecidos são comparados
Propriedades nativas de desenho opacas, modelos binários incompletos de tabelas dinâmicas, origens de tabelas dinâmicas externas ou OLAP, records suplementares brutos de tabelas dinâmicas e XML de extensão, XML de filtro desconhecido, e atributos ou filhos de extensão de slicer ou timeline sem modelo geram EXLSSemanticSnapshot; a preservação desses dados não implica equivalência semântica
Recursos selecionados de tabelas dinâmicas e de PivotCache importados também validam o XML nativo preservado antes de comparar a projeção tipada, incluindo metadados aninhados de campos e registros de cache; namespaces, atributos, filhos e payloads de extensão desconhecidos falham explicitamente dentro dos mesmos limites cooperativos de recursos, enquanto vínculos modelados de cache de slicer permanecem suportados
TSimpleDomNode.RawName expõe o QName original do elemento ao lado do Name normalizado pelo leitor, permitindo inspeção sensível a namespaces sem alterar a correspondência de nomes existente do parser
Configurações da pasta de trabalho e metadados opacos do pacote permanecem fora da comparação; a comparação de estilos base não avalia aparência de formato condicional nem de estilo de tabela, e a comparação de desenhos preserva os limites suportados de imagem, caixa de texto, gráfico e grupos ordenados do snapshot semântico
Propriedades efetivas de rich-text
TMsoFbtOpt.StoredPids retorna identificadores de propriedades do OfficeArt armazenados em ordem classificada, enquanto TMsoFbtSp.PersistentFlags expõe flags nativas de forma sem alocar propriedades nem âncoras
TMsoShapeContainer.HasPreservedObjectData identifica bytes de cauda OBJ retidos; HasOrdinaryEmbeddedPictureObjectData verifica que caudas de imagem contêm apenas records reconhecidos de formato de área de transferência e de flag de imagem zero, e rejeita records vinculados ou desconhecidos sem copiar o payload
TMSOShapeTextBox.HasValidTextRuns verifica fronteiras de runs TXO armazenadas e campos reservados sem criar runs; TMsoDrawing.HasUnmodeledAppearance identifica dados nativos de desenho pulados pelo parser tipado, permitindo que a captura rejeite explicitamente aparência não resolvida
TXLSXRichTextRun.BoldSet, ItalicSet, StrikethroughSet, UnderlineSet, VertAlignSete ColorSet distinguem propriedades de fonte herdadas de overrides explícitos, incluindo flags falsas, none, baseline e cores automáticas; os setters marcam a propriedade como explícita mesmo quando seu valor é igual ao padrão inicial do novo run
TXLSXRichText.HasUnsupportedAppearance reporta propriedades nativas de rich que o modelo tipado de runs não consegue representar; a captura portátil e a comparação efetiva de rich-text rejeitam tais runs explicitamente, enquanto propriedades suportadas de runs compartilhados/inline e espaço em branco retêm a semântica importada delas
A comparação efetiva de rich-text aplica overrides falsos explícitos antes de coalescer runs adjacentes iguais; propriedades herdadas e explicitamente limpas permanecem distintas durante a deduplicação de strings compartilhadas e round trips XML suportados
TXMLReader.ResolveNamespaceUri(Prefix, Uri) resolve o vínculo de namespace atual em escopo sem mudar a posição do leitor, retornando false quando não existe vínculo; um prefixo vazio pede o namespace padrão, e QNames brutos permanecem disponíveis para inspeção sensível a namespaces
Os records imutáveis de rich/scene, a extensão de origem de captura e o contrato de transferência HXRSNP02 são descritos em saída headless portátil
Inspeção destacada de estilos e eixos
TXLSXWorksheet.ReadSemanticCellStyle(Row, Col) retorna um TXLSSemanticCellStyle destacado para coordenadas válidas de base 1, resolvendo estilos armazenados e empacotados, padrões da planilha, overlays de estilo aplicáveis, formatos de data implícitos, cores indexadas e cores de tema sem materializar células nem alterar pools de estilos; a chamada pública adquire uma concessão de leitura e exclui regras de formato condicional e de estilo de tabela
TXLSXWorksheet.GetStoredAxisSpans(IsRow) retorna TXLSXAxisSpans, um array de records TXLSXAxisSpan com FirstIndexe LastIndex inclusivos de base 1; ele reporta os footprints de metadados de tamanho, oculto, estrutura e recolhido, preserva spans compactos de alturas de linhas repetidas, e deixa o padrão efetivo da planilha disponível por meio de suas propriedades comuns
Os spans retornados descrevem footprints de metadados armazenados, e não uma partição normalizada disjunta; aplicações que comparam dois eixos podem combinar as fronteiras de início e de fim deles, e então inspecionar o estado efetivo uma vez por intervalo resultante
TXLSXWorksheet.GetStoredStyleRegions retorna TXLSXStyleRegions destacados contendo fronteiras inclusivas de FirstRow, FirstCol, LastRowe LastCol para footprints compactos de formatação virtual; esses footprints podem se sobrepor, e os chamadores leem a aparência efetiva deles com ReadSemanticCellStyle
TXLSXWorkbook.ReadSemanticFeatures(Kind, Sheet, MaxBytes, MaxItems) retorna entradas destacadas de TXLSXSemanticFeatures com uma Key estável, bytes canônicos de Definition, e uma ItemCount contada; limites positivos opcionais têm como padrão 64 MiB e 1.000.000 de entradas
TXLSXSemanticFeatureKind contém xlsxSemanticDefinedNames, xlsxSemanticDataValidations, xlsxSemanticConditionalFormats, xlsxSemanticTables, xlsxSemanticDrawings, xlsxSemanticPivotTables, xlsxSemanticPivotCaches, xlsxSemanticSlicers, xlsxSemanticSlicerCaches, xlsxSemanticTimelinese xlsxSemanticTimelineCaches
Nomes definidos e os três tipos de cache usam escopo de pasta de trabalho inteira e permitem uma planilha nil; os outros tipos exigem uma planilha pertencente à pasta de trabalho, regras e desenhos retêm a sequência armazenada deles, e os arrays e buffers retornados são cópias de propriedade do chamador; esses leitores adquirem concessões de leitura e herdam a cobertura tipada e o comportamento explícito de dados sem suporte descritos acima
TXLSXWorksheet.ReadSemanticRichText(Row, Col, IncludePlainText, MaxBytes, MaxItems, ConsumedItems) retorna bytes canônicos destacados de runs para coordenadas de base 1, ou um buffer vazio quando não existe rich text e IncludePlainText é false; o ConsumedItems: PInteger opcional recebe a contagem de runs capturados, e a captura de texto simples retém o armazenamento empacotado
TXLSPivotCacheField.GroupItemTypes[Index] expõe o tipo tipado correspondente a GroupItemLabels[Index]e rejeita um índice fora do domínio armazenado de rótulos agrupados
Metadados de fórmulas e callbacks de consulta de tabelas dinâmicas
TXLSGetCellFormulaTexte TXLSCalculator.OnGetCellFormulaText leem texto de expressão armazenado usando um SheetIndex de base 1 e Row/Col de base zero, retornando lxOk ou um código de erro tipado e respeitando a proteção de fórmula oculta; TXLSGetPivotTablee OnGetPivotTable localizam uma tabela emprestada usando um SheetIndex de base 1 e coordenadas de intervalo de base zero
Os motores de pasta de trabalho conectam esses callbacks opcionais em contextos de cálculo normal, somente leitura e isolado; os callbacks não recalculam alvos, não atualizam origens de tabelas dinâmicas nem transferem propriedade
TXLSPivotDataConstraint armazena um FieldNamee um Item tipado, com TXLSPivotDataConstraints coletando pares campo/item; TXLSPivotTable.GetDataValue consulta um agregado visível suportado de um snapshot destacado de tabela/cache local, e IntersectsQueryRange usa limites de planilha de base 1 incluindo células modeladas de filtro de relatório
TlxPivotQueryBudget recebe estimativas de trabalho e de memória de forma síncrona e retorna se a avaliação pode continuar; EXLSPivotQueryBudgete EXLSPivotQueryUnsupported distinguem limites esgotados de modelos de cache ou de agregado sem suporte
TXLSPivotCache.QueryModelIsComplete registra a prontidão de consultas decodificadas de forma independente da completude da repetição bruta do BIFF; QueryRecordsValid expõe a validade de registros importados, e SetQueryRecordValidity aplica a precedência do leitor de formato sem atualizar registros
Bytes de página de código explícitos
| Member | Contract |
|---|---|
XlsEncodeCodePage(Text, CodePage, MaxBytes = -1) | Retorna um RawByteString com bytes exatos em uma página explícita orientada a bytes diferente de zero, preserva nulls embutidos, verifica a identidade de round-trip Unicode, e gera EConvertError para texto não representável; um MaxBytes não negativo mantém o prefixo mais longo de caracteres completos que cabe, enquanto -1 deixa o comprimento ilimitado; a validação cobre o texto original antes do truncamento |
XlsDecodeCodePage(Bytes, CodePage) | Retorna um WideString da codificação de bytes explícita e preserva nulls embutidos; sequências de bytes malformadas seguem o comportamento do decodificador instalado; a página 0 e a página UTF-16 1200 são rejeitadas, porque esta API não infere uma localidade ANSI nem lida com um stream de bytes UTF-16 |
TXLSBlob.GetCompressedUnicodeString(Index, Count) | Retorna unidades de código exatas de Unicode comprimido BIFF8 de U+0000 a U+00FF, preserva nulls embutidos, valida o intervalo de bytes solicitado, e não interpreta esses bytes usando uma página de código |
TXLSBlob.AddRawString | Anexa bytes codificados exatos sem uma conversão de página de código AnsiStringe atualiza DataLength; uma entrada vazia não anexa bytes |
TXLSCalculator.CodePage, TXLSFormula.FCodePage | Selecionam a codificação de bytes explícita de fórmulas legadas, com CP1252 como padrão; a pasta de trabalho Classic proprietária sincroniza o calculador dela quando inicializada ou quando SetCodePage é chamado |
TXLSFontList.GetFont, TXLSNumFormatList.GetNumFormatBlob, TXLSStyles.GetStyleBlob | O argumento opcional CodePage tem 1252 como padrão e codifica texto BIFF5; a saída BIFF8 permanece Unicode |
TMsoDrawing.StoreNotes | O argumento opcional CodePage tem 1252 como padrão e codifica texto de comentários pré-Unicode; o limite existente de tamanho de record de comentários comuns BIFF5 permanece; isso não acrescenta campos de autor, rich-text ou geometria ausentes daquele formato de record |
TXLSCustomName.SetSourceData | Os argumentos opcionais FileFormate CodePage identificam bytes NAME brutos importados e têm xlExcel97e 1252 como padrão; records brutos são reutilizados apenas quando o formato e a codificação legada deles correspondem à saída solicitada |
TXLSFormulatArrayItem.GetDataSize, TXLSFormulatArray.GetDataSize, TXLSFormulatArray.GetData, TXLSFormulatArrays.GetDataSize, TXLSFormulatArrays.GetData, TXLSCompiledFormula.GetExternalData | O argumento opcional ACodePage tem 1252 como padrão; tamanho e saída de string-arrays legados usam a mesma contagem de bytes codificados, enquanto strings BIFF8 permanecem Unicode |
Passe o RawByteString retornado diretamente para AddRawString ou para uma operação de stream orientada a bytes; convertê-lo em um AnsiString padrão pode recodificar os bytes dele em sistemas FPC nativos
Nomes definidos clássicos e blocos de fórmulas de matriz
TXLSCustomName deferred compilation | ClearDefinition libera a AST compilada de RefersTo mantendo a string de definição armazenada e quaisquer bytes NAME brutos importados, Compile reconstrói a AST a partir da definição armazenada e informa sucesso, e GetCompiledFormula recompila automaticamente, de modo que um nome limpo resolve novamente em sua próxima leitura; PeekCompiledFormula retorna a AST atual sem acionar essa recompilação, e StoredDefinition expõe a origem da definição não analisada |
TXLSCustomName identity and flags | StoreIndex expõe a posição de armazenamento do nome dentro da coleção dele, NameID sua identidade numérica única na pasta de trabalho como usada pelo motor de cálculo, e IsHiddene IsMacro leem e gravam as flags hidden e macro do record NAME do BIFF |
TXLSFormulatArray.RowsCount, ColsCount | Informam as extensões de linhas e de colunas do bloco de fórmula de matriz analisado; ambas começam em um e delimitam o domínio de itens por célula transportado pelos métodos de emissão |
Pools clássicos de fontes, formatos e estilos
TXLSFontList stored font attributes | Propriedades indexadas espelham a chave de fonte armazenada em um índice de lista de base zero: Name, Size, ColorIndex, Bold, Italic, Strikethroughe Underline juntam-se a OutLineFont, Shadow, SubScript, SuperScript, Familye CharSet para inspeção somente leitura |
TXLSNumFormatList.AddValue, FmtExists | AddValue registra uma string de formato e retorna o índice dela, mapeando grafias de formatos builtin para os ids canônicos deles e marcando formatos de data e de hora; FmtExists informa se uma string de formato personalizado já está registrada |
TXLSNumFormatList.IsDateFormat, IsDateFormatValue | IsDateFormat informa se o formato armazenado em um índice está marcado como formato de data ou de hora, enquanto IsDateFormatValue testa diretamente uma string de formato quanto a tokens de data e de hora |
TXLSStyles.AddStyle, AddBuiltinStyle | AddStyle registra um estilo de célula personalizado nomeado vinculado a um índice de record XF, e AddBuiltinStyle registra um estilo de célula builtin pelo id builtin dele junto com o nível de estrutura de tópicos usado por estilos de nível de linhas e de colunas |
TXLSStyles.BuiltinStyleName | Class function que retorna o nome de exibição canônico de estilo de célula builtin do Excel para ids builtin de 0 a 53; ids fora do intervalo retornam um nome vazio, de modo que os gravadores voltem para a forma bruta de bytes builtin |
Auxiliares de pacote e armazenamento binário
TXLSXOpaquePackage | LoadWorkbookXmlMetadata captura o estado XML no nível da pasta de trabalho, MarkAllPartsClean redefine os sinalizadores de pendência, e WorkbookExtLstXml mais WorkbookRootAttributesXml expõem fragmentos XML preservados da pasta de trabalho; IsDiscardedPart informa se um nome de parte foi removido por uma operação de descarte, como a limpeza de suplementos da Web |
TXLSFileStorage | Load, LoadFolder, Writee WriteFolder transferem conteúdo de arquivo composto; Child e Count enumeram as entradas filhas, cada uma um TXLSFileItem — um nó de armazenamento nomeado cuja subclasse TXLSFileStream carrega os bytes armazenados como um TXLSBlob com DataSize informando o comprimento do payload |
TXLSBlob | Add anexa outro blob, enquanto AddByte, AddWord, AddLong, AddDouble, AddStringe AddWideString anexam valores tipados; CopyData, CopyMem, FillByte, Write, Clear, Resete Dump gerenciam o conteúdo; Buff e DataLength expõem o armazenamento |
TXLSBlobList | Append, AppendList, CopyDatae Write combinam ou emitem entradas; Entries e TotalSize expõem o estado da lista |
TXLSWideStringBuilder | AddString anexa texto e Length informa a contagem acumulada de caracteres |
Adições de desenho e do visualizador de pastas de trabalho
TXLSFillFormat | PictureFill configura um preenchimento de forma com base em imagem, enquanto FillType seleciona o tipo de preenchimento (sólido, gradiente, imagem ou textura predefinida) que o gravador emite |
TXLSShapes | AddScrollBar e AddSpinner criam controles de formulário — os objetos TXLSScrollBar e TXLSSpinner retornados expõem a geometria do controle e a célula vinculada, e o spinner acrescenta os limites de passo Min, Maxe Inc — enquanto RegisterScrollBar e RegisterSpinner registram controles carregados de uma pasta de trabalho |
TXLSWorkbookViewer | CanUndo e CanRedo informam a disponibilidade do histórico de transações; ClearSelectedRange, CopySelectedRange, PasteSelectedRangee PasteText operam sobre o intervalo selecionado, enquanto ReferencePickMode habilita a seleção interativa de referências de célula ou intervalo |
TXLSWorkbookEditHistory | O motor headless de transações de conteúdo em lxWorkbookViewer vincula uma pasta de trabalho clássica ou XLSX emprestada e fornece preflight de proteção de intervalos, cópia e colagem de texto Unicode, limpeza de intervalos, e uma transação de undo/redo por operação; veja transações de edição headless |
TXLSCellContentSnapshot | Ambas as classes de planilha expõem ReadCellContent(Row, Col)e RestoreCellContent(Snapshot) para captura e restauração destacada de conteúdo nativo em coordenadas de base 1 na planilha de origem; a captura não avalia fórmulas, não cria células ausentes nem materializa armazenamento empacotado, e o payload imutável NativeData preserva rich text, caches de fórmulas e o estilo da célula; a restauração direta é uma operação de baixo nível cujo chamador deve validar proteção e fronteiras estruturais |
Paginação, saída de imagem e impressão
XLSValidateCachedChartSceneModel, XLSRecordCachedChartScene | Faz o preflight de metadados de gráficos em cache sem resolver células e registra primitivas limitadas de vetores e de texto para um gráfico destacado em lxPortableChart, retornando TXLSPortableSceneObjects e contabilização de itens, de bytes e de texto; os pontos de entrada de lxPagination retêm a mesma implementação compartilhada para os chamadores Windows existentes; o subconjunto atual cobre gráficos comuns de colunas, barras, linhas, dispersão, pizza, rosca e de área de série única com um único grupo de plotagem primário, e a gravação exige metadados nativos validados, pontos de cache finitos estritamente ordenados e um modelo de gráfico não anexado; veja gravação de gráficos em cache |
TXLSGraphicsBackend | DrawTiledImage pinta um plano de fundo de planilha repetidamente pela região da página recortada |
TXLSPaginationModel | CompactRangeMode, IncludeDrawings, IncludeGridlines, IncludeCellBorderse PaintPageBackground controlam o conteúdo da página; RenderDPI, RenderColorModee RenderSession expõem a resolução de saída, o tratamento de cores e a sessão de renderização ativa |
TXLSCellImageExporter | Measure calcula dimensões em pixels para intervalos clássicos ou XLSX; ImageFormat, JpegQuality, MaxPixels, MaxBytes, IncludeObjects, IncludeGridlines, IncludeCellBorders, BackgroundColor, TransparentBackground, BeforePaint, AfterPainte PaginationModel configuram e observam a renderização |
TXLSPageImageExporter | BeforePaint, AfterPaint, MaxPixels, MaxBytes, BackgroundColore TransparentBackground aplicam os mesmos ganchos de pintura e limites de segurança de saída à exportação de imagens paginadas |
TXLSPrintDocument | PrintWorksheet, PrintWorkbooke PrintAllVisibleSheets enviam conteúdo clássico ou XLSX para a impressora VCL; FirstPage, PrintRangeOnly, Collate, Copies, OnBeforeNewPagee OnAfterGeneratePage controlam o trabalho de impressão |
Modelos de gráfico clássicos e objetos de gráfico de planilha
TXLSXChartSeries | LineVisible, LineColorRGBe LineWidthPoints descrevem o traço de uma série independente; LineStyleSet, LineColorSete LineWidthSet preservam configurações explícitas, e EffectiveLineVisible resolve a convenção legada de somente preenchimento; MarkerFillSete MarkerBorderSet distinguem preto explícito de cores automáticas de marcador, enquanto a gravação portátil de linha e de dispersão suporta diâmetros de círculo de 2 a 72 pontos; os setters de cor e de largura validam antes da mutação e obedecem às concessões de leitura da pasta de trabalho |
TXLSChartSeries | AddTrendline e AddErrorBars criam anotações tipadas para a série, enquanto TrendlineCount e ErrorBarCount informam os tamanhos de suas coleções; o campo MarkerSize existente retém twips brutos do BIFF, enquanto o getter somente leitura MarkerSizePoints retorna esse valor dividido por 20, incluindo tamanhos fracionários em pontos |
TXLSChartAxis | HasAxcExtFlag testa um sinalizador AXCEXT bruto sem exigir que os chamadores decodifiquem a máscara de bits |
TXLSChartModel | AxisGroupCount informa o número de grupos de eixos primário e secundário decodificados do gráfico |
TXLSCustomChart | AddAreaData anexa um item de área pré-construído para reassociação de fórmulas no momento de salvar e ApplyDateAxisModel aplica um modelo tipado de eixo de data aos registros brutos do gráfico; GetStoredRecordInfo lê um id de record de base zero e a contagem de bytes dele sem alocação, enquanto ReadStoredRecord(Index, MaxBytes) verifica o limite de bytes antes de retornar bytes destacados em um TXLSChartStoredRecord, sem avaliar fórmulas nem modificar caches |
TXLSWorksheet | AddChartObject ancora um quadro de gráfico na planilha e o conecta ao construtor de gráficos compartilhado |
TXLSXChartLayoutResolver | TryResolve resolve um retângulo de layout com validação de tamanho opcional e ResolveChart calcula os retângulos de gráfico, título, legenda, plotagem e eixos |
Modelo de decodificação tipado de gráficos
O estado decodificado do gráfico é exposto como records e enums simples para que o código de inspeção nunca precise percorrer registros BIFF brutos: TXLSChartInfo carrega o resumo decodificado do gráfico com TXLSChartTypeFamily (cfBar, cfLine, cfPie, cfArea, cfScatter, cfRadar, cfDoughnut, cfSurface, cfBubble), cada série informa um TXLSChartSeriesType, e TXLSChart3DState mais TXLSChart3DInfo descrevem visualizações tridimensionais. TXLSChartAxisType (catCategory, catValue, catSeries, catDate) e TXLSChartLegendPosition classificam eixos e legendas, enquanto o modelo de eixo de data usa TXLSChartDateUnit (xcduDays, xcduMonths, xcduYears) e TXLSChartDateValues. TXLSCustomChart expõe o modelo decodificado por meio de TXLSChartInfo; anotações de linha de tendência e barras de erro são objetos tipados (TXLSChartTrendline, TXLSChartErrorBars) acessíveis a partir de cada série
Records de autoria de gráficos
A autoria de planilhas de gráfico e do construtor aceita records simples em vez de grafos de objetos: TXLSChartTrendlineInfo, TXLSChartErrorBarsInfo, TXLSChartDataLabelsInfoe TXLSChartSeriesStyleInfo preenchem as entradas de série passadas a TXLSWorksheets.AddChartSheet e ao construtor de gráficos compartilhado, e TXLSPivotChartInfo descreve o enquadramento de gráfico dinâmico usado quando um gráfico é anexado a uma tabela dinâmica
Inspeção de preenchimento de gráficos clássicos
TXLSCustomChart.GetChartModel decodifica tabelas de propriedades nativas do OfficeArt suportadas e tabelas de propriedades terciárias em records GelFrame, incluindo propriedades que seguem entradas de payload complexas; a representação existente do construtor permanece suportada, e limites de tabela malformados deixam o preenchimento tipado anterior inalterado e reportam o record sem suporte
A inspeção de gráficos valida a carga armazenada completa de texto e de anotações antes de acrescentar estado tipado: nomes de linhas de tendência truncados ou separadores de rótulos de dados reportam o id do record deles por meio de _UnsupportedSemanticRecordID, enquanto cabeçalhos SeriesText nil ou pequenos demais reportam esse record como sem suporte tanto para BIFF5 quanto para BIFF8; uma extensão declarada de texto de série que excede o payload dela gera EReadError, libera o modelo parcial e deixa os registros armazenados do gráfico inalterados
O getter de marcador e a inspeção de preenchimento preservam o armazenamento bruto do gráfico; o caminho de captura de aparência declarada valida separadamente os gráficos de núcleo suportados, enquanto checksums de extensão de título rico ou de forma não verificados permanecem sem suporte
Leitores limitados de gráficos, strings e fontes armazenados
TXLSChartStoredBytes é um array de bytes destacado, e TXLSChartStoredRecord contém RecordIde Data; esses leitores inspecionam o armazenamento de origem retido sem criar um modelo de gráfico decodificado nem avaliar fórmulas
| TXLSCustomChart.GetStoredRecordInfo | Retorna um id de record e um comprimento de bytes contado para um índice de record de base zero sem copiar o payload dele |
| TXLSCustomChart.ReadStoredRecord | Copia um payload depois de validar o índice e o MaxBytes não negativo; o limite padrão de bytes é High(Int64) |
| TXLSCustomChart.ReadStoredFormulaLeafInfo | Inspeciona uma folha BRAI armazenada coerente usando o calculador de origem exato e quotas não negativas de bytes e de texto; calculadores estranhos ou proprietários de tradução retornam uma folha sem suporte, e AllowUnboundBiff tem False como padrão |
| TXLSCustomChart.ReadStoredFormulaLiteral | Retorna um literal destacado somente depois das mesmas verificações de proveniência e de quotas; uma folha sem suporte gera EInvalidOperation |
| TXLSCustomChart.SourceBiffVersion, SourceCodePage | Proveniência somente leitura dos registros de gráfico retidos |
| TXLSStringTable.GetStoredStringLength, ReadStoredString | Conta o armazenamento UTF-16 existente usando a identidade de string de base 1 da tabela, e então copia apenas quando a quota de caracteres não negativa o cobre; identidades inválidas e armazenamento UTF-16 incompleto são rejeitados |
| TXLSFontList.GetStoredNameLength, ReadStoredName | Verifica a chave de fonte armazenada no índice de base zero da lista antes de contar ou copiar o nome dela sob uma quota de caracteres não negativa |
| TMsoFbtOptItem.HasStoredUnicodeString | Verifica metadados limitados armazenados de strings Unicode complexas sem materializar uma string |
| TMsoShapeContainer.HasOrdinaryChartObjectData | Verifica o tipo de objeto de gráfico armazenado, a identidade de objeto diferente de zero, flags suportadas e a ausência de dados desconhecidos de cauda de objeto |
Manutenção da tabela de strings compartilhadas e emissão de SST
TXLSStringTable em lxStringTable sustenta as strings compartilhadas da pasta de trabalho clássica; os membros abaixo cobrem registro no lado do leitor, manutenção de slots e emissão bruta de SST para salvamentos de round-trip
KeyExists, AddWithExtras | KeyExists informa se uma string já ocupa um slot; AddWithExtras é o companheiro do Add no lado do leitor que anexa o payload bruto de rich-text rgRune fonético rgExtRst à entrada sem aumentar a contagem de referências dela, porque cada célula que referencia restaura a contagem depois pelo caminho normal de adição |
Replace, ReplaceIndex | Replace descarta uma referência no slot antigo, liberando-o quando a contagem dele chega a zero, e readiciona o texto, retornando o slot resultante; ReplaceIndex move uma referência do slot antigo para o novo sem copiar texto |
AddSSTData, InitExtIndex | AddSSTData emite o payload bruto de SST para a lista de blobs do gravador; o overload que recebe uma tabela de remapeamento de runs de fonte reescreve cada índice de fonte FormatRun na saída ([MS-XLS] §2.5.129) para que runs ricos sigam a reordenação de fontes no salvamento, enquanto uma tabela vazia mantém a emissão legada verbatim, e InitExtIndex numera os baldes ExtSST sobre slots vivos antes da emissão |
SlotCount, ExtIndex, ParsedExtSSTDsst, ParsedExtSSTItemCount, BiffSizeLimit | SlotCount é o limite superior de base 1 para iteração de slots, com slots excluídos lendo vazio, ExtIndex resolve um slot para o número de balde ExtSST dele ou -1 para um slot que não está vivo, ParsedExtSSTDsste ParsedExtSSTItemCount retêm valores importados de cabeçalhos EXT/SST, e BiffSizeLimit limita cada chunk de record emitido — o gravador clássico o define como 2080 bytes para BIFF5 e 8224 para BIFF8 |
Anexos PDF, assinaturas e exportação HTML
IXLSPDFAttachmentSource | WriteTo transfere em fluxo os bytes do anexo para a exportação PDF sem exigir que o exportador seja o proprietário dos dados de origem |
TXLSPDFExport | AttachmentDuplicatePolicy seleciona o tratamento de nomes duplicados, AttachmentSpoolThreshold controla o spooling de anexos, e DocumentLanguage grava os metadados de idioma do documento |
TXLSPDFSignature | TextAlign, TextSize, TextColor, TextBolde TextItalic configuram a aparência visível da assinatura |
TXLSHTMLExport | ViewMode (tipo TXLSHtmlViewMode: exibição atual ou tabela completa da planilha) escolhe a apresentação HTML, enquanto HotTrackTargets (conjunto de TXLSHtmlHotTrackTarget) e HotTrackColor configuram o destaque interativo de células e objetos |
TXLSXHtmlExportOptions | ViewMode, HotTrackTargetse HotTrackColor fornecem os controles equivalentes de exportação HTML do XLSX |
Auditoria de cálculo e controles da pasta de trabalho
TXLSCalculationAuditReport | Truncated informa o truncamento por limite de problemas, StackTruncated informa o truncamento de quadros da pilha de chamadas, e Issues indexa os problemas de cálculo registrados |
TXLSUserFunctionRegistry | Generation muda sempre que o conjunto de funções de usuário registradas muda, permitindo que associações de fórmulas em cache sejam invalidadas |
EXLSReportRecoverableData | Category identifica a categoria de dados de relatório recuperáveis apresentada ao chamador |
IXLSWorkBook | ManualCalculationThreadCount limita a contagem de workers usada pelo cálculo manual |
TXLSXDataValidation | HasUnknownImeMode informa um valor de modo de IME que o HotXLS preservou mas não reconhece |
TXLSXTable | ColumnCalculatedFormulaArrayRaw e ColumnTotalsFormulaArrayRaw expõem o texto original de fórmula de matriz para colunas de tabela |
Compatibilidade de enquadramento legado do PivotCache
TXLSPivotCache | RawBucketIndex identifica a posição do subfluxo de origem, RawFramingIsLegacy identifica um enquadramento antigo do HotXLS, RawModelIsComplete informa se o modelo tipado representa todos os registros, e CanUpgradeFraming informa se a reemissão tipada por opt-in é segura |
TXLSPivotCache | StreamId expõe a identidade do fluxo de cache clássico, SourceDataType expõe o tipo de dados de origem clássico, e RawHasStorageStream informa se um cache carregado veio de um fluxo de armazenamento PivotCache independente |
TXLSWorkbook | UpgradeLegacyPivotCacheFraming habilita por opt-in a reescrita de apenas enquadramentos legados do HotXLS cujo modelo tipado está completo; a repetição bruta do cache comum permanece o padrão |
StreamId é gravado como o registro SXStreamID ([MS-XLS] §2.4.303) e repetido como o campo SXDB do cabeçalho idstm , que deve ser igual a ele; o SourceDataType é gravado como o registro SXVS ([MS-XLS] §2.4.317: $0001 planilha, $0002 externo, $0004 consolidação, $0010 cenário) e repetido como o campo SXDB do cabeçalho vsType , que deve ser igual a ele. Caches construídos a partir de um intervalo de planilha começam no tipo planilha, enquanto caches lidos de volta de um arquivo mantêm o valor que seu subfluxo carregava, de modo que o gravador BIFF nunca deixa um campo SXDB nomeando um registro que não emitiu; RawHasStorageStream marca um cache carregado de seu próprio fluxo de armazenamento cujo descritor global da pasta de trabalho precede os registros em cache
Integração com a área de transferência e opções de colagem
TXLSPasteOption = (xlpoValuesOnly, xlpoInsertRows, xlpoInsertCols);
TXLSPasteOptions = set of TXLSPasteOption;
function XLSGetClipboardText: WideString;
function XLSSetClipboardText(const Text: WideString): Boolean;
function XLSSetClipboardTextAndHtml(const Text: WideString;
const Html: AnsiString): Boolean;
function XLSBuildHtmlClipboard(const Html: AnsiString): AnsiString;
function XLSEncodeClipboardField(const Text: WideString): WideString;
function XLSClipboardHasText: Boolean;
function XLSParseClipboardGrid(const ClipboardText: WideString;
Loader: TXLSCSVLoader): Boolean;
function XLSClipboardHasXmlSpreadsheet: Boolean;
function XLSGetClipboardXmlSpreadsheet: WideString;
function XLSParseXmlSpreadsheet(const XmlText: WideString;
Loader: TXLSCSVLoader): Boolean;
function XLSClipboardHasBiff8: Boolean;
function XLSGetClipboardBiff8: AnsiString;
function XLSReadClipboardPasteData(out Biff8: AnsiString;
out Text: WideString): Boolean;
function XLSSetClipboardBiff8(const Biff8: AnsiString;
const Text: WideString; const Html: AnsiString = ''): Boolean;
PasteFromClipboard de ambas as fachadas: xlpoValuesOnly mantém os valores em cache das células de fórmula e ignora formatações e mesclagens, enquanto xlpoInsertRows e xlpoInsertCols deslocam o conteúdo existente antes da chegada do blocoCF_UNICODETEXT (recorrendo a CF_TEXT por meio da página de código ANSI atual), XLSSetClipboardTextAndHtml grava texto e um payload estilizado de HTML Format em uma única transação, XLSBuildHtmlClipboard calcula os offsets em bytes CF_HTML para um documento ou fragmento, e XLSEncodeClipboardField coloca entre aspas um campo separado por tabulação. XLSParseClipboardGrid analisa o texto da área de transferência como linhas separadas por tabulação com a mesma detecção de tipos que o TXLSCSVLoader usa para CSV, o XLSParseXmlSpreadsheet executa o mesmo preenchimento de loader sobre um payload SpreadsheetML 2003 obtido com XLSGetClipboardXmlSpreadsheet, e os auxiliares Biff8 detectam e leem o fluxo nativo que o próprio Excel coloca na área de transferência, para que os dados colados mantenham valores, fórmulas e formatação sem perda de textoXLSReadClipboardPasteData captura o fluxo Biff8 e o texto Unicode sob uma única trava da área de transferência, de modo que a colagem nunca precise reabrir a área de transferência entre as duas leituras e não perca nenhum dos formatos para quem o estiver segurando ao mesmo tempo. O XLSSetClipboardBiff8 é o lado da escrita correspondente: ele coloca o fluxo de arquivo composto BIFF8, o texto Unicode delimitado por tabulações e um payload CF_HTML opcional em uma única transação — passe um Text ou Html vazio para pular qualquer um dos formatos companheiros, enquanto a parte Biff8 é obrigatóriaResolução do texto de exibição da célula
TXLSCellDisplayMode = (xcdmFormattedValue, xcdmFormulaText,
xcdmSuppressedZero);
TXLSCellDisplayOptions = record
ShowFormulas: Boolean;
ShowZeros: Boolean;
SheetProtected: Boolean;
FormulaWidthFactor: Double;
DateSerialZero: Double;
end;
TXLSCellDisplayInput = record
HasFormula: Boolean;
FormulaHidden: Boolean;
IsNumericZero: Boolean;
FormulaText: WideString;
FormattedText: WideString;
end;
TXLSCellDisplayResult = record
Mode: TXLSCellDisplayMode;
Text: WideString;
TreatAsText: Boolean;
EffectiveWidthFactor: Double;
end;
function XLSDefaultCellDisplayOptions: TXLSCellDisplayOptions;
function XLSNormalizeFormulaDisplayText(const FormulaText: WideString): WideString;
function XLSResolveCellDisplay(const Options: TXLSCellDisplayOptions;
const Input: TXLSCellDisplayInput): TXLSCellDisplayResult;
XLSResolveCellDisplay diretamente com seus próprios records de entrada; XLSDefaultCellDisplayOptions retorna os padrões canônicos e XLSNormalizeFormulaDisplayText normaliza uma cadeia de fórmula para exibiçãoObjetos clássicos de validação de dados
TXLSDataValidationType = (xlsDvAny, xlsDvWhole, xlsDvDecimal, xlsDvList,
xlsDvDate, xlsDvTime, xlsDvTextLength, xlsDvCustom);
TXLSDvErrorStyle = (xlsDvErrStop, xlsDvErrWarning, xlsDvErrInformation);
TDVRange = class; { one validation rule over one or more ranges }
TDVRangeList = class; { the per-sheet rule collection }
TDataValidator = class; { engine that checks edits against the rules }
TXLSWorksheet.Add*Validation criam regras TDVRange no TDVRangeListda planilha; cada regra carrega seu TXLSDataValidationType, limites, mensagens de entrada e de erro, e TXLSDvErrorStyle. O TDataValidator avalia uma edição contra as regras e informa se o valor é aceitável, que também é a verificação por trás dos próprios avisos de validação do ExcelVarredura e resolução de cores indexadas
TXLSIndexedColorKind = (xickPalette, xickAutomatic, xickSystem, xickInvalid);
TXLSSystemColorRole = (xscrNone, xscrWindowText, xscrWindowBackground,
xscrChartText, xscrChartBackground, xscrChartNeutral, xscrToolTipText);
TXLSIndexedColorResolution = record
Kind: TXLSIndexedColorKind;
RawIndex: Int64;
PaletteSlot: Integer;
SystemColorRole: TXLSSystemColorRole;
ARGB: LongWord;
HasResolvedColor: Boolean;
end;
TXLSNearestIndexedColorMatch = record
InputARGB: LongWord;
ColorIndex: Integer;
PaletteSlot: Integer;
ARGB: LongWord;
DistanceSquared: Double;
ExactMatch: Boolean;
end;
TXLSIndexedColorUsageKind = (xicukFont, xicukFillForeground,
xicukFillBackground, xicukGradient, xicukBorder, xicukConditionalFormat,
xicukChart, xicukShape, xicukComment, xicukWorksheet, xicukOther);
ResolveIndexedColor, NearestIndexedColore ScanIndexedColorUsage : uma resolução informa de qual das quatro fontes TXLSIndexedColorKind veio um token indexado, junto com seu slot de paleta, papel de cor do sistema e ARGB normalizado, uma correspondência mais próxima acrescenta a distância RGB ao quadrado e o sinalizador de correspondência exata, e a varredura de uso marca cada categoria de consumidor que bloqueia um slot de paleta. A biblioteca mantém um cache interno TXLSIndexedColorMatcher chaveado pela geração da paleta — FindNearest responde a consultas de cor mais próxima a partir dele e UpdateSlot corrige um slot da paleta — de modo que resoluções repetidas permanecem sem alocaçõesAuxiliares de referência A1
function XLSA1CellRef(ARow, ACol: Integer): WideString;
function XLSTryParseA1CellRef(const ARef: WideString;
out ARow, ACol: Integer): Boolean;
function XLSTryParseA1RangeRef(const ARef: WideString;
out ARow1, ACol1, ARow2, ACol2: Integer): Boolean;
False para entrada malformada em vez de gerar uma exceção