Documentación de HotXLS

Clase TXLSXWorkbook

Contenedor de nivel superior para un libro de trabajo de Excel 2007+ (.xlsx). Declarado en lxHandleX. Contiene una colección TXLSXSheets y proporciona puntos de entrada SaveAs / Open para libros de trabajo OOXML, importación de CSV / TSV y flujos de trabajo de lectura/escritura de OpenDocument Spreadsheet (.ods)

Declaración

type
  TXLSXFileFormat = (xlsxOpenXMLWorkbook, xlsxOpenDocumentSpreadsheet);

  TODSExportOptions = class
    constructor Create;
    property Generator: WideString;
    property IncludeCharts: Boolean;
    property IncludeImages: Boolean;
  end;

  TXLSXWorkbook = class
    constructor Create;
    destructor Destroy; override;
    function SaveAs(const FileName: WideString): Integer; overload;
    function SaveAs(const FileName: WideString; FileFormat: TXLSXFileFormat): Integer; overload;
    function SaveAs(Stream: TStream): Integer; overload;
    function SaveAs(Stream: TStream; FileFormat: TXLSXFileFormat): Integer; overload;
    function Open(const FileName: WideString): Integer; overload;
    function Open(const FileName: WideString; const Password: WideString): Integer; overload;
    function Open(Stream: TStream): Integer; overload;
    function OpenCSV(const FileName: WideString): Integer; overload;
    function OpenCSV(const FileName: WideString; ASeparator: WideChar;
      ADetectTypes: Boolean): Integer; overload;
    function OpenCSV(Stream: TStream): Integer; overload;
    function OpenCSV(Stream: TStream; ASeparator: WideChar;
      ADetectTypes: Boolean): Integer; overload;
    function OpenODS(const FileName: WideString): Integer; overload;
    function OpenODS(Stream: TStream): Integer; overload;
    function SaveAsODS(const FileName: WideString): Integer; overload;
    function SaveAsODS(Stream: TStream): Integer; overload;
    function SaveAsODS(const FileName: WideString; Options: TODSExportOptions): Integer; overload;
    function SaveAsODS(Stream: TStream; Options: TODSExportOptions): Integer; overload;
    function GetODSSheetNames(const FileName: WideString; AList: TStrings): Integer; overload;
    function GetODSSheetNames(Stream: TStream; AList: TStrings): Integer; overload;
    function GetSheetNames(const FileName: WideString; AList: TStrings): Integer; overload;
    function GetSheetNames(Stream: TStream; AList: TStrings): Integer; overload;
    function SaveAsCSV(const FileName: WideString): Integer; overload;
    function SaveAsCSV(const FileName: WideString; SheetIndex: Integer; Delimiter: WideChar): Integer; overload;
    function SaveAsCSV(Stream: TStream): Integer; overload;
    function SaveAsCSV(Stream: TStream; SheetIndex: Integer; Delimiter: WideChar): Integer; overload;
    function SaveAsHTML(const FileName: WideString): Integer; overload;
    function SaveAsHTML(const FileName: WideString; Options: TXLSXHtmlExportOptions): Integer; overload;
    function SaveAsHTML(const FileName: WideString; SheetIndex: Integer): Integer; overload;
    function SaveAsHTML(const FileName: WideString; SheetIndex: Integer; Options: TXLSXHtmlExportOptions): Integer; overload;
    function SaveAsHTML(Stream: TStream): Integer; overload;
    function SaveAsHTML(Stream: TStream; Options: TXLSXHtmlExportOptions): Integer; overload;
    function SaveAsHTML(Stream: TStream; SheetIndex: Integer): Integer; overload;
    function SaveAsHTML(Stream: TStream; SheetIndex: Integer; Options: TXLSXHtmlExportOptions): Integer; overload;
    function SaveAsRTF(const FileName: WideString): Integer; overload;
    function SaveAsRTF(const FileName: WideString; SheetIndex: Integer): Integer; overload;
    function SaveAsRTF(Stream: TStream): Integer; overload;
    function SaveAsRTF(Stream: TStream; SheetIndex: Integer): Integer; overload;
    // AES encryption (ECMA-376 Standard Encryption) write path.
    // OpenEncrypted still raises for encrypted packages.
    function SaveAsEncrypted(const FileName, APassword: WideString): Integer;
    function OpenEncrypted(const FileName, APassword: WideString): Integer;
    function CanReadEncrypted(const FileName: WideString): Boolean;
    function Calculate(const Formula: WideString): Variant;
    property OnUserFunction: TXLSUserFunctionEvent;
    property OnUserFunctionEx: TXLSUserFunctionExEvent;
    // Document properties (docProps/core.xml + docProps/app.xml).
    property Title, Author, Subject, Keywords, Description,
             Category, LastModifiedBy, Company,
             Application, AppVersion: WideString;
    property Created, Modified: TDateTime;
    // Workbook protection (16-bit legacy hash).
    procedure ProtectWorkbook; overload;
    procedure ProtectWorkbook(const APassword: WideString); overload;
    procedure ProtectWorkbook(const APassword: WideString; ALockStructure, ALockWindows: Boolean); overload;
    procedure UnProtectWorkbook;
    property IsWorkbookProtected: Boolean;
    property LockStructure, LockWindows: Boolean;
    // VBA project payload (round-trips byte-for-byte). Workbook is saved
    // with macro-enabled content type when HasVbaProject is True.
    procedure LoadVbaProjectFromFile(const AFileName: WideString);
    procedure ClearVbaProject;
    function HasVbaProject: Boolean;
    property VbaProjectDefined: Boolean;
    property VbaProject: AnsiString;
    property ParsedVBAProject: TXLSVBAProject;
    // Chart sheet helper — creates a sheet flagged IsChartSheet and
    // seeds Charts[0] with a default full-page anchor.
    function AddChartSheet(const AName: WideString;
      AChartType: TXLSXChartType; const ATitle: WideString): TXLSXWorksheet;
    // Streaming SaveAs path (TXLSWideStringBuilder + one sheet at a time).
    property StreamingWrite: Boolean;
    // Workbook-level collections.
    property ActiveSheet: Integer;
    property Minimized: Boolean;
    property WindowHidden: Boolean;
    property ShowHorizontalScroll: Boolean;
    property ShowVerticalScroll: Boolean;
    property ShowSheetTabs: Boolean;
    property XWindow: Integer;
    property YWindow: Integer;
    property WindowWidth: Integer;
    property WindowHeight: Integer;
    property TabRatio: Integer;
    property FirstSheet: Integer;
    property AutoFilterDateGrouping: Boolean;
    property Date1904: Boolean;
    property SourceFormat: TXLSXFileFormat;
    property IndexedColor[Index: Integer]: LongWord;
    function  HasCustomIndexedColor(Index: Integer): Boolean;
    function  CustomIndexedColorCount: Integer;
    procedure ResetIndexedColors;
    property Sheets: TXLSXSheets;
    property Fonts: TXLSXFonts;
    property Fills: TXLSXFills;
    property Borders: TXLSXBorders;
    property NumberFormats: TXLSXNumberFormats;
    property Alignments: TXLSXAlignments;
    property DefinedNames: TXLSXDefinedNames;
    property ExternalLinks: TXLSXExternalLinks;
  end;
      

Miembros

Sheetshoja de cálculo colección. See TXLSXSheets
Fontslibro-level fuente palette. celdas pick fuente por setting TXLSXCell.FontIndex 1-basado índice en este colección. See TXLSXFont / TXLSXFonts
FillsPaleta de rellenos del libro TXLSXFill / TXLSXFills
Borderslibro-level borde palette. celdas pick borde por setting TXLSXCell.BorderIndex 1-basado índice en este colección. See TXLSXBorder / TXLSXBorders
NumberFormatsPaleta de formatos numéricos del libro TXLSXNumberFormat / TXLSXNumberFormats
DefinedNameslibro-level named rangos (libro-scoped o hoja-scoped). See TXLSXDefinedName / TXLSXDefinedNames
CalculateEvalúa fórmulas en la hoja activa OnUserFunction handle custom o unsupported funciones
OnUserFunction, OnUserFunctionExCallback usado por Calculate cuando fórmula calls custom o unsupported función. See OnUserFunction / OnUserFunctionEx callback
GetSheetNames(FileName, AList), GetSheetNames(Stream, AList)Lee los nombres de hoja desde xl/workbook.xml XML, XLSX
Alignmentslibro-level celda-alignment palette. celdas pick entrada por setting TXLSXCell.AlignmentIndex 1-basado índice en este colección. See TXLSXAlignment
Document propertiesPropiedades del documento LastModifiedBy, AppVersion, SaveAs
ProtectWorkbook / UnProtectWorkbooklibro protection toggle con optional 16-bit legacy contraseña hash y LockStructure / LockWindows flags. Reflected as <workbookProtection> en xl/libro.xml
LoadVbaProjectFromFile / VbaProject / HasVbaProject / VbaProjectDefinedCarga del proyecto VBA
ParsedVBAProjectVista analizada del proyecto VBA OLE, VBA, SaveAs
AddChartSheet(Name, Type, Title)Crea una hoja de gráfico SaveAs TXLSXChart
StreamingWriteEscritura en streaming por hoja SaveAs, sharedStrings.xml, SST
SaveAsEncrypted / OpenEncrypted / CanReadEncryptedCompatibilidad de escritura con cifrado ECMA-376 ECMA, AES, OLE, NI, OLE2
SaveAs(FileName)Guarda el libro en el archivo indicado
SaveAs(FileName, FileFormat)Guarda como OOXML o ODS OOXML, OpenDocument, ODS
SaveAs(Stream) / SaveAs(Stream, FileFormat)Escribe el libro en un flujo XLSX, ODS, BLOB
Open(FileName)Carga un paquete OOXML .xlsx OOXML, xlsx
Open(FileName, Password)Reserved para future encrypted XLSX soporte. Behaves like Open(FileName) today — contraseña es ignored
Open(Stream)Reads OOXML.xlsx archive desde TStream. devuelve 1 on success
OpenCSV(FileName) / OpenCSV(Stream)Importación de CSV o TSV CSV, TSV, BOM, UTF-8, UTF-16, RFC método OpenCSV
OpenODS(FileName) / OpenODS(Stream)Importación de ODS OpenDocument, AutoFilter, OpenFormula, ODS
SaveAsODS(FileName) / SaveAsODS(Stream)Exporta ODS como OpenDocument Spreadsheet OpenDocument, ODF, AutoFilter, HotXLS
TODSExportOptionsControl de la exportación ODS ODS, HotXLS
GetODSSheetNames(FileName, AList), GetODSSheetNames(Stream, AList)Lectura de nombres de hoja ODS ODS
SaveAsCSV overloadsSobrecargas de exportación CSV FileName, SheetIndex, UTF-8, CSV, BOM
SaveAsHTML overloadsSobrecargas de exportación HTML TXLSXHtmlExportOptions Sobrecargas de exportación HTML UTF-8, URIs, CSS
SaveAsRTF overloadsSobrecargas de exportación RTF FileName, SheetIndex, RTF, ASCII
ActiveSheetHoja activa XLS, OOXML
Minimized / WindowHidden / ShowHorizontalScroll / ShowVerticalScrollBanderas de ventana para minimizar y barras de desplazamiento
XWindow / YWindow / WindowWidth / WindowHeightGeometría de la ventana
ShowSheetTabs / TabRatio / FirstSheet / AutoFilterDateGroupingOpciones de vista de la ventana del libro AutoFilter
Date1904Base de fecha del libro before Base de fecha del libro
SourceFormatReports package family loaded por most recent successful Open o OpenODS call. It devuelve xlsxOpenXMLWorkbook para XLSX y xlsxOpenDocumentSpreadsheet para ODS; newly created libro reports xlsxOpenXMLWorkbook until archivo es opened
IndexedColor[Index]Valor de color indexado ARGB, OOXML, SaveAs
HasCustomIndexedColor / CustomIndexedColorCount / ResetIndexedColorsColores indexados personalizados SaveAs
ExternalLinksReferencias externas del libro TXLSXExternalLink Referencias externas del libro URL, SaveAs, SheetNames

Ejemplo

Escribir y volver a abrir un libro de trabajo:
uses lxHandleX;

var
  wb: TXLSXWorkbook;
begin
  wb := TXLSXWorkbook.Create;
  try
    wb.Sheets.Add('Demo').Cells.Item[1, 1].Value := 'Hello';
    wb.SaveAs('demo.xlsx');

    wb.Open('demo.xlsx');
    ShowMessage(wb.Sheets[0].Cells.Item[1, 1].Value);
  finally
    wb.Free;
  end;
end;
    

Véase también