Documentación HotXLS

Clases TXLSXCell / TXLSXCells

Acceso a valores de celda en una TXLSXWorksheet TXLSXCell es una única celda (valor más fórmula opcional e índice de formato); TXLSXCells es la colección por hoja de cálculo alcanzable a través de Worksheet.Cells. Declarados en lxHandleX

Declaración de TXLSXCell

type
  TXLSXCell = class
    constructor Create(ARow, ACol: Integer; const AValue: Variant);
    destructor Destroy; override;
    procedure SetWorkbook(AWorkbook: TXLSXWorkbook);
    procedure SetArrayRoot(ARootRow, ARootCol: Integer);
    procedure SetArrayRange(ARootRow, ARootCol, ALastRow, ALastCol: Integer);
    property Workbook: TXLSXWorkbook;
    property ArrayRootRow: Integer;
    property ArrayRootCol: Integer;
    property ArrayLastRow: Integer;
    property ArrayLastCol: Integer;
    property Row: Integer;
    property Col: Integer;
    property Value: Variant;
    property FormatIndex: Integer;
    property FontIndex: Integer;
    property FillIndex: Integer;
    property BorderIndex: Integer;
    property NumberFormatIndex: Integer;
    property NumberFormat: WideString;
    property AlignmentIndex: Integer;
    property ProtectionIndex: Integer;
    property Formula: WideString;
    property RichText: TXLSXRichText;
    property Locked: Boolean;
    property FormulaHidden: Boolean;
    property FormattedText: WideString;
    property TaggedText: WideString;
    property NamedStyleXfId: Integer;
    property LinkedStyle: TXLSXLinkedStyle;
  end;
      

Miembros de TXLSXCell

Destroy Libera el estado de la instancia y los recursos de su propiedad
SetWorkbook Escribe la referencia del libro propietario para que operaciones como las búsquedas de formato de número puedan reutilizar los pools compartidos del libro en tiempo O(1)
SetArrayRoot / SetArrayRange Establecen los marcadores ArrayRoot* y ArrayLast* para los anclajes de derrame de fórmulas array, de modo que una celda raíz mapea todas las celdas dependientes del mismo rectángulo
Workbook Referencia inversa a la TXLSXWorkbook propietaria, establecida por la creación de celdas de la hoja de cálculo
ArrayRootRow / ArrayRootCol / ArrayLastRow / ArrayLastCol Metadatos de derrame CSE de solo lectura que usan los round-trips de guardado/carga para los rectángulos de fórmulas array
Row Índice de fila basado en uno
Col Índice de columna basado en uno (1 = A, 2 = B, ...)
Value Valor de la celda como Variant. Se admiten cadenas, números, booleanos y TDateTime. Al asignar un TDateTime se toma automáticamente el cellXf de fecha integrado (XlsxXfIndexDate) cuando no hay un FormatIndex explícito
FormatIndex Índice en los cellXfs de xl/styles.xml. Déjelo en 0 para el estilo predeterminado. El índice 1 está reservado para el formato de fecha integrado (numFmtId 14, m/d/yyyy). Cuando se establece, FormatIndex tiene prioridad sobre FontIndex en la celda emitida
FontIndex Índice basado en uno en TXLSXWorkbook.Fonts Déjelo en 0 para heredar la Calibri 11 predeterminada
FillIndex Índice basado en uno en TXLSXWorkbook.Fills Vea TXLSXFill
BorderIndex Índice basado en uno en TXLSXWorkbook.Borders Vea TXLSXBorder
NumberFormatIndex Índice basado en uno en TXLSXWorkbook.NumberFormats Úselo para códigos de formato personalizados como '$#,##0.00' o 'yyyy-mm-dd hh:mm:ss'
NumberFormat Propiedad de conveniencia para texto de formato de número personalizado La lectura devuelve el código de formato del pool de formatos de número del libro cuando NumberFormatIndex apunta a uno; asignar una cadena busca o añade el formato y actualiza NumberFormatIndex
AlignmentIndex Índice basado en uno en TXLSXWorkbook.Alignments Vea TXLSXAlignment para los controles por entrada de horizontal / vertical / ajuste / sangría / rotación
RichText Carga opcional de TXLSXRichText de su propiedad Cuando se establece, la celda pasa por la tabla de cadenas compartidas como una entrada <si> multi-tramo en lugar de una cadena plana; asignar nil revierte al valor Variant de la celda
Precedence Cuando se establecen varias propiedades *Index en la misma celda, el lado de SaveAs elige el cellXf correspondiente en este orden: FormatIndex > FontIndex > FillIndex > BorderIndex > NumberFormatIndex
Formula Texto de fórmula opcional (sin el = inicial). Cuando se establece, SaveAs emite un elemento hijo <f> junto al valor de la celda, y Open lo lee de vuelta
ProtectionIndex Índice en el pool de protección del libro. Las propiedades de conveniencia Locked y FormulaHidden mantienen este índice automáticamente en el uso común
Locked Cuando es True (valor predeterminado de cada celda nueva), la celda queda protegida cuando la hoja de cálculo está protegida. Establezca False para permitir editar una celda concreta dentro de una hoja protegida. Escribe un atributo <protection locked="0"/> dentro del cellXf de la celda cuando difiere del valor predeterminado
FormulaHidden Cuando es True, la barra de fórmulas no muestra la fórmula de la celda mientras la hoja está protegida. El valor predeterminado es False. Emite <protection hidden="1"/> en el cellXf correspondiente
FormattedText WideString de solo lectura. Devuelve el valor de la celda formateado como cadena según su código de formato de número personalizado o integrado activo.
TaggedText WideString de solo lectura. Devuelve la cadena formateada de la celda, conteniendo etiquetas de formato tipo HTML/XML para estilos de texto enriquecido cuando corresponde.
NamedStyleXfId Integer de solo lectura. Devuelve el índice cellXfs del estilo con nombre al que esta celda está vinculada, o -1 cuando la celda no tiene carga de estilo
LinkedStyle Registro TXLSXLinkedStyle de lectura/escritura. Vincula la celda a un estilo con nombre: AutomaticChoose deja que Excel elija el estilo automáticamente y LinkedParts selecciona qué partes del formato (fuente, relleno, borde, formato de número, alineación, protección) siguen el estilo vinculado

Declaración de TXLSXCells

type
  TXLSXCells = class
    constructor Create(AOwnerSheet: TXLSXWorksheet);
    destructor Destroy; override;
    procedure Clear;
    function HasCell(ARow, ACol: Integer): Boolean;
    function Remove(ARow, ACol: Integer): Boolean;
    property Item[ARow, ACol: Integer]: TXLSXCell; default;
    property Count: Integer;
    property CellByIndex[Index: Integer]: TXLSXCell;
  end;
      

Miembros de TXLSXCells

Create Construye una colección de celdas ligada a una hoja de cálculo propietaria
Destroy Libera todas las celdas de las que es propietaria la colección
Item[Row, Col] Devuelve la celda en las coordenadas basadas en uno indicadas, creando una TXLSXCell vacía en el primer acceso. Declarada como propiedad predeterminada para que Cells[Row, Col] funcione como abreviatura
Count Número de celdas almacenadas actualmente
CellByIndex[i] Celda en el índice de inserción basado en cero dado. Útil para enumeración secuencial sin conocimiento previo de las filas y columnas pobladas
Remove Elimina una celda existente en la coordenada y devuelve si la eliminación ocurrió realmente
HasCell(Row, Col) Devuelve True si ya existe una celda en las coordenadas indicadas. Úselo para evitar crear una celda vacía como efecto secundario de Item[Row, Col]
Clear Elimina y libera todas las celdas de la colección

Ejemplo

var
  ws: TXLSXWorksheet;
  i: Integer;
begin
  ws := Workbook.Sheets.Add('Demo');

  ws.Cells.Item[1, 1].Value := 'Hello';
  ws.Cells.Item[1, 2].Value := 123.45;
  ws.Cells.Item[2, 1].Value := Now;             // renders as a date
  ws.Cells.Item[2, 2].Formula := 'SUM(B1:B1)';

  for i := 0 to ws.Cells.Count - 1 do
    WriteLn(ws.Cells.CellByIndex[i].Row, ',',
            ws.Cells.CellByIndex[i].Col);
end;
    

Véase también