Documentación HotXLS

Descripción general de la fachada XLSX (lxHandleX)

lxHandleX es la unidad de fachada dedicada para los flujos de trabajo de libros de Excel 2007+ (.xlsx) y hoja de cálculo OpenDocument (.ods). Coexiste con la fachada original lxHandle para que el código heredado siga funcionando sin ningún cambio:

Jerarquía de clases

La fachada XLSX expone las siguientes clases:

type
  TXLSXWorkbook           = class  // top-level workbook with SaveAs / Open
  TXLSXHtmlExportOptions  = class  // HTML document, style, BOM, and table class options
  TODSExportOptions        = class  // ODS export options for generator, chart, and image output
  TXLSXSheets             = class  // worksheet collection on the workbook
  TXLSXFonts              = class  // workbook-level font palette
  TXLSXFont               = class  // single font descriptor
  TXLSXFills              = class  // workbook-level fill palette
  TXLSXFill               = class  // single fill (pattern + fg/bg color)
  TXLSXBorders            = class  // workbook-level border palette
  TXLSXBorder             = class  // four edges + diagonal border
  TXLSXNumberFormats      = class  // workbook-level custom format codes
  TXLSXDefinedNames       = class  // workbook-level named ranges
  TXLSXWorksheet          = class  // single worksheet with cells and decorations
  TXLSXStructuralEditRegistry = class  // ordered application participants for row and column reference updates
  TXLSXCells              = class  // cell collection on the worksheet
  TXLSXCell               = class  // single cell (value, formula, *Index style refs)
  TXLSXRange              = class  // rectangular worksheet range wrapper
  TXLSXMergedCells        = class  // merged-range collection
  TXLSXHyperlinks         = class  // hyperlink collection
  TXLSXComments           = class  // cell-comment collection
  TXLSXImages             = class  // image collection (drawings + media)
  TXLSXConditionalFormats = class  // conditional formatting rules
  TXLSXDataValidations    = class  // data-validation rules
  TXLSXTables             = class  // Excel-style table collection
  TXLSXCharts             = class  // chart collection (anchored or full-page)
  TXLSXChart              = class  // single or combination chart with primary, secondary, date, value, and series axes
  TXLSXChartPlotGroup     = class  // ordered chart-family group with its own series and axis pair
  TXLSXChartSeries        = class  // chart series with formula ranges and typed literal caches
  TXLSXTextBox            = class  // standalone worksheet drawing text box
  TXLSXRichText           = class  // per-run rich-text payload for cells
  TXLSXAlignment          = class  // cell alignment / wrap / indent / rotation
  TXLSXExternalLinks      = class  // external workbook link collection
  TXLSXExternalLink       = class  // single external workbook reference (Target URL + SheetNames)
  TXLSConnections                                              = class  // external data connection collection
  TXLSConnection                                               = class  // database, web, text, and refresh connection metadata
  TXLSQueryTables                                              = class  // worksheet query-result collection
  TXLSQueryTable                                               = class  // query ownership, fields, and result binding
      

Estas clases son independientes de lxHandle.TXLSWorkBook y lxHandle.TXLSWorksheet. Las aplicaciones que necesitan ambos formatos pueden usar ambas fachadas una junto a la otra:

uses
  lxHandle,   // XLS / HTML / RTF / CSV workbook (TXLSWorkBook)
  lxHandleX;  // XLSX workbook (TXLSXWorkbook)
      

Inicio rápido

La fachada XLSX sigue las mismas convenciones de llamada que la fachada BIFF — SaveAs / Open en el libro de trabajo, Sheets.Add / Sheets[i] en la colección de hojas de cálculo, y Cells.Item[Row, Col].Value en la colección de celdas. El siguiente ejemplo escribe un libro pequeño que ejercita todas las funciones compatibles actualmente:

uses lxHandleX;

var
  wb: TXLSXWorkbook;
  ws: TXLSXWorksheet;
  bold, yellow, box, currency: Integer;
begin
  wb := TXLSXWorkbook.Create;
  try
    bold     := wb.Fonts.Add('Calibri', 12, True, False);
    yellow   := wb.Fills.AddSolid($FFFFFF00);
    box      := wb.Borders.AddBox(xlsxBorderThin);
    currency := wb.NumberFormats.Add('"$"#,##0.00');

    ws := wb.Sheets.Add('Demo');
    ws.Cells.Item[1, 1].Value := 'Hello';
    ws.Cells.Item[1, 1].FontIndex := bold + 1;
    ws.Cells.Item[1, 2].Value := 123.45;
    ws.Cells.Item[1, 2].NumberFormatIndex := currency + 1;
    ws.Cells.Item[2, 1].Value := Now;                 // tagged as date
    ws.Cells.Item[2, 2].Formula := 'SUM(B1:B1)';
    ws.Cells.Item[3, 1].FillIndex := yellow + 1;      // highlight cell
    ws.Cells.Item[3, 2].BorderIndex := box + 1;       // boxed cell
    ws.ColWidth[1] := 24;
    ws.RowHeight[1] := 28;
    ws.MergeCells(4, 1, 4, 3);
    ws.Range['A8:C10'].Merge(True);                  // merge across rows
    ws.AddHyperlink(5, 1, 'https://www.loslab.com', 'Visit losLab');
    ws.AddComment(5, 2, 'Important note', 'Kevin');
    ws.AddImageFromFile(6, 1, 'logo.png');
    ws.AddConditionalFormat('B1:B10', xlsxCfOpGreaterThan, '100');
    ws.AddListValidation('C1:C5', 'Yes,No,Maybe');
    wb.DefinedNames.Add('SalesData', 'Demo!$A$1:$B$10');
    wb.SaveAs('demo.xlsx');
  finally
    wb.Free;
  end;
end;
      

Funciones compatibles

API de subcolecciones de fachada

Las clases de colección de la fachada gestionan formatos condicionales, validaciones de datos, rangos con nombre, imágenes y tablas. Estos son los miembros principales de cada colección:

Funciones compatibles

Infraestructura compartida

Ambas fachadas comparten un conjunto común de unidades auxiliares de bajo nivel, lo que significa que los descriptores de estilo, las tablas hash, los árboles AVL, la E/S ZIP y XML, las conversiones RGB-HLS y los constructores de cadenas se escriben una vez y se usan en cualquiera de las rutas Los auxiliares compartidos incluyen:

Véase también