HotXLS Docs

Обзор XLSX Facade (lxHandleX)

lxHandleX — это специализированный модуль фасада для рабочих процессов с рабочими книгами Excel 2007+ (.xlsx) и OpenDocument Spreadsheet (.ods). Он сосуществует с оригинальным фасадом lxHandle , благодаря чему унаследованный код продолжает работать без каких-либо изменений:

Иерархия классов

Фасад XLSX предоставляет следующие классы:

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
      

Эти классы не зависят от lxHandle.TXLSWorkBook и lxHandle.TXLSWorksheet. Приложения, которым требуются оба формата, могут использовать оба фасада параллельно:

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

Быстрый старт

Фасад XLSX следует тем же соглашениям о сигнатурах вызовов, что и фасад BIFF — SaveAs / Open для рабочей книги, Sheets.Add / Sheets[i] для коллекции рабочих листов и Cells.Item[Row, Col].Value для коллекции ячеек. Приведенный ниже пример создает небольшую рабочую книгу, использующую все поддерживаемые на данный момент функции:

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;
      

Поддерживаемые функции

API дополнительных коллекций фасада

Классы коллекций фасада управляют условными форматами, проверками данных, именованными диапазонами, изображениями и таблицами. Ниже приведены основные члены каждой коллекции:

Поддерживаемые функции

Общая инфраструктура

Оба фасада используют общий набор вспомогательных модулей более низкого уровня, что означает, что дескрипторы стилей, хэш-таблицы, деревья AVL, ввод-вывод ZIP и XML, преобразования RGB-в-HLS и построители строк пишутся один раз и используются обоими путями. Общие вспомогательные модули включают в себя:

Смотрите также