.xlsx). مُعلَنة في lxHandleX. تحتوي على مجموعة TXLSXSheets وتوفر نقاط دخول SaveAs / Open لمصنفات OOXML واستيراد CSV / TSV وجداول بيانات OpenDocument (.ods)
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;
| Sheets | ورقة عمل مجموعة. See TXLSXSheets |
| Fonts | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS. TXLSXFont / TXLSXFonts |
| Fills | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS. TXLSXFill / TXLSXFills |
| Borders | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS. TXLSXBorder / TXLSXBorders |
| NumberFormats | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS TXLSXNumberFormat / TXLSXNumberFormats |
| DefinedNames | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS TXLSXDefinedName / TXLSXDefinedNames |
| Calculate | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS. OnUserFunction إلى handle custom أو unsupported دوال |
| OnUserFunction, OnUserFunctionEx | Callback مستخدم بواسطة Calculate عند
صيغة calls custom أو unsupported دالة. See
OnUserFunction / OnUserFunctionEx callback |
| GetSheetNames(FileName, AList), GetSheetNames(Stream, AList) | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: XML, XLSX |
| Alignments | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS TXLSXAlignment |
| Document properties | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: LastModifiedBy, AppVersion, SaveAs |
| ProtectWorkbook / UnProtectWorkbook | مصنف protection toggle مع optional
16-bit legacy كلمة مرور hash و LockStructure /
LockWindows flags. Reflected as
<workbookProtection> في xl/مصنف.xml |
| LoadVbaProjectFromFile / VbaProject / HasVbaProject / VbaProjectDefined | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS |
| ParsedVBAProject | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: OLE, VBA, SaveAs |
| AddChartSheet(Name, Type, Title) | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: SaveAs TXLSXChart |
| StreamingWrite | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: SaveAs, sharedStrings.xml, SST |
| SaveAsEncrypted / OpenEncrypted / CanReadEncrypted | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: ECMA, AES, OLE, NI, OLE2 |
| SaveAs(FileName) | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS |
| SaveAs(FileName, FileFormat) | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: OOXML, OpenDocument, ODS |
| SaveAs(Stream) / SaveAs(Stream, FileFormat) | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: XLSX, ODS, BLOB |
| Open(FileName) | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: OOXML, xlsx |
| Open(FileName, Password) | Reserved لـ future encrypted XLSX دعم. Behaves
like Open(FileName) today — كلمة مرور هو ignored |
| Open(Stream) | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: OOXML, xlsx |
| OpenCSV(FileName) / OpenCSV(Stream) | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: CSV, TSV, BOM, UTF-8, UTF-16, RFC أسلوب OpenCSV |
| OpenODS(FileName) / OpenODS(Stream) | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: OpenDocument, AutoFilter, OpenFormula, ODS |
| SaveAsODS(FileName) / SaveAsODS(Stream) | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: OpenDocument, ODF, AutoFilter, HotXLS |
| TODSExportOptions | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: ODS, HotXLS |
| GetODSSheetNames(FileName, AList), GetODSSheetNames(Stream, AList) | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: ODS |
| SaveAsCSV overloads | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: FileName, SheetIndex, UTF-8, CSV, BOM |
| SaveAsHTML overloads | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS. TXLSXHtmlExportOptions يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: UTF-8, URIs, CSS |
| SaveAsRTF overloads | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: FileName, SheetIndex, RTF, ASCII |
| ActiveSheet | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: XLS, OOXML |
| Minimized / WindowHidden / ShowHorizontalScroll / ShowVerticalScroll | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS |
| XWindow / YWindow / WindowWidth / WindowHeight | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS |
| ShowSheetTabs / TabRatio / FirstSheet / AutoFilterDateGrouping | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: AutoFilter |
| Date1904 | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS. before يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS |
| SourceFormat | Reports package family loaded بواسطة most recent successful Open أو OpenODS call. It يعيد xlsxOpenXMLWorkbook لـ XLSX و xlsxOpenDocumentSpreadsheet لـ ODS; newly created مصنف reports xlsxOpenXMLWorkbook until ملف هو opened |
| IndexedColor[Index] | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: ARGB, OOXML, SaveAs |
| HasCustomIndexedColor / CustomIndexedColorCount / ResetIndexedColors | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: SaveAs |
| ExternalLinks | يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: HotXLS TXLSXExternalLink يحافظ هذا القسم من توثيق HotXLS على الإطار الفني والمعرفات: URL, SaveAs, SheetNames |
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;