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 útil XML
property FormulaArrayMemoryLimit: Int64;
MUNIT, tiene como valor predeterminado 64 MiB, se aplica a los trabajadores de recálculo en paralelo y acota los valores por debajo de un elemento Double element
type
TXLSXHtmlExportOptions = class
constructor Create;
property Title: WideString;
property WriteDocument: Boolean;
property IncludeStyles: Boolean;
property IncludeBOM: Boolean;
property TableClass: WideString;
end;
| Title | Establece el título del documento cuando WriteDocument es True |
| WriteDocument | Cuando es True, escribe un documento HTML completo. Cuando es False, escribe solo el fragmento de tabla |
| IncludeStyles | Controla si el HTML exportado incluye CSS generado e información de estilo en línea |
| IncludeBOM | Controla si la salida a archivo y a flujo comienza con una BOM UTF-8 |
| TableClass | Agrega un nombre de clase CSS al elemento <table> generado |
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;
| XlsxColumnLabel | Convierte un índice de columna de base 1 en una etiqueta de columna de estilo A1, como A, Zo AA |
| XlsxCellRef | Construye una referencia de celda de estilo A1 a partir de números de fila y columna de base 1 |
| XlsxColumnIndex | Convierte una etiqueta de columna de estilo A1 en un índice de columna de base 1 |
| XlsxParseCellRef | Analiza una referencia de celda única de estilo A1 y devuelve las coordenadas de fila y columna |
| XlsxParseRangeRef | Analiza un rango rectangular de estilo A1 y devuelve límites inclusivos de base 1 |
function XlsxEscapeText(const Value: WideString): WideString;
function XlsxEscapeAttr(const Value: WideString): WideString;
XlsxEscapeText escapa el contenido del nodo de texto XML, mientras que XlsxEscapeAttr escapa los valores de atributo XML y preserva el espacio en blanco de los atributos que Excel debe leer de vuelta exactamente
Los miembros avanzados de XLSX documentados en este archivo de ayuda pasan y devuelven los siguientes tipos sencillos, 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 replace | TXLSXWorksheet.FindText / FindTextIn aceptan TXLSXFindOptions (coincidir mayúsculas, celda completa, buscar fórmulas, comodines, hacia atrás, por columnas) y ReplaceText recibe un TXLSXReplaceEvent cuyo resultado selecciona raReplace, raSkipo raAbort por coincidencia, con un ANewText escribible para sustituciones por celda |
| Progress and saving | TXLSXWorkbook.OnProgress / OnProgressEx entregan TXLSXProgressPhase y (en la forma extendida) TXLSXProgressState con un flag de Abort ; RecalcBeforeSave es un TXLSXRecalcMode que selecciona recálculo manual, solo si hay cambios, o siempre antes de la serialización; OnPassword es un TXLSXPasswordEvent que proporciona las contraseñas de apertura y de escritura |
| Custom properties | TXLSXWorkbook.CustomProperties es una colección TXLSXCustomProperties con creadores con tipos AddText / AddNumber / AddDate / AddBoolean , además de FindByName, Deletey Clear, y la enumeración Count e Items ; cada TXLSXCustomProperty etiqueta su valor con un TXLSXCustomPropType que corresponde al mapeo de variantes de ECMA-376 |
| Style overlays | TXLSXStyleOverlays gestiona anulaciones por rango sobre los estilos almacenados: Add crea una, ApplyToCell restiliza una celda, Resolve, ResolveRowDefaulty ResolveColumnDefault responden a las búsquedas de estilo durante la carga, HasVirtualStyle informa los 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 overlays | TXLSXFill 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 anula |
| Tables, sorts, and links | Los 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 parts | TXLSXWorkbook.CustomXmlParts preserva XML personalizado específico de elemento: Add, Deletey Clear mantienen las partes, cada TXLSXCustomXmlPart lleva su carga útil en Xml más un ItemId y una lista de cadenas SchemaRefs de relaciones de esquema (AddSchemaRef agrega), y las partes preservadas hacen round-trip intactas al guardar |
| Cell style payloads | TXLSXCellStylePayload es un paquete de estilo inmutable y compartible adjunto a celdas individuales: Acquire / Release gestionan su contador de referencias, Clone lo copia, IsDefault comprueba el estilo predeterminado, e InternKey identifica cargas útiles iguales para que el almacenamiento pueda deduplicarlas |
| Controls, drawings, and sparklines | TXLSXWorksheet.FormControls es una colección TXLSXFormControls de objetos TXLSXFormControl — cada uno expone ControlType, Caption, MacroName, LinkedCelly su lista Items — con tipos de TXLSXFormControlType, con TXLSXFormControlItems conteniendo el texto de elementos por control; los objetos de dibujo informan su tipo mediante TXLSDrawingObjectKind, y los grupos de minigráficos exponen el escalado de ejes y el comportamiento de celdas vacías mediante TXLSXSparklineAxisType y TXLSXSparklineEmptyCells |
| Charts | Los 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 los enums 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 área de trazado y los títulos de ejes |
| Pagination keep blocks | KeepRowsTogether / 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 |
| Diagnostics | TXLSXWorksheet.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 útil 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 espejo del manejo de configuración regional de fórmulas del libro de trabajo clásicoLos slicers de tabla (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 predeterminada a la derecha de la tabla
Las vistas y las 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 vínculos de tabla rastrean los ids de tabla guardados y las conexiones Pivot soportadas rastrean las identidades de hoja guardadas
Las cachés Pivot no OLAP importadas soportadas exponen la inspección con tipos de miembros y cambios de selección protegidos a través de IsNonOlapPivot, ItemCount, ItemCacheIndex, ItemSelected, SetSelectedItemsy ClearSelection; consulte la selección de Slicer de tabla dinámica para el comportamiento de vista compartida, la atomicidad ante fallos y el límite de la máscara del mismo campo importado
Las cachés Pivot no soportadas 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
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 los callbacks de E/S, los pools de estilos del serializador, la verificación de archivos cifrados y los contratos del grafo de dependencias del área de trabajo