Documentación de HotXLS

Miembros adicionales de la API de la fachada XLSX

Esta página cubre los miembros públicos más pequeños de la API declarados por lxHandleX, incluidas las opciones de exportación HTML y las funciones auxiliares para los llamadores que trabajan directamente con referencias de celda XLSX o texto de carga XML

Límite de memoria de arrays de fórmula

property FormulaArrayMemoryLimit: Int64;
      
Acota la carga asignada por los arrays de fórmula generados como MUNIT, tiene 64 MiB por defecto, se aplica a los workers de recálculo paralelo y recorta los valores por debajo de un elemento Double element

Opciones de exportación HTML

type
  TXLSXHtmlExportOptions = class
    constructor Create;
    property Title: WideString;
    property WriteDocument: Boolean;
    property IncludeStyles: Boolean;
    property IncludeBOM: Boolean;
    property TableClass: WideString;
  end;
      
TitleSets the document title when WriteDocument Establece el título del documento cuando WriteDocument es True
WriteDocumentCuando es True, escribe un documento HTML completo. Cuando es False, escribe solo el fragmento de tabla
IncludeStylesControla si el HTML exportado incluye CSS generado e información de estilo en línea
IncludeBOMControla si la salida a archivo y a flujo comienza con un BOM UTF-8
TableClassAñade un nombre de clase CSS al elemento <table> generado

Funciones auxiliares de referencia XLSX

function XlsxColumnLabel(Col: Integer): WideString;
function XlsxCellRef(Row, Col: Integer): WideString;
function XlsxColumnIndex(const ColumnLabel: WideString): Integer;
function XlsxParseCellRef(const Ref: WideString; out Row, Col: Integer): Boolean;
function XlsxParseRangeRef(const Ref: WideString; out Row1, Col1, Row2, Col2: Integer): Boolean;
      
XlsxColumnLabelConvierte un índice de columna basado en uno en una etiqueta de columna estilo A1 como A, Zo AA
XlsxCellRefConstruye una referencia de celda estilo A1 a partir de números de fila y columna basados en uno
XlsxColumnIndexConvierte una etiqueta de columna estilo A1 en un índice de columna basado en uno
XlsxParseCellRefAnaliza una única referencia de celda estilo A1 y devuelve las coordenadas de fila y columna
XlsxParseRangeRefAnaliza un rango rectangular estilo A1 y devuelve los límites inclusivos basados en uno

Funciones auxiliares de escape XML XLSX

function XlsxEscapeText(const Value: WideString): WideString;
function XlsxEscapeAttr(const Value: WideString): WideString;
      
XlsxEscapeText escapa el contenido de nodos de texto XML, mientras que XlsxEscapeAttr escapa los valores de atributo XML y conserva los espacios en blanco de los atributos que Excel debe leer de vuelta exactamente

Tipos de soporte para los miembros XLSX avanzados

Los miembros XLSX avanzados documentados en este archivo de ayuda pasan y devuelven los siguientes tipos planos, declarados en lxHandleX

{ Find and replace }
TXLSXFindFlag = (lxfMatchCase, lxfWholeCell, lxfSearchFormulas,
  lxfUseWildcards, lxfBackward, lxfByColumns);
TXLSXFindOptions = set of TXLSXFindFlag;
TXLSXReplaceAction = (raReplace, raSkip, raAbort);
TXLSXReplaceEvent = function(ARow, ACol: Integer;
  const ACurrentText: WideString; var ANewText: WideString):
  TXLSXReplaceAction of object;

{ Progress and recalculation policy }
TXLSXProgressPhase = (xlsxProgressReading, xlsxProgressWriting,
  xlsxProgressCalculating, xlsxProgressExporting);
TXLSXProgressState = (ppsBegin, ppsWork, ppsEnd);
TXLSXRecalcMode = (xrmManual, xrmIfDirty, xrmAlways);
TXLSXPasswordEvent = procedure(Sender: TObject;
  var PassWord: WideString) of object;

{ Custom document properties (docProps/custom.xml) }
TXLSXCustomPropType = (xcptText, xcptNumber, xcptDate, xcptBoolean);
TXLSXCustomProperty = class
  Name: WideString;
  PropType: TXLSXCustomPropType;
{ + TextValue, NumberValue, DateValue, BoolValue accessors }
end;

{ Table styles, fills, sorts, external links, controls, sparklines }
TXLSXTableStyleSectionKind = (xltssWholeTable, xltssHeaderRow,
  xltssTotalRow, xltssFirstColumn, xltssLastColumn, xltssFirstRowStripe,
  xltssSecondRowStripe, xltssFirstColumnStripe, xltssSecondColumnStripe,
  xltssFirstHeaderCell, xltssLastHeaderCell, xltssFirstTotalCell,
  xltssLastTotalCell { + subtotal and subheading slots });
TXLSXFillPattern = (xlsxFillNone, xlsxFillSolid, xlsxFillGray125
  { + the remaining ECMA-376 pattern values });
TXLSXGradientKind = (xlsxGradientNone, xlsxGradientLinear, xlsxGradientPath);
TXLSXSortBy = (xlsxBsValue, xlsxBsCellColor, xlsxBsFontColor, xlsxBsIcon);
TXLSXSortMethod = (xlsxSmNone, xlsxSmStroke, xlsxSmPinYin);
TXLSXExternalLinkKind = (xlsxExternalLinkUnknown, xlsxExternalLinkWorkbook,
  xlsxExternalLinkDde { + the remaining link kinds });
TXLSXFormControlType = (xfcButton, xfcCheckBox, xfcRadioButton, xfcComboBox,
  xfcListBox);
TXLSXSparklineAxisType = (xlsxSparklineAxisIndividual,
  xlsxSparklineAxisGroup, xlsxSparklineAxisCustom);
TXLSXSparklineEmptyCells = (xlsxSparklineEmptyGap, xlsxSparklineEmptyZero,
  xlsxSparklineEmptySpan);

{ Chart authoring and layout }
TXLSXChartBarGrouping = (xlsxBarGroupClustered, xlsxBarGroupStacked,
  xlsxBarGroupPercentStacked);
TXLSXChartMarkerSymbol = (xlsxMarkerAuto, xlsxMarkerCircle, xlsxMarkerDash,
  xlsxMarkerDiamond, xlsxMarkerDot, xlsxMarkerPlus, xlsxMarkerSquare,
  xlsxMarkerStar, xlsxMarkerTriangle, xlsxMarkerX, xlsxMarkerNone);
TXLSXChartDataLabelPos = (xlsxDlblPosDefault, xlsxDlblPosCenter,
  xlsxDlblPosInEnd, xlsxDlblPosOutEnd, xlsxDlblPosBestFit, xlsxDlblPosLeft,
  xlsxDlblPosRight, xlsxDlblPosTop, xlsxDlblPosBottom);
TXLSXChartMutable = class;     { mutable base of the chart model nodes }
TXLSXChartLayoutRect = record
  Left, Top, Right, Bottom: Double;
end;
TXLSXChartResolvedLayout = record
  ChartRect: TXLSXChartLayoutRect;
  TitleRect: TXLSXChartLayoutRect;
  LegendRect: TXLSXChartLayoutRect;
  PlotOuterRect: TXLSXChartLayoutRect;
  PlotInnerRect: TXLSXChartLayoutRect;
  { + per-axis title rectangles and visibility flags }
end;

{ Pagination keep-together blocks }
TXLSXKeepTogetherRange = record
  Row1, Row2: Integer;
  Level: Integer;
  ReplaceBiggerLevels: Boolean;
end;
TXLSXKeepTogetherCols = record
  Col1, Col2: Integer;
  Level: Integer;
  ReplaceBiggerLevels: Boolean;
end;

{ Diagnostics records }
TXLSXValidationIssue = record
  Row, Col: Integer;
  ValidationIndex: Integer;
  Reason: WideString;
end;
TXLSXUnknownFunctionInfo = record
  Sheet: Integer;
  Row, Col: Integer;
  Name: WideString;
  LocationKind: TXLSFormulaSymbolLocationKind;
  DefinedNameIndex: Integer;
  DefinedName: WideString;
end;
TXLSXRowMajorOrder = record
  CellOrder: array of Integer;
  RowStarts: array of Integer;
  MaxRow: Integer;
end;
      
Find and replaceTXLSXWorksheet.FindText / FindTextIn aceptan TXLSXFindOptions (coincidir mayúsculas y minúsculas, celda completa, buscar fórmulas, comodines, hacia atrás, por columnas) y ReplaceText toma un TXLSXReplaceEvent cuyo resultado selecciona raReplace, raSkipo raAbort por coincidencia, con un ANewText escribible para sustituciones por celda
Progress and savingTXLSXWorkbook.OnProgress / OnProgressEx entregan TXLSXProgressPhase y (en forma extendida) TXLSXProgressState con un indicador Abort ; RecalcBeforeSave es un TXLSXRecalcMode que selecciona el recálculo manual, solo si hay cambios o siempre antes de la serialización; OnPassword es un TXLSXPasswordEvent que suministra contraseñas de apertura y escritura
Custom propertiesTXLSXWorkbook.CustomProperties es una colección TXLSXCustomProperties con creadores tipados AddText / AddNumber / AddDate / AddBoolean , FindByName, Deletey Clear, además de la enumeración Count e Items ; cada TXLSXCustomProperty etiqueta su valor con un TXLSXCustomPropType que corresponde al mapeo de variantes de ECMA-376
Style overlaysTXLSXStyleOverlays gestiona invalidaciones por rango sobre los estilos almacenados: Add crea una, ApplyToCell cambia el estilo de una sola celda, Resolve, ResolveRowDefaulty ResolveColumnDefault responden a las búsquedas de estilo durante la carga, HasVirtualStyle informa de estilos generados, MaxVirtualRow acota las filas virtuales, ApplyStructuralEdit desplaza las superposiciones tras editar filas o columnas, y Clear, Counte Items mantienen la colección
Styles, fills, and overlaysTXLSXFill expone Pattern, GradientKindy GradientStops mediante TXLSXFillPattern, TXLSXGradientKindy TXLSXGradientStop; TXLSXWorksheet.StyleOverlays es una colección TXLSXStyleOverlays cuyas entradas TXLSXStyleOverlay llevan un rectángulo, las partes de formato afectadas y el estilo de celda que prevalece
Tables, sorts, and linksLos estilos de tabla personalizados (TXLSXWorkbook.CustomTableStyles) construyen el formato de secciones a partir de ranuras TXLSXTableStyleSectionKind : la colección ofrece Add, FindByName, Delete, Clear, Counte Items, mientras que cada TXLSXCustomTableStyle expone Name, SectionSize, PivotStyley TableStyleFlag y responde a las búsquedas HasSection / ResolveSection ; las condiciones de ordenación clasifican las claves con TXLSXSortBy y el orden del texto con TXLSXSortMethod; TXLSXExternalLink.Kind es un TXLSXExternalLinkKind y cada vínculo enumera entradas TXLSXExternalDefinedName con Name y RefersTo
Custom XML partsTXLSXWorkbook.CustomXmlParts preserva XML personalizado específico de elemento: Add, Deletey Clear mantienen las partes, cada TXLSXCustomXmlPart lleva su carga en Xml más un ItemId y una lista de cadenas SchemaRefs de relaciones de esquema (AddSchemaRef añade), y las partes preservadas hacen round-trip al guardar sin cambios
Cell style payloadsTXLSXCellStylePayload es un paquete de estilo inmutable compartible adjunto a celdas individuales: Acquire / Release gestionan su recuento de referencias, Clone lo copia, IsDefault comprueba el estilo predeterminado, e InternKey identifica cargas iguales para que el almacenamiento pueda deduplicarlas
Controls, drawings, and sparklinesTXLSXWorksheet.FormControls es una colección TXLSXFormControls de objetos TXLSXFormControl — cada uno expone ControlType, Caption, MacroName, LinkedCelly su lista Items — tipificados por TXLSXFormControlType, con TXLSXFormControlItems conteniendo el texto de elementos por control; los objetos de dibujo informan de su tipo mediante TXLSDrawingObjectKind, y los grupos de sparklines exponen el escalado de ejes y el comportamiento de celdas vacías mediante TXLSXSparklineAxisType y TXLSXSparklineEmptyCells
ChartsLos grupos de trazado y las series clasifican la agrupación de barras, los símbolos de marcador y las posiciones de etiquetas de datos con las enumeraciones TXLSXChartBarGrouping, TXLSXChartMarkerSymboly TXLSXChartDataLabelPos ; los nodos del modelo de gráfico comparten la clase base TXLSXChartMutable , y TXLSXChartLayoutResolver.ResolveChart rellena un TXLSXChartResolvedLayout de rectángulos TXLSXChartLayoutRect para el gráfico, el título, la leyenda, el trazado y los títulos de ejes
Pagination keep blocksKeepRowsTogether / KeepColumnsTogether en la superficie de paginación XLSX mantienen registros TXLSXKeepTogetherRange y TXLSXKeepTogetherCols para que la planificación de saltos de página mantenga un bloque en una sola página
DiagnosticsTXLSXWorksheet.CheckDataValidations devuelve registros TXLSXValidationIssue (celda, índice de validación, motivo); TXLSXWorkbook.ScanUnknownFunctions devuelve registros TXLSXUnknownFunctionInfo que localizan llamadas no implementadas en celdas y nombres definidos; TXLSXCells.GetStorageStatistics rellena un registro TXLSXCellStorageStatistics con la contabilidad de celdas, bloques de filas, bytes por carga y blancos con estilo; TXLSXWorksheet.BuildRowMajorCellOrder devuelve un TXLSXRowMajorOrder que describe el orden de recorrido en memoria de las celdas pobladas
TXLSXWorkbook.FormulaLocale lee o escribe la etiqueta de configuración regional usada al analizar y serializar fórmulas, en paralelo con el manejo de configuración regional de fórmulas del libro clásico

Table slicers

Los table slicers (Excel 2013+) se escriben e inspeccionan a través de dos colecciones: TXLSXWorksheet.Slicers contiene las vistas de slicer por hoja (TXLSXSlicer) y TXLSXWorkbook.SlicerCaches contiene los orígenes de datos compartidos (TXLSXSlicerCache)

property TXLSXWorksheet.Slicers: TXLSXSlicers;
property TXLSXWorkbook.SlicerCaches: TXLSXSlicerCaches;

{ TXLSXSlicers }
function Add(ATable: TXLSXTable; const AColumnName: WideString): TXLSXSlicer; overload;
function Add(ATable: TXLSXTable; const AColumnName: WideString;
  ARow1, ACol1, ARow2, ACol2: Integer): TXLSXSlicer; overload;
function IndexByName(const AName: WideString): Integer;
function FindByName(const AName: WideString): TXLSXSlicer;
procedure Delete(Index: Integer);
procedure Clear;
property Count: Integer;
property Items[Index: Integer]: TXLSXSlicer;

{ TXLSXSlicer view }
property Name: WideString;          { workbook-unique }
property CacheName: WideString;
property Cache: TXLSXSlicerCache;
property Caption: WideString;
property StartItem: Integer;
property ColumnCount: Integer;
property ColumnWidth: WideString;
property ShowCaption: Integer;
property StyleName: WideString;
property LockedPosition: Integer;
property RowHeight: WideString;
property RowHeightEmu: Integer;
procedure SetBounds(ARow1, ACol1, ARow2, ACol2: Integer);
property FromRow, FromCol, ToRow, ToCol: Integer;   { anchor cell corners }
property FromRowOff, FromColOff, ToRowOff, ToColOff: Integer; { EMU offsets }
property AnchorType: TXLSXAnchorEditAs;
property HasAnchor: Boolean;

{ TXLSXSlicers, load-path entry }
function AddInternal: TXLSXSlicer;

{ TXLSXSlicerCache }
property Name: WideString;          { e.g. Slicer_Region }
property SourceName: WideString;    { source table column / pivot field }
property IsTableCache: Boolean;
property IsPivot: Boolean;
property IsNonOlapPivot: Boolean;
property ItemCount: Integer;
property ItemCacheIndex[Index: Integer]: Integer;
property ItemSelected[Index: Integer]: Boolean;
function SetSelectedItems(const CacheItemIndices: array of Integer): Integer;
function ClearSelection: Integer;
property TableId: Integer;
property TableColumnId: Integer;
property SortOrder: WideString;     { '' | ascending | descending }
property CrossFilter: WideString;   { '' | none | showItemsWithDataAtTop | showItemsWithNoData }
property CustomListSort: Integer;   { -1 absent, else 0/1 }

{ TXLSXSlicerCaches }
function Add: TXLSXSlicerCache;
function FindByName(const AName: WideString): TXLSXSlicerCache;
function IndexOfName(const AName: WideString): Integer;
function FindForTableColumn(ATableId, ATableColumnId: Integer): TXLSXSlicerCache;
procedure Delete(Index: Integer);
procedure Clear;
property Count: Integer;
property Items[Index: Integer]: TXLSXSlicerCache;
      

Slicers.Add(Table, ColumnName) construye un slicer de principio a fin: registra o reutiliza la caché de respaldo llamada Slicer_<column>, reserva el nombre definido #N/A correspondiente, escribe la extensión slicerList de la hoja de cálculo y ancla la vista con un ancla de dibujo de compatibilidad de marcado cuyo aviso de reserva cubre las versiones anteriores de Excel; la segunda sobrecarga fija el rectángulo de la vista; de lo contrario, se usa un ancla por defecto a la derecha de la tabla

Las vistas y cachés cargadas se vuelven a analizar al abrir, las cachés compartidas se reutilizan entre vistas, y eliminar la última vista de una caché elimina la caché; los atributos y extensiones no reconocidos conservan su representación original, mientras que los enlaces de tabla siguen los identificadores de tabla guardados y las conexiones dinámicas admitidas siguen las identidades de hoja guardadas

Las cachés dinámicas no OLAP importadas admitidas exponen la inspección de miembros con tipos y cambios de selección protegidos a través de IsNonOlapPivot, ItemCount, ItemCacheIndex, ItemSelected, SetSelectedItemsy ClearSelection; consulte selección de Pivot Slicer para conocer el comportamiento de vista compartida, la atomicidad ante fallos y el límite de máscara de mismo campo importado

Las cachés dinámicas no admitidas conservan sus bytes originales; una vista de slicer cargada de un archivo también es accesible como objeto de dibujo a través de TXLSXDrawingObject.Slicer

Ejemplo

var
  Ref: WideString;
  Row, Col: Integer;
begin
  Ref := XlsxCellRef(10, 5);
  if XlsxParseCellRef(Ref, Row, Col) then
    Worksheet.Cells.Item[Row, Col].Value := 'Checked';
end;
    

Consulte la API de infraestructura de libros para las devoluciones de llamada de E/S, los pools de estilos del serializador, la verificación de archivos cifrados y los contratos del grafo de dependencias del espacio de trabajo