Dokumentasi HotXLS

Kelas TXLSXWorkbook

Wadah tingkat atas untuk workbook Excel 2007+ (.xlsx). Dideklarasikan dalam lxHandleX. Menyimpan koleksi TXLSXSheets dan menyediakan titik masuk SaveAs / Open untuk workbook OOXML, impor CSV / TSV, dan alur kerja baca/tulis OpenDocument Spreadsheet (.ods)

Deklarasi

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;
      

Anggota

Sheets lembar kerja koleksi. See TXLSXSheets
Fonts Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: HotXLS. TXLSXFont / TXLSXFonts
Fills Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: HotXLS. TXLSXFill / TXLSXFills
Borders Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: HotXLS. TXLSXBorder / TXLSXBorders
NumberFormats Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: HotXLS TXLSXNumberFormat / TXLSXNumberFormats
DefinedNames Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: HotXLS TXLSXDefinedName / TXLSXDefinedNames
Calculate Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: HotXLS. OnUserFunction Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: HotXLS
OnUserFunction, OnUserFunctionEx Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: HotXLS OnUserFunction / OnUserFunctionEx callback
GetSheetNames(FileName, AList), GetSheetNames(Stream, AList) Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: XML, XLSX
Alignments Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: HotXLS TXLSXAlignment
Document properties Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: LastModifiedBy, AppVersion, SaveAs
ProtectWorkbook / UnProtectWorkbook Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: workbook.xml
LoadVbaProjectFromFile / VbaProject / HasVbaProject / VbaProjectDefined Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: HotXLS
ParsedVBAProject Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: OLE, VBA, SaveAs
AddChartSheet(Name, Type, Title) Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: SaveAs TXLSXChart
StreamingWrite Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: SaveAs, sharedStrings.xml, SST
SaveAsEncrypted / OpenEncrypted / CanReadEncrypted Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: ECMA, AES, OLE, NI, OLE2
SaveAs(FileName) Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: HotXLS
SaveAs(FileName, FileFormat) Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: OOXML, OpenDocument, ODS
SaveAs(Stream) / SaveAs(Stream, FileFormat) Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: XLSX, ODS, BLOB
Open(FileName) Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: OOXML, xlsx
Open(FileName, Password) Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: XLSX
Open(Stream) Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: OOXML, xlsx
OpenCSV(FileName) / OpenCSV(Stream) Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: CSV, TSV, BOM, UTF-8, UTF-16, RFC OpenCSV metode
OpenODS(FileName) / OpenODS(Stream) Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: OpenDocument, AutoFilter, OpenFormula, ODS
SaveAsODS(FileName) / SaveAsODS(Stream) Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: OpenDocument, ODF, AutoFilter, HotXLS
TODSExportOptions Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: ODS, HotXLS
GetODSSheetNames(FileName, AList), GetODSSheetNames(Stream, AList) Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: ODS
SaveAsCSV overloads Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: FileName, SheetIndex, UTF-8, CSV, BOM
SaveAsHTML overloads Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: HotXLS. TXLSXHtmlExportOptions Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: UTF-8, URIs, CSS
SaveAsRTF overloads Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: FileName, SheetIndex, RTF, ASCII
ActiveSheet Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: XLS, OOXML
Minimized / WindowHidden / ShowHorizontalScroll / ShowVerticalScroll Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: HotXLS
XWindow / YWindow / WindowWidth / WindowHeight Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: HotXLS
ShowSheetTabs / TabRatio / FirstSheet / AutoFilterDateGrouping Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: AutoFilter
Date1904 Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: HotXLS. before Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: HotXLS
SourceFormat Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: XLSX, ODS
IndexedColor[Index] Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: ARGB, OOXML, SaveAs
HasCustomIndexedColor / CustomIndexedColorCount / ResetIndexedColors Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: SaveAs
ExternalLinks Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: HotXLS TXLSXExternalLink Bagian dokumentasi HotXLS ini mempertahankan detail teknis dan pengenal: URL, SaveAs, SheetNames

Contoh

Menulis dan membuka kembali workbook:
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;
    

Lihat juga