Documentación HotXLS

Información general de XLSX Facade (lxHandleX)

lxHandleX es la unidad de fachada dedicada para flujos de trabajo de libros de Excel 2007+ (.xlsx) y OpenDocument Spreadsheet (.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
  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 chart (column / bar / line / pie / scatter / bubble / radar)
  TXLSXChartSeries        = class  // chart series with category, value, and bubble-size ranges
  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)
      

Estas clases son independientes de lxHandle.TXLSWorkBook y lxHandle.TXLSWorksheet. Las aplicaciones que necesiten ambos formatos pueden usar ambas fachadas de forma paralela:

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

Inicio rápido

La fachada XLSX sigue las mismas convenciones de formato de llamada que la fachada BIFF: SaveAs / Open en el libro de trabajo, Sheets.Add / Sheets[i] en la colección de hojas de trabajo y Cells.Item[Row, Col].Value en la colección de celdas. El siguiente ejemplo escribe un pequeño libro que pone a prueba cada característica actualmente compatible:

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;
      

Características admitidas

API de subcolección de fachada

Las clases de colección de fachada administran formatos condicionales, validaciones de datos, rangos con nombre, imágenes y tablas. Aquí están los miembros principales de cada colección:

Características admitidas

Infraestructura compartida

Ambas fachadas comparten un conjunto común de unidades auxiliares de nivel inferior, lo que significa que los descriptores de estilo, las tablas hash, los árboles AVL, la E/S de ZIP y XML, las conversiones de RGB a HLS y los constructores de cadenas se escriben una vez y son utilizados por cualquiera de las rutas; los asistentes compartidos incluyen:

Ver también