Membros adicionais da API da biblioteca
Esta página completa a referência dos tipos públicos que suportam as APIs principais de livro de trabalho, folha de cálculo, renderização, importação, diagnósticos e visualizador, mas não exigem um guia separado orientado para tarefas
Filtragem e formatação condicional
TXLSAutofilter | Add, AddAutofilterData, AssignFrom, Clear e ParseAutofilterData editam ou importam a definição do filtro; Defined, FirstRow, FirstCol, LastCol, LastRow e FieldCount expõem os respetivos 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 registo de operando TXLSAutofilterDOPER — DataType seleciona a forma do operando e grbitSgn transporta os bits de sinal e de sinalizadores — para inspeção ou edição round-trip |
TXLSDataBarSpec | AxisColor, AxisIsThemeColor, AxisThemeColorId, AxisThemeColorTint e ClearAxisThemeColor controlam o eixo; Direction, GradientFill, NegativeBarBorderColorSameAsPositive, NegativeBarColor, NegativeBarColorSameAsPositive e NegativeBorderColor controlam a aparência das barras; IsIndexedColor, IndexedColorIndex e ClearIndexedColor gerem a cor da barra por índice de paleta |
TXLSIconSetSpec | ThresholdEqualsInclude seleciona a comparação inclusiva ou exclusiva para cada limite de ícone |
TXLSCfValue | O IsIndexedColor e o IndexedColorIndex indicam uma cor de limite armazenada como índice de paleta legado, o ClearIndexedColor remove novamente essa forma, e as cores de tema ou literais permanecem disponíveis através dos acessadores existentes |
TXLSCfValue, TXLSDataBarSpec, TXLSColorScaleSpec, TXLSIconSetSpec e TXLSDxfStyle aceitam AttachWriteGuardOwner, vinculando o objeto de regra ao respetivo livro de trabalho proprietário para que as edições adquiram automaticamente uma proteção de escrita; o proprietário implementa TXLSCondFormatWriteGuardOwner, cujo único método AcquireWriteGuard entrega à regra a proteção de escrita do livro de trabalho. O TXLSDxfStyle adiciona FontColorIndex com FontColorIsIndexed, para além dos pares FillFgColorIndex / FillFgColorIsIndexed e FillBgColorIndex / FillBgColorIsIndexed para cores de regra por índice de paleta, e os overrides de fonte diferencial FontName, FontSize e FontScheme (string vazia, um tamanho em pontos, ou um slot de fonte de tema como major / minor) ao lado dos membros existentes de negrito, itálico, sublinhado e cor; cada atribuição adquire a proteção de escrita e marca a regra como dirty para reemissão
TXLSConnections, TXLSDataTables e TXLSQueryTables expõem OnAcquireWriteGuard (tipos TXLSConnectionAcquireWriteGuard, TXLSDataTableAcquireWriteGuard e TXLSQueryTableAcquireWriteGuard), o gancho que os respetivos caminhos de edição utilizam para obter o IXLSWorkbookWriteGuard do livro de trabalho proprietário antes de mutar e para avançar a geração do livro de trabalho de seguida; a proteção regista StartGeneration, e Complete marca a escrita como concluída para que as caches dependentes possam ser reconstruídas
As ligações de dados preservadas transportam uma descrição tipada: o TXLSConnectionKind (xlckUnknown, xlckOdbc, xlckDao, xlckFile, xlckWeb, xlckOleDb, xlckText, xlckAdo) classifica a ligação, o TXLSConnectionCredentials (xlccIntegrated, xlccNone, xlccStored, xlccPrompt) regista o respetivo modo de autenticação, e cada valor de parâmetro de ligação é etiquetado com TXLSConnectionParameterValueKind (xlcpvNone, xlcpvBoolean, xlcpvDouble, xlcpvInteger, xlcpvString, xlcpvCell). As tabelas de dados de análise de hipóteses comunicam o tipo de definição armazenada através de TXLSDataTableKind
Tabelas de dados de análise de hipóteses e agrupamento dinâmico
TXLSDataTable | Assign, ContainsCell e IsRoot copiam e analisam uma tabela; Kind, FirstRow, FirstCol, LastCol, LastRow, AlwaysCalculate, ColumnInputCol, ColumnInputRow, ColumnInputDeleted, RowInputCol, RowInputRow e RowInputDeleted expõem a definição de cálculo armazenada |
TXLSDataTables | Add, AddExisting, Delete, Clear, Assign, AdjustForShift e Offset mantêm a coleção; FindByCell e FindRoot localizam a tabela que contém uma determinada célula ou que está enraizada nesta; Count, Items e OnChange expõem o estado da coleção |
TXLSPivotCacheField | GroupBaseField e GroupParentField expõem as relações entre um campo agrupado e o respetivo campo de origem ou campo pai |
Os limites de conjuntos de ícones podem ser renderizados ou validados programaticamente: o XLSCfIconSetCount indica quantos ícones um TXLSIconSetType define, e o 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 igualem as formas de ícone incorporadas do Excel
Diagnósticos, rastreio de fórmulas e validação
TXLSDiagnostic | Code, NativeCode, Message, Severity, ExceptionClass, PartName, RecordId, SheetIndex, SheetName e StreamOffset identificam um diagnóstico de analisador, escritor ou pacote |
TXLSDiagnostics | O Add anexa um diagnóstico, o Clear repõe a coleção, e Count mais Items enumeram as respetivas entradas |
TXLSDiagnosticSeverity e TXLSDiagnosticOperation | O TXLSDiagnosticSeverity (xlsDiagnosticInfo, xlsDiagnosticWarning, xlsDiagnosticError, xlsDiagnosticFatal) classifica um diagnóstico e o TXLSDiagnosticOperation (xlsOperationNone, xlsOperationOpen, xlsOperationSave, xlsOperationCalculate, xlsOperationExport) indica a fase que o produziu; os handlers de OnDiagnostic leem ambos a partir do TXLSDiagnostic entregue |
TXLSFormulaDebugSession | CurrentStep, DependencyCount, NodeCount e StepCount expõem o instantâneo atual do depurador e os tamanhos do respetivo rastreio |
TXLSFormulaTracer | O StepCount indica o número de passos de avaliação registados |
TXLSImportCheck | AddRule, Annotate, KeepOnlyViolations e Violation configuram e executam a validação da importação; HeaderRow, FirstRow, LastRow, OnVerifyCell e ViolationCount expõem os respetivos limites, callback e contagem de resultados. As regras são objetos TlxImportColumnRule cujos TlxImportRuleFlags selecionam as verificações para uma coluna da folha de cálculo com base um, e cada TlxImportViolation comunica a linha, a coluna, o texto ofensivo e a mensagem de erro |
Políticas de guardar ligações externas
TXLSExternalLinkUpdateMode = (xluPromptUser, xluNever, xluAlways);
property IXLSWorkbook.SaveExternalLinkValues: Boolean;
property IXLSWorkbook.UpdateLinks: TXLSExternalLinkUpdateMode;
property TXLSXWorkbook.SaveExternalLinkValues: Boolean;
property TXLSXWorkbook.UpdateLinks: TXLSExternalLinkUpdateMode;
Ambos os motores têm como predefinição guardar valores em cache e xluPromptUser; xluNever e xluAlways apenas alteram a preferência de atualização armazenada no livro de trabalho e nunca autorizam nem iniciam acesso externo a ficheiros ou à rede
Auditoria de cálculo e dicas do livro 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;
O RecalcAndVerify combina falhas de símbolos de fórmulas e discrepâncias entre valores em cache em categorias estruturadas estáveis, com coordenadas da folha de cálculo, fórmulas, símbolos, valores esperados e reais, e truncação limitada, deixando as caches e a semântica do livro de trabalho inalteradas. O RecalcAndVerifyEx executa a auditoria profunda: avalia cada fórmula uma vez através do grafo de dependências para uma camada de resultados isolada, de modo que as células dependentes leiam esta passagem em vez de caches desatualizadas, classifica as falhas de avaliação (argumentos não suportados, referências circulares, referências externas recusadas ou em falta, tabelas de dados ignoradas, cancelamento, falhas internas) com códigos de resultado, regista uma call stack limitada por falha, respeita um orçamento de problemas e um sink de progresso/cancelamento, e mantém-se só de leitura a menos que o ApplyResults consolidar atomicamente os valores recalculados após uma passagem totalmente bem-sucedida sobre uma estrutura de livro de trabalho inalterada
Cada elemento de TXLSCalculationAuditReport.Issues é um TXLSCalculationAuditIssue; o Kind seleciona uma das categorias xlcai*, o Expected / Actual transporta os valores comparados nas discrepâncias de cache, o Stack é a call chain de avaliação limitada apresentada como Sheet!A1 > Sheet!B2 (frame mais externo primeiro), e o ExternalTarget descreve o livro externo para problemas de referências externas. O TXLSRecalcAuditOptions.OnProgress é um sink TXLSRecalcAuditProgress que recebe o progresso de nós em ACurrent / ATotal e pode definir ACancel para parar a auditoria no próximo limite de nó com um único problema xlcaiCancelled
O RunCalculationAudit é o ponto de entrada do motor para o qual os wrappers de auditoria ao nível do livro de trabalho delegam e aceita o mesmo registo de opções. O FormulaIsVolatile indica se uma fórmula forçaria um recálculo em cada passagem (chamadas como NOW, RAND, TODAY, OFFSET, INDIRECT, ou uma referência não resolúvel)
A camada de auditoria (overlay) é uma camada what-if por cima das caches de células: o AuditOverlayWrite armazena um valor de substituição para uma célula (índice de folha com base um, linha e coluna com base zero, de acordo com a convenção da calculadora), o AuditOverlayRead e o AuditOverlayHash consultam-na, e o AuditOverlayClear esvazia a camada. Os valores sobrepostos são devolvidos pelos getters normais de valor de célula, pelo que o recálculo e a auditoria profunda os observam sem mutar células da folha de cálculo; limpar a camada restaura os valores armazenados
As propriedades de dicas do livro de trabalho retêm os estados em falta, falso, verdadeiro, desativado, automático e manual onde o formato de origem os suporta; nunca iniciam trabalho de cálculo, atualização, sistema de ficheiros, rede ou base de dados ao abrir
property TXLSXTable.ColumnCalculatedFormulaArrayStates[Index: Integer]: TXLSTableFormulaArrayState;
property TXLSXTable.ColumnTotalsFormulaArrayStates[Index: Integer]: TXLSTableFormulaArrayState;
property TDataValidation.ImeMode: TXLSDataValidationImeMode;
property TXLSXDataValidation.ImeModeKind: TXLSDataValidationImeMode;
As fórmulas de colunas calculadas e de linhas de totais mantêm estados de matriz independentes de ausente, falso, verdadeiro ou desconhecido, incluindo valores lexicais de origem intocados e edições estruturais de colunas; as fórmulas de matriz são rejeitadas pela expansão escalar de linhas em vez de serem alteradas silenciosamente
Os modos de IME utilizam mapeamentos explícitos BIFF e OOXML, preservam valores de origem desconhecidos e rejeitam o valor desativado, exclusivo do OOXML, quando o conteúdo é criado para XLS clássico
Definir SaveExternalLinkValues como False omite os registos clássicos XCT e CRN ou a subárvore sheetDataSet do livro externo XLSX, mantendo os destinos das ligações, os nomes das folhas, os nomes definidos externos, as relações, as referências de fórmulas, o XML desconhecido e a cache em memória; repor a propriedade como True no mesmo livro de trabalho pode serializar novamente essa cache retida
Os tokens de origem não suportados e não tocados permanecem preservados byte a byte ou lexicalmente, as atribuições explícitas emitem apenas valores legais, as partes XLSX inalteradas mantêm o caminho de cópia comprimida, e a conversão XLS/XLSX transfere ambas as políticas; os livros de trabalho ODS e de texto não têm declaração equivalente e abrem com as predefinições, enquanto as partes de ligações DDE e OLE preservadas não são tratadas como caches de células de livros externos
Inspeção e remoção de painéis de tarefas de suplementos 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;
Os métodos de inspeção reconhecem apenas relações internas na raiz do pacote cujo tipo corresponde exatamente ao tipo de relação de painel de tarefas de suplemento Web; as relações externas, os tipos com diferenças de maiúsculas e minúsculas, as relações de folhas e as partes com nomes semelhantes são ignorados
A remoção primeiro valida o grafo de relações completo, incluindo destinos normalizados, confinamento à raiz do pacote, ciclos, partes em falta e limites de recursos; depois remove todas as relações de raiz correspondentes e apenas as partes alcançáveis não partilhadas por outra relação mantida, juntamente com as partes de relações pertencentes às origens eliminadas
A operação é atómica e idempotente, as partes de origem removidas não podem reaparecer através da escrita por cópia comprimida, e os tipos de conteúdo são reconstruídos a partir do pacote restante; os grafos malformados adicionam o código de diagnóstico 1303 e levantam uma exceção antes da mutação, enquanto o XLS clássico e o ODS devolvem False, 0 e -1 sem análise do pacote
Política de apresentação de objetos do livro 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;
O XLS clássico mapeia os três estados para o respetivo registo de apresentação de objetos do livro de trabalho e o XLSX mapeia-os para workbookPr.showObjects; valores em falta assumem a predefinição xlsodmShowAll, os payloads Classic reservados intocados e os tokens XLSX não suportados permanecem sem perdas, e as atribuições explícitas emitem apenas valores canónicos
O visualizador desenha o modo de placeholders como caixas leves que transportam o tipo de objeto, o nome, o texto e o texto alternativo disponíveis; os exportadores mantêm os objetos completos por predefinição, enquanto definir ExportObjectPlaceholders pede a mesma política de baixo custo sem descodificar payloads de imagem nem construir cenas de gráfico
O xlsodmHideAll impede a recolha de desenhos e a expansão de intervalos orientada por objetos antes de a renderização começar; a conversão de livros de trabalho transporta os três estados, o ODS escreve desenhos completos no modo de placeholders e omite a saída de desenhos e media no modo de ocultação total, e os fundos das folhas de cálculo 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;
Os valores predefinidos são 1, 1, 1, 1, 100 e 96; as correções de largura e altura têm de ser maiores do que zero e menores do que dois, o espaçamento entre linhas é limitado a (0, 4], as margens de célula a [0, 4], o dimensionamento do ecrã a [100, 500] por cento e o DPI de medição a [36, 2400]
Os livros de trabalho XLS clássicos e XLSX expõem os mesmos membros RenderCalibration, CaptureRenderCalibration e ResetRenderCalibration; a atribuição de registo inteiro valida antes da mutação, e cada captura devolve 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 tipos de letra
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;
O IXLSRenderGeometry é proprietário de uma calibração imutável, da geração do livro de trabalho, da identidade do backend, da superfície de medição GDI e de uma cache de métricas limitada ao âmbito da operação; o MeasureText devolve a largura em píxeis, a altura, a altura de linha, a ascendente, a descendente e a contagem de linhas, enquanto MaximumDigitWidthPixels, ColumnWidthToPixels, PixelsToColumnWidth, PointsToPixels, PixelsToPoints e UsableCellWidthPixels fornecem as conversões de geometria partilhadas
A identidade da cache inclui o backend, a geração do livro de trabalho, todos os valores de calibração, o nome do tipo de letra, o tamanho exato, os estilos, o charset, a largura de quebra e o texto; as correções de largura e altura são aplicadas uma vez durante a medição do texto, o espaçamento entre linhas afeta apenas a altura de várias linhas, a correção da margem de célula afeta apenas a largura útil do texto, e o dimensionamento do ecrã afeta apenas a emulação da largura máxima de dígito para larguras de coluna implícitas
O AutoFit do XLS clássico e do XLSX captura um serviço para cada operação pública, incluindo a medição de intervalos unidos e do MarkSheet de duas fases, enquanto o TXLSPaginationModel.Build captura um serviço para o RenderBackend selecionado; os pontos de entrada PDF, SVG, bitmap, pré-visualização de impressão, visualizador de livros de trabalho e HTML selecionam o respetivo backend antes da saída, alterar a calibração do livro de trabalho não pode mutar um instantâneo existente, e a saída não escreve as dimensões das folhas
As chamadas diretas de HTML de livro, folha e intervalo capturam um serviço xlsrgbHtml novo, enquanto uma TXLSXHtmlExportSession incremental captura uma vez em BeginExport e reutiliza esse instantâneo para todas as folhas; ambos os exportadores expõem o serviço retido através de RenderGeometry para diagnósticos de calibração e de cache
As propriedades só de leitura de IXLSRenderGeometry (WorkbookGeneration, CacheCapacity e CacheEntryCount) indicam a geração vinculada e o preenchimento da cache para fins de diagnóstico, e ImplicitWidthMaximumDigitWidthPixels devolve a medição da largura de dígito por trás da emulação da largura de coluna implícita
O MeasureText preenche um registo TXLSRenderTextMetrics (largura em píxeis, altura, altura de linha, ascendente, descendente e contagem de linhas) a partir de um TXLSRenderFont cujo membro Styles é um conjunto de sinalizadores TXLSRenderFontStyle (negrito, itálico, sublinhado, rasurado)
Importação, geração de código, comparação e monitorização
TXLSHTMLImport | As sobrecargas de LoadFromHTML importam conteúdos de tabelas HTML de um fluxo ou ficheiro para uma folha de cálculo, com coordenadas iniciais, seleção de tabela e separador decimal opcionais |
TXLSCodeGen | O Language (tipo TlxCodeGenLanguage: lcgDelphi ou lcgCppBuilder) seleciona o dialeto de origem das instruções geradas, o GenerateToList escreve o código gerado do livro de trabalho numa lista de cadeias, e o TlxCodeGenOptions alarga a saída com intervalos unidos, larguras de coluna ou formatos numéricos (cgoMerges, cgoColumnWidths, cgoNumberFormats; folhas e células são sempre emitidas) |
TXLSXWorkbookCompare | LeftName e RightName rotulam as entradas, o Compare efetua a comparação, e o Diff expõe as entradas TlxCompareDiff resultantes classificadas por TlxCompareKind |
TXLSFileMonitor | O IntervalMs seleciona o intervalo de sondagem e o SynchronizeEvent seleciona a entrega sincronizada da callback; um handler OnFileChanged pode desativar ou destruir o monitor, ou alterar FileName para começar a observar outro ficheiro |
TXLSCSVLoader e TXLSCSVSaver | O loader analisa texto delimitado para uma grelha em memória de Variants — ParseFile e ParseStream preenchem a grelha, CellValue, RowCount e ColCount leem-na de volta — com separador (ValueSeparator) e codificação (TXLSCsvEncoding: ANSI do sistema, UTF-16, UTF-8) detetados automaticamente e promoção de tipos opcional controlada por DetectTypes e por entradas ColumnTypes por coluna (TXLSCsvColumnType: auto, texto, número, data, booleano, ignorar); SkipRows, AutoTrim, LocaleTolerantNumbers e FieldWidths refinam o tratamento de largura fixa e de configurações regionais. O TXLSCSVSaver.SaveAs escreve a grelha de volta com delimitação RFC 4180, e o QuoteAllStrings força a delimitação; o TXLSTSVSaver deriva do saver para saída separada por tabulações |
Auxiliares de pacote e de armazenamento binário
TXLSXOpaquePackage | O LoadWorkbookXmlMetadata captura o estado XML ao nível do livro de trabalho, o MarkAllPartsClean repõe os sinalizadores de pendência, e WorkbookExtLstXml mais WorkbookRootAttributesXml expõem fragmentos XML preservados do livro de trabalho; o IsDiscardedPart indica se um nome de parte foi removido por uma operação de eliminação, como a limpeza de suplementos Web |
TXLSFileStorage | Load, LoadFolder, Write e WriteFolder transferem conteúdos de ficheiros compostos; Child e Count enumeram as entradas filhas, cada uma um TXLSFileItem — um nó de armazenamento com nome cuja subclasse TXLSFileStream transporta os bytes armazenados como um TXLSBlob com DataSize a indicar o comprimento do payload |
TXLSBlob | O Add anexa outro blob, enquanto AddByte, AddWord, AddLong, AddDouble, AddString e AddWideString anexam valores tipados; CopyData, CopyMem, FillByte, Write, Clear, Reset e Dump gerem o conteúdo; Buff e DataLength expõem o armazenamento |
TXLSBlobList | Append, AppendList, CopyData e Write combinam ou emitem entradas; Entries e TotalSize expõem o estado da lista |
TXLSWideStringBuilder | O AddString anexa texto e o Length indica a contagem acumulada de carateres |
Acrescentos de desenho e do visualizador de livros de trabalho
TXLSFillFormat | O PictureFill configura um preenchimento de forma com base numa imagem, enquanto o FillType seleciona o tipo de preenchimento (sólido, gradiente, imagem ou textura predefinida) que o escritor emite |
TXLSShapes | O AddScrollBar e o AddSpinner criam controlos de formulário — os objetos TXLSScrollBar e TXLSSpinner devolvidos expõem a geometria do controlo e a célula associada, e o spinner acrescenta os limites de passo Min, Max e Inc — enquanto o RegisterScrollBar e o RegisterSpinner registam controlos carregados de um livro de trabalho |
TXLSWorkbookViewer | O CanUndo e o CanRedo indicam a disponibilidade do histórico de edições, enquanto o ReferencePickMode permite a seleção interativa de referências de células ou intervalos |
Paginação, saída de imagem e impressão
TXLSGraphicsBackend | O DrawTiledImage pinta um fundo de folha repetidamente pela região da página recortada |
TXLSPaginationModel | CompactRangeMode, IncludeDrawings, IncludeGridlines, IncludeCellBorders e PaintPageBackground controlam o conteúdo da página; RenderDPI, RenderColorMode e RenderSession expõem a resolução de saída, o tratamento de cor e a sessão de renderização ativa |
TXLSCellImageExporter | O Measure calcula dimensões em píxeis para intervalos clássicos ou XLSX; ImageFormat, JpegQuality, MaxPixels, MaxBytes, IncludeObjects, IncludeGridlines, IncludeCellBorders, BackgroundColor, TransparentBackground, BeforePaint, AfterPaint e PaginationModel configuram e observam a renderização |
TXLSPageImageExporter | BeforePaint, AfterPaint, MaxPixels, MaxBytes, BackgroundColor e TransparentBackground aplicam os mesmos hooks de pintura e limites de segurança de saída à exportação de imagens paginadas |
TXLSPrintDocument | PrintWorksheet, PrintWorkbook e PrintAllVisibleSheets enviam conteúdos clássicos ou XLSX para a impressora VCL; FirstPage, PrintRangeOnly, Collate, Copies, OnBeforeNewPage e OnAfterGeneratePage controlam o trabalho de impressão |
Modelos de gráficos clássicos e objetos de gráfico da folha de cálculo
TXLSChartSeries | O AddTrendline e o AddErrorBars criam anotações tipadas de séries, enquanto o TrendlineCount e o ErrorBarCount comunicam os tamanhos das respetivas coleções |
TXLSChartAxis | O HasAxcExtFlag testa um sinalizador AXCEXT bruto sem exigir que quem chama descodifique a máscara de bits |
TXLSChartModel | O AxisGroupCount comunica o número de grupos de eixos primários e secundários descodificados do gráfico |
TXLSCustomChart | O AddAreaData anexa um item de área pré-construído para revinculação de fórmulas no momento de guardar, e o ApplyDateAxisModel aplica um modelo tipado de eixo de datas aos registos brutos do gráfico |
TXLSWorksheet | O AddChartObject ancora uma moldura de gráfico na folha de cálculo e liga-a ao construtor de gráficos partilhado |
TXLSXChartLayoutResolver | O TryResolve resolve um retângulo de layout com validação de tamanho opcional, e o ResolveChart calcula os retângulos do gráfico, do título, da legenda, da área de plotagem e dos eixos |
Modelo de descodificação tipado de gráficos
O estado descodificado do gráfico é exposto como registos e enums simples, para que o código de inspeção nunca precise de percorrer registos BIFF brutos: o TXLSChartInfo transporta o resumo descodificado do gráfico com TXLSChartTypeFamily (cfBar, cfLine, cfPie, cfArea, cfScatter, cfRadar, cfDoughnut, cfSurface, cfBubble), cada série comunica TXLSChartSeriesType, e TXLSChart3DState mais TXLSChart3DInfo descrevem vistas tridimensionais. O TXLSChartAxisType (catCategory, catValue, catSeries, catDate) e o TXLSChartLegendPosition classificam eixos e legendas, enquanto o modelo de eixo de datas usa TXLSChartDateUnit (xcduDays, xcduMonths, xcduYears) e TXLSChartDateValues. O TXLSCustomChart expõe o modelo descodificado através de TXLSChartInfo; as anotações de linhas de tendência e de barras de erro são objetos tipados (TXLSChartTrendline, TXLSChartErrorBars) alcançáveis a partir de cada série
Registos de criação de gráficos
A criação de folhas de gráfico e do construtor aceita registos simples em vez de grafos de objetos: TXLSChartTrendlineInfo, TXLSChartErrorBarsInfo, TXLSChartDataLabelsInfo e TXLSChartSeriesStyleInfo preenchem as entradas de série transmitidas a TXLSWorksheets.AddChartSheet e ao construtor de gráficos partilhado, e o TXLSPivotChartInfo descreve a estrutura de gráfico dinâmico usada quando um gráfico é anexado a uma tabela dinâmica
Anexos PDF, assinaturas e exportação HTML
IXLSPDFAttachmentSource | O WriteTo transmite em fluxo os bytes do anexo para a exportação PDF sem exigir que o exportador seja proprietário dos dados de origem |
TXLSPDFExport | O AttachmentDuplicatePolicy seleciona o tratamento de nomes duplicados, o AttachmentSpoolThreshold controla o spooling de anexos, e o DocumentLanguage escreve os metadados de idioma do documento |
TXLSPDFSignature | O TextAlign, o TextSize, o TextColor, o TextBold e o TextItalic configuram a aparência visível da assinatura |
TXLSHTMLExport | O ViewMode (tipo TXLSHtmlViewMode: vista atual ou tabela completa da folha de cálculo) escolhe a apresentação HTML, enquanto HotTrackTargets (conjunto de TXLSHtmlHotTrackTarget) e HotTrackColor configuram o realce interativo de células e objetos |
TXLSXHtmlExportOptions | O ViewMode, o HotTrackTargets e o HotTrackColor disponibilizam os controlos equivalentes da exportação HTML para XLSX |
Auditoria de cálculo e controlos do livro de trabalho
TXLSCalculationAuditReport | O Truncated comunica uma truncação por limite de problemas, o StackTruncated comunica a truncação de frames da call stack, e Issues indexa os problemas de cálculo registados |
TXLSUserFunctionRegistry | A Generation muda sempre que o conjunto de funções do utilizador registadas muda, permitindo que associações de fórmulas em cache sejam invalidadas |
EXLSReportRecoverableData | A Category identifica a categoria de dados de relatório recuperável apresentada a quem chama |
IXLSWorkBook | O ManualCalculationThreadCount limita o número de workers usado pelo cálculo manual |
TXLSXDataValidation | O HasUnknownImeMode comunica um valor de modo de IME que o HotXLS preservou mas não reconhece |
TXLSXTable | O ColumnCalculatedFormulaArrayRaw e o ColumnTotalsFormulaArrayRaw expõem o texto original das fórmulas de matriz para colunas de tabela |
Compatibilidade do enquadramento legado de PivotCache
TXLSPivotCache | O RawBucketIndex identifica a posição do substream de origem, o RawFramingIsLegacy identifica um enquadramento antigo do HotXLS, o RawModelIsComplete comunica se o modelo tipado representa todos os registos, e o CanUpgradeFraming comunica se a reemissão tipada por opt-in é segura |
TXLSPivotCache | O StreamId expõe a identidade do stream de cache clássico, o SourceDataType expõe o tipo de dados de origem clássico, e o RawHasStorageStream comunica se uma cache carregada veio de um stream de armazenamento PivotCache independente |
TXLSWorkbook | O UpgradeLegacyPivotCacheFraming ativa a reescrita apenas de enquadramentos de cache legado do HotXLS cujo modelo tipado está completo; a repetição bruta ordinária da cache continua a ser a predefinição |
O StreamId é escrito como o registo SXStreamID ([MS-XLS] §2.4.303) e repetido como o campo idstm do cabeçalho SXDB, que lhe tem de ser igual; o SourceDataType é escrito como o registo SXVS ([MS-XLS] §2.4.317: $0001 folha de cálculo, $0002 externo, $0004 consolidação, $0010 cenário) e repetido como o campo vsType do cabeçalho SXDB, que lhe tem de ser igual. As caches construídas a partir de um intervalo da folha de cálculo começam no tipo folha de cálculo, enquanto as caches lidas de um ficheiro mantêm o valor que o respetivo substream transportava, pelo que o escritor BIFF nunca deixa um campo SXDB a nomear um registo que não emitiu; o RawHasStorageStream marca uma cache carregada a partir do seu próprio stream de armazenamento, cujo descritor global do livro precede os registos 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 XLSClipboardHasBiff8: Boolean;
As opções de colagem são partilhadas pelas sobrecargas PasteFromClipboard de ambas as facades: xlpoValuesOnly mantém os valores em cache das células com fórmulas e ignora formatos e intervalos unidos, enquanto xlpoInsertRows e xlpoInsertCols deslocam o conteúdo existente antes de o bloco ser inserido
Os auxiliares encapsulam a área de transferência do Windows para interoperabilidade de folhas de cálculo: os auxiliares de texto usam CF_UNICODETEXT (com fallback para CF_TEXT através da página de código ANSI atual), o XLSSetClipboardTextAndHtml escreve texto e um payload HTML Format estilizado numa única transação, o XLSBuildHtmlClipboard calcula os deslocamentos de bytes CF_HTML para um documento ou fragmento, e o XLSEncodeClipboardField delimita um campo separado por tabulações. O XLSParseClipboardGrid analisa o texto da área de transferência como linhas separadas por tabulações com a mesma deteção de tipos que o TXLSCSVLoader usa para CSV, e os auxiliares Biff8 detetam e leem o stream 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 texto
Resolução do texto de apresentaçã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;
Um resolver partilhado decide o que uma célula apresenta para um dado estado de vista: fórmulas em vez de valores, zeros suprimidos, texto de fórmula oculto em folhas protegidas, e o fator de largura duplicado que o Excel aplica à apresentação de fórmulas. O visualizador de livros de trabalho e os renderizadores chamam-no através dos respetivos pontos de entrada de opções de apresentação, e as aplicações podem chamar XLSResolveCellDisplay diretamente com os respetivos registos de entrada; o XLSDefaultCellDisplayOptions devolve as predefinições canónicas e o XLSNormalizeFormulaDisplayText normaliza uma cadeia de fórmula para apresentação
Objetos de validação de dados clássica
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 }
Os auxiliares tipados TXLSWorksheet.Add*Validation criam regras TDVRange no TDVRangeList da folha; cada regra transporta o respetivo TXLSDataValidationType, limites, mensagens de introdução e de erro, e TXLSDvErrorStyle. O TDataValidator avalia uma edição contra as regras e comunica se o valor é aceitável, o que é também a verificação por trás dos avisos de validação do próprio Excel
Análise 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);
Estes registos suportam os métodos ao nível do livro de trabalho ResolveIndexedColor, NearestIndexedColor e ScanIndexedColorUsage: uma resolução comunica qual das quatro origens TXLSIndexedColorKind deu origem a um token indexado, juntamente com o respetivo slot de paleta, papel de cor de sistema e ARGB normalizado; a correspondência mais próxima acrescenta a distância RGB ao quadrado e o sinalizador de correspondência exata; e a análise de utilização etiqueta cada categoria de consumidor que bloqueia um slot de paleta. A biblioteca mantém uma cache interna TXLSIndexedColorMatcher indexada pela geração da paleta — o FindNearest responde às consultas de cor mais próxima a partir dela e o UpdateSlot corrige um slot da paleta — pelo que resoluções repetidas ficam livres de alocações
Auxiliares de referências 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;
Auxiliares autónomos para a mesma notação A1 que as APIs do livro de trabalho aceitam: formatam coordenadas com base zero como uma referência de célula A1 e analisam referências de célula ou intervalo no sentido inverso, devolvendo False para entrada malformada em vez de levantar uma exceção
Veja também