Dokumentacja HotXLS

Klasa TXLSXWorkbook

Kontener najwyższego poziomu dla skoroszytu Excel 2007+ (.xlsx). Zadeklarowany w lxHandleX. Przechowuje kolekcję TXLSXSheets i udostępnia punkty wejścia SaveAs / Open dla skoroszytów OOXML, importu CSV / TSV i przepływów pracy odczytu/zapisu OpenDocument Spreadsheet (.ods)

Deklaracja

type
  TXLSXFileFormat = (xlsxOpenXMLWorkbook, xlsxOpenDocumentSpreadsheet,
    xlsxOpenXMLTemplate);

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

  TXLSXWorkbook = class
    constructor Create;
    destructor Destroy; override;
    function CreateLoadedCellCursor: IXLSLoadedCellCursor; overload;
    function CreateLoadedCellCursor(AIncludeStoredBlanks: Boolean): IXLSLoadedCellCursor; overload;
    function CreateReadOnlyView: IXLSReadOnlyWorkbookView;
    property RenderCalibration: TXLSRenderCalibration;
    function CaptureRenderCalibration: TXLSRenderCalibration;
    procedure ResetRenderCalibration;
    function CreateRenderGeometry(ABackend: TXLSRenderGeometryBackend;
      ACacheCapacity: Integer = 4096): IXLSRenderGeometry;
    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 GetConversionReport(ATarget: TXLSConversionTarget): TXLSConversionReport;
    function SaveAsChecked(Stream: TStream; FileFormat: TXLSXFileFormat;
      AllowLossy: Boolean = False): Integer; overload;
    function SaveAsChecked(const FileName: WideString; FileFormat: TXLSXFileFormat;
      AllowLossy: Boolean = False): 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;
    function CalculateAndVerify: Integer; overload;
    function CalculateAndVerify(out AMismatches: TArray<TXLSVerifyMismatch>): Integer; overload;
    property OnUserFunction: TXLSUserFunctionEvent;
    property OnUserFunctionEx: TXLSUserFunctionExEvent;
    property AllowUnsafeFormulaCallbacks: Boolean;
    // 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;
    // Unknown package and workbook extension preservation
    procedure ClearUnsupportedParts;
    function UnsupportedPartCount: Integer;
    function UnsupportedPartBytes: Int64;
    property PreserveUnsupportedParts: Boolean;
    // 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;
    // Streaming parallel Open path
    property ParallelParse: Boolean;
    property ParallelParseThreads: Integer;
    // 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;
    // Workbook calculation policy
    property Iterate: Boolean;
    property IterateCount: Integer;
    property IterateDelta: Double;
    property CalcId: Integer;
    property FullCalcOnLoad: Boolean;
    property CalcMode: WideString;
    property RefMode: WideString;
    property ForceFullCalc: Boolean;
    property CalcCompleted: Boolean;
    property CalcOnSave: Boolean;
    property FullPrecision: Boolean;
    property ConcurrentCalc: Boolean;
    property ConcurrentManualCount: Integer;
    function CreateWorkspaceWorkbook: IXLSWorkspaceWorkbook;
    procedure RegisterExternalWorkbook(const AWorkbookName: WideString;
      AWorkbook: TXLSXWorkbook);
    procedure UnregisterExternalWorkbook(const AWorkbookName: WideString);
    property SourceFormat: TXLSXFileFormat;
    property IndexedColor[Index: Integer]: LongWord;
    function  NearestIndexedColor(AArgb: LongWord;
      out AMatch: TXLSNearestIndexedColorMatch): Boolean;
    function  ScanIndexedColorUsage: TXLSIndexedColorUsageArray;
    function  BuildBiffPalettePlan: TXLSBiffPalettePlan;
    function  ApplyBiffPalettePlan(
      const APlan: TXLSBiffPalettePlan): Boolean;
    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;
    property ExternalWorkspace: TXLSWorkbookWorkspace;
  end;
      

Elementy

Sheetsarkusz kolekcja. See TXLSXSheets
Fontsskoroszyt-level czcionka palette. komórki pick czcionka przez setting TXLSXCell.FontIndex do 1-oparty indeks do ten kolekcja. See TXLSXFont / TXLSXFonts
FillsPaleta wypełnień na poziomie skoroszytu. Komórki wybierają wypełnienie przez ustawienie TXLSXCell.FillIndex na 1-bazowy indeks w tej kolekcji. Zobacz TXLSXFill / TXLSXFills
Bordersskoroszyt-level obramowanie palette. komórki pick obramowanie przez setting TXLSXCell.BorderIndex do 1-oparty indeks do ten kolekcja. See TXLSXBorder / TXLSXBorders
NumberFormatsPaleta niestandardowych formatów liczb na poziomie skoroszytu. Komórki wybierają format przez ustawienie TXLSXCell.NumberFormatIndex na 1-bazowy indeks w tej kolekcji. Zobacz TXLSXNumberFormat / TXLSXNumberFormats
DefinedNamesskoroszyt-level named zakresy (skoroszyt-scoped lub arkusz-scoped). See TXLSXDefinedName / TXLSXDefinedNames
CalculateKompiluje i oblicza ciąg formuły Excela względem aktywnego arkusza, a wiodące = jest akceptowane. Odwołania do komórek, zakresy, formuły zapisane w odwołanych komórkach, odwołania międzyarkuszowe, zakresy nazwanych definicji oraz obsługiwane funkcje tekstowe, daty, workday, engineering/base-conversion, bitwise, statystyczne, agregujące i matematyczne są obliczane przez wspólny silnik formuł HotXLS. Zobacz OnUserFunction dla funkcji niestandardowych lub nieobsługiwanych
CreateLoadedCellCursorCallback używany przez xlckBlankgdy formuła calls custom lub unsupported funkcja. See callback OnUserFunction / OnUserFunctionEx
CreateReadOnlyViewOdczytuje IXLSXWorkbookOwneri dopisuje nazwy arkuszy do IXLSReadOnlyWorkbookView w kolejności skoroszytu bez ładowania XML arkuszy. Wersja dla strumienia oczekuje kompletnego strumienia pakietu XLSX. Zwraca liczbę odczytanych nazw albo SheetCount , gdy nie można otworzyć pakietu CreateReadOnlyView method
SaveSemanticSnapshot, ComputeSemanticHashStrumieniuje wersjonowaną, kanoniczną reprezentację semantyki skoroszytu albo oblicza jej SHA-256 zapisany małymi literami, bez materializowania kompletnej migawki. Zobacz semantic snapshot and hash methods
RenderCalibration, CaptureRenderCalibration, ResetRenderCalibrationAtomowo przypisuje zwalidowaną kalibrację renderowania, wykonuje niezależną migawkę wartości dla jednej operacji albo przywraca wartości domyślne; konfiguracja środowiska uruchomieniowego nie jest serializowana i sama nie zmienia rozmiarów wierszy ani kolumn arkusza. Zobacz render calibration values and snapshots
CreateRenderGeometryTworzy usługę geometrii i pomiaru czcionek należącą do operacji, z niezmienną kalibracją, tożsamością generacji i backendu skoroszytu oraz ograniczonym lokalnym buforem; AutoFit tworzy jedną usługę na operację, a stronicowanie jedną na budowę, bez zapisywania wymiarów arkusza. Zobacz render geometry and font measurement
OnUserFunction, OnUserFunctionExskoroszyt-level komórka-alignment palette. komórki pick wpis przez setting Calculate gdy formuła wywołuje funkcję niestandardową lub nieobsługiwaną. Zobacz callback OnUserFunction / OnUserFunctionEx
AllowUnsafeFormulaCallbacksdo 1-oparty indeks do ten kolekcja. See TXLSXAlignment
GetSheetNames(FileName, AList), GetSheetNames(Stream, AList)Tytuł, Autor, Temat, Słowa kluczowe, Opis, Kategoria, LastModifiedBy, Company, Application, AppVersion, Created, Modified. Ustawienie któregokolwiek z nich w xl/workbook.xml wypełnia AList i -1 (w przeciwnym razie skoroszyt zachowuje minimalny zestaw części)
Alignmentsskoroszyt protection toggle z optional 16-bit legacy hasło hash i TXLSXCell.AlignmentIndex / TXLSXAlignment
Document propertiesTitle, Author, Subject, Keywords, Description, Category, LastModifiedBy, Company, Application, AppVersion, Created, Modified. Ustawienie dowolnej z nich wypełnia docProps/core.xml flags. Reflected as docProps/app.xml przy zapisie przez SaveAs (w przeciwnym razie skoroszyt zachowuje minimalny zestaw części)
ProtectWorkbook / UnProtectWorkbookPrzełącznik ochrony skoroszytu z opcjonalnym 16-bitowym starszym haszem hasła oraz LockStructure / LockWindows flags. Reflected as <workbookProtection> in xl/workbook.xml
LoadVbaProjectFromFile / VbaProject / HasVbaProject / VbaProjectDefinedLoadVbaProjectFromFile imports a raw vbaProject.bin payload; VbaProject exposes the bytes; HasVbaProject and read-only VbaProjectDefined oba pozwalają sprawdzić, czy ładunek jest obecny. Przy zapisie użyj .xlsm jako rozszerzenia, gdy makra mają być włączone przez Excela
ParsedVBAProjectRead-only parsed view of the current vbaProject.bin ładunek. Gdy ładunek jest poprawną pamięcią masową OLE VBA, zwraca TXLSVBAProject udostępniający nazwy modułów i tekst źródłowy; w przeciwnym razie zwraca nil. The raw VbaProject ładunek pozostaje autorytatywnymi bajtami używanymi w rundzie SaveAs/Open
AddChartSheet(Name, Type, Title)Creates a worksheet flagged IsChartSheet = True and seeds Charts[0] ze sensowną domyślną kotwicą całej strony. SaveAs zapisuje takie arkusze do xl/chartsheets/sheetN.xml. See TXLSXChart
ParallelParseWhen True, multi-sheet Open strumieniuje wpisy ZIP arkuszy bezpośrednio do lokalnych dla wątków roboczych inflaterów i czytników XML. Żadne robocze kopie nadętego XML arkuszy nie są przechowywane, a źródło pakietu jest blokowane wyłącznie na czas każdego pozycjonowanego odczytu. Ustaw False, aby parsować jeden arkusz naraz. Wartość domyślna to True
ParallelParseThreadsUstawia maksymalną liczbę strumieni arkuszy parsowanych współbieżnie podczas Open. Zero wybiera automatyczną liczbę wątków roboczych, a wartości dodatnie ustawiają jawny limit. Aktywne zestawy robocze inflaterów i czytników XML są ograniczone tą liczbą
StreamingWriteWhen True, SaveAs uses WriteWorksheetXmlStreaming na arkusz — nie jest utrzymywana pamięć podręczna sheetXmls, sharedStrings.xml jest emitowany jako ostatni, po tym jak każdy arkusz wypełni SST. W połączeniu z per-wierszowym TXLSWideStringBuilder zapewnia to liniowe zużycie pamięci na dużych arkuszach. Wartość domyślna to False (dotychczasowe zachowanie)
PreserveUnsupportedParts / ClearUnsupportedPartsPreserveUnsupportedParts domyślnie przyjmuje wartość True i zachowuje nieznane części pakietu osiągalne przez relacje oraz obce deklaracje przestrzeni nazw katalogu głównego skoroszytu, atrybuty zgodności znaczników i kompletne <extLst> ładunki podczas Open i SaveAs. Referencje relacji wewnątrz zachowanego ładunku rozszerzenia są mapowane ponownie, gdy generowane identyfikatory kolidują ze źródłem. Ustaw właściwość na False przed Open albo wywołaj ClearUnsupportedParts, to discard this state. The UnsupportedPartCount and UnsupportedPartBytes w diagnostyce zliczają zachowane części pakietu i nie obejmują wbudowanych metadanych XML skoroszytu
PreserveRawPartsw xl/skoroszyt.xml
SaveAsEncrypted / OpenEncrypted / CanReadEncryptedImportuje surowy ładunek SaveAsEncrypted ; CanReadEncrypted udostępnia bajty; OpenEncrypted i tylko do odczytu Open informują, czy ładunek jest obecny. Zapisz z rozszerzeniem EXlsxEncryptionNotImplemented , gdy makra mają być włączone w Excelu
SaveAs(FileName)Tylko do odczytu, sparsowany widok bieżącego ładunku 1 . Gdy ładunek jest prawidłowym magazynem OLE VBA, zwraca Sheet1 udostępniający nazwy modułów i tekst źródłowy; w przeciwnym razie zwraca
To przeciążenie oraz SaveAs(FileName, FileFormat) etapują wyjście przed podmianą pliku docelowego Jeśli podmiana zawiedzie, wartością zwracaną jest -1 , a LastDiagnostic zgłasza xlsDiagnosticOutputCommitFailed (1005), oryginalny Windowsowy NativeCodei komunikat błędu systemowego Stary plik docelowy oraz FileName skoroszytu pozostają bez zmian; wyjście tymczasowe jest zwalniane, a kolejny zapis czyści poprzednią diagnostykę
SaveAs(FileName, FileFormat)Akceptuje xlsxOpenXMLWorkbook dla zwykłego wyjścia OOXML, xlsxOpenDocumentSpreadsheet dla ODS, xlsxOpenXMLTemplate dla szablonu XLTX bez makr albo xlsxOpenXMLMacroEnabledTemplate dla szablonu XLTM, przy czym wyjście buforowane i strumieniowe jest obsługiwane dla wszystkich wariantów OOXML
Wyjście szablonu zapisuje application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml dla /xl/workbook.xml; dla plików używaj rozszerzenia .xltx, a przy serwowaniu pakietu przez HTTP — application/vnd.openxmlformats-officedocument.spreadsheetml.template
Format trzeba wybrać jawnie: ani rozszerzenie pliku, ani zaimportowany szablon nie zmienia domyślnego wyjścia SaveAs
Jeśli projekt VBA jest obecny, wyjście XLTX zwraca -1 z diagnostyką nieobsługiwanego formatu przed zapisem pliku docelowego; XLTM zachowuje istniejący projekt VBA i przyjmuje też skoroszyt bez makr
SaveAsODS pozostaje nazwanym skrótem dla wyjścia ODS z opcjonalną kontrolą TODSExportOptions
GetConversionReport / SaveAsCheckedPrzegląda należący do wywołującego, wolny od mutacji raport konwersji znanych funkcji albo odrzuca pogorszone i porzucone funkcje przed zapisem, pozostawiając AllowLossy=False Jawny zapis ze stratami nadal odrzuca nieobsługiwane konwersje; zobacz wierność obliczeń i konwersji, aby poznać granice celu, własności, diagnostyki i zachowania
SaveAs(Stream) / SaveAs(Stream, FileFormat)Zapisuje skoroszyt bezpośrednio do dowolnego TStream, a przeładowanie FileFormat przyjmuje xlsxOpenXMLWorkbook, xlsxOpenDocumentSpreadsheet, xlsxOpenXMLTemplate albo xlsxOpenXMLMacroEnabledTemplate dla skoroszytów OOXML w pamięci, arkuszy ODS, szablonów XLTX lub szablonów XLTM
Zwraca 1 przy powodzeniu, a strumieniowe zapisy honorują RecalcBeforeSave: tryb ręczny zachowuje istniejące pamięci podręczne formuł, a zasady dirty i always odświeżają je przed serializacją
Właścicielem strumienia pozostaje wywołujący; anulowanie przed rozpoczęciem zapisu zachowuje jego zawartość i pozycję, a porażka po rozpoczętej serializacji może zostawić częściowe wyjście
Open(FileName)Odczytuje archiwum OOXML Sheets i zastępuje kolekcję 1 jego zawartością. Zwraca
Open(FileName, Password)Zarezerwowane na przyszłą obsługę szyfrowanego XLSX. Zachowuje się jak Open(FileName) przy powodzeniu
Open(Stream)Reads an OOXML .xlsx archive from a TStreamReserved dla future encrypted XLSX obsługa. Behaves like 1 today — hasło jest ignored
OpenCSV(FileName) / OpenCSV(Stream)Importuje tekst CSV lub TSV do skoroszytu z automatycznym wykrywaniem separatora (,, ;, tab albo pipe), wykrywaniem kodowania UTF-8 / UTF-16 na podstawie BOM, polami w cudzysłowie zgodnymi z RFC 4180 oraz opcjonalnym wyznaczaniem typu wartości przez przeciążenia ADetectTypes . Wywołanie Open(FileName) dla .csv albo .tsv automatycznie kieruje do tego importera. Zobacz OpenCSV method
OpenODS(FileName) / OpenODS(Stream)Importuje pakiet OpenDocument Spreadsheet (.ods) z pliku lub strumienia. Czytnik ładuje content.xml, współdzielone style z styles.xmli ustawienia widoku, gdy są obecne, zachowując nazwy arkuszy, wartości skalarne, buforowane wyniki formuł, podstawową konwersję odwołań w formułach, powtórzone wiersze/kolumny/komórki, scalone zakresy, rich text, hiperłącza, komentarze, osadzone obrazy, osadzone wykresy, ukryte wiersze/kolumny/arkusze, wysokości wierszy, szerokości kolumn, dziedziczone/domyslne style, formaty liczb/daty/czasu/waluty/naukowe/łamkowe, stan ochrony komórek i arkuszy, nazwane zakresy, obszary wydruku, ręczne podziały stron, zamrożone okienka, zakresy AutoFiltra, grupy outline wierszy/kolumn, nagłówki i stopki, sprawdzanie poprawności danych z podpowiedziami, formatowanie warunkowe z formułami/skalami kolorów/słupkami danych oraz kolor karty arkusza. Pełna semantyka OpenFormula, klucze ochrony ODS, geometria komentarzy, zaawansowane formatowanie komentarzy i funkcje pakietu spoza zawartości arkusza nie są konwertowane
SaveAsODS(FileName) / SaveAsODS(Stream), with optional TODSExportOptionsZapisuje skoroszyt jako prawidłowy pakiet OpenDocument Spreadsheet. Zapisuje bezpośrednio ODF mimetype, manifest, metadane, style i zawartość arkusza, przenosząc typowane wartości, formuły, style, rich text, wymiary, scalania, hiperłącza, obrazy, wykresy, nazwane zakresy, zakresy AutoFiltra, formatowanie warunkowe, sprawdzanie poprawności danych, zamrożone okienka, ustawienia strony, nagłówki i stopki, obszary wydruku, ręczne podziały stron, grupy outline, kolor karty i widoczność arkusza tam, gdzie te funkcje są reprezentowane w modelu skoroszytu HotXLS. Przekazanie opcji eksportu, łącznie z nil, zachowuje normalną zasadę przeliczania, anulowanie postępu, diagnostykę i ochronę zapisu. Wyjście plikowe etapuje plik sąsiedni i podmienia cel dopiero po udanej serializacji; porażka serializacji i anulowanie przed zatwierdzeniem zachowują wcześniejszy cel. Postęp zapisu raportuje każdą ukończoną tabelę, a ppsEnd to końcowe powiadomienie, którego żądanie Abort nie potrafi anulować już ukończonego zapisu. Wyjście strumieniowe zachowuje własność wywołującego i zwykłe zachowanie zapisu strumieniowego, które może zostawić częściowe wyjście po rozpoczętej serializacji
TODSExportOptionsw Generator ; pusta wartość używa wbudowanego ciągu generatora HotXLS. meta:generator i meta.xmlmają domyślnie IncludeCharts i, gdy są IncludeImages , usuwają odpowiednie ramki rysunków, części pakietu i wpisy manifestu razem, aby wynik nie zawierał osieroconych odwołań do wykresów lub obrazów. Instancja opcji należy do wywołującego i musi zostać zwolniona
GetODSSheetNames(FileName, AList), GetODSSheetNames(Stream, AList)Odczytuje tylko nazwy arkuszy ODS z content.xml do AList bez resetowania ani wypełniania skoroszytu. Użyj tego, gdy okno wyboru pliku albo przepływ importu potrzebuje nazw arkuszy przed załadowaniem skoroszytu
SaveAsCSV overloadsCztery przeciążenia (FileName lub Stream × domyślny aktywny arkusz / jawny SheetIndex + Delimiter). Zapisuje wybrany arkusz jako UTF-8 CSV z BOM. Wartości dat są zapisywane jako yyyy-mm-dd hh:nn:ss; komórki formuł są obliczane przed eksportem, a tekst formuły jest używany tylko wtedy, gdy obliczenie nie jest dostępne. Zwraca 0 przy powodzeniu
SaveAsHTML overloadsPrzeciążenia opcji akceptują TXLSXHtmlExportOptions dla Title, WriteDocument, IncludeStyles, IncludeBOMi TableClass. Ustaw WriteDocument na False dla fragmentu tabeli; ustaw IncludeBOM na False , gdy osadzasz wynik w istniejącej odpowiedzi UTF-8. Wyeksportowany wynik zachowuje hiperłącza komórek jako kotwice <a> i zakotwiczone obrazy jako wbudowane URI obrazów data: ; eksport na poziomie skoroszytu zawiera kotwice poza wypełnionymi komórkami. Komentarze komórek są też emitowane jako escapowane atrybuty <td>title , a eksport na poziomie skoroszytu zawiera kotwice tylko z komentarzami. Gdy IncludeStyles jest włączone, jawne wartości ColWidth są emitowane jako szerokości <col> , a jawne wartości RowHeight jako style wysokości <tr> . Fragmenty rich text są emitowane jako escapowane elementy <span> z wbudowanymi stylami fontu, koloru, pogrubienia i podkreślenia, gdy IncludeStyles jest włączone. Obramowania komórek są emitowane jako reguły CSS border-left, border-right, border-topi border-bottom , gdy IncludeStyles jest włączone. Ukryte wiersze i kolumny oznaczone RowHidden / ColHidden, plus jawne kolumny o zerowej szerokości, są pomijane w wygenerowanej tabeli i <colgroup>. Ustawienia wyrównania pionowego są emitowane jako reguły CSS vertical-align , gdy IncludeStyles jest włączone
SaveAsRTF overloadsCztery przeciążenia (FileName lub Stream × domyślny aktywny arkusz / jawny SheetIndex). Zapisuje wybrany arkusz jako dokument RTF 1.6 z prostą tabelą. Szerokości kolumn są wyliczane z danych ColWidth (1 jednostka znaku ≈ 96 twips; domyślnie 809 twips). Stosowane są pogrubienie / kursywa / rozmiar czcionki per komórka; znaki nie-ASCII są kodowane jako podpisane 16-bitowe escape'y RTF Unicode \uN? . Scalonych komórek nie rozciąga się. Zwraca 0 przy powodzeniu
ActiveSheet1-bazowy indeks aktywnego (wybranego) arkusza (0, gdy żaden nie jest aktywny), zgodny z klasycznym silnikiem XLS ActiveSheetIndex. SaveAs zapisuje activeTab="N" na <workbookView> (sam atrybut OOXML activeTab pozostaje 0-bazowy), gdy trzeba emitować opcje widoku skoroszytu, i oznacza odpowiadający arkusz tabSelected="1"
Minimized / WindowHidden / ShowHorizontalScroll / ShowVerticalScrollFlagi wyglądu okna skoroszytu zapisywane w <workbookView>. Minimized zapisuje minimized="1", WindowHidden zapisuje visibility="hidden", a ShowHorizontalScroll / ShowVerticalScroll ukrywają lub pokazują paski przewijania skoroszytu. Open zachowuje wszystkie cztery wartości
XWindow / YWindow / WindowWidth / WindowHeightGeometria okna skoroszytu zapisywana w <workbookView>. XWindow i YWindow przechowują położenie okna, a WindowWidth i WindowHeight jego rozmiar. Wartości są ograniczane do 0..65535 i wracają bez zmian przy odczycie
ShowSheetTabs / TabRatio / FirstSheet / AutoFilterDateGroupingOpcje widoku okna skoroszytu zapisywane w <workbookView>. ShowSheetTabs ukrywa lub pokazuje pasek kart arkuszy, TabRatio kontroluje podział szerokości między paskiem kart a paskiem przewijania i jest ograniczany do 0..1000, FirstSheet wybiera pierwszy widoczny tab jako 0-bazowy indeks arkusza i ogranicza się do istniejącego arkusza, a AutoFilterDateGrouping steruje grupowaniem dat Excela w rozwijanych listach AutoFiltra. Open zachowuje wszystkie cztery wartości
Date1904Baza daty skoroszytu. False (domyślnie) = epoka Windows 1900; True = epoka Mac 1904 (przesuwa każdy serial daty o 1462 dni). Ustaw to przed przypisaniem wartości komórek before assigning TDateTime , aby Excel wyświetlił tę samą datę kalendarzową
Iterate / IterateCount / IterateDeltaWartość ARGB dla danego slotu palety kolorów OOXML (0..63). Odczyt zwraca nadpisanie użytkownika, jeśli jest ustawione, w przeciwnym razie wbudowany domyślny OOXML ( IterateCount ). Zapis nadpisuje slot IterateDelta ; Iterate is currently False
CalcMode / RefMode / CalcIdSteruje trybem obliczeń skoroszytu, stylem odwołań w formułach i tożsamością silnika obliczeń CalcMode przyjmuje auto, manual albo autoNoTable RefMode przyjmuje A1 lub R1C1 z wejściem ignorującym wielkość liter i kanonicznym wyjściem Nowoczesne wyjście rozbudowanych błędów używa emitowanego CalcId o wartości co najmniej 191029, tak aby Excel interpretował zapamiętane nowoczesne błędy, zachowując wyższe żądane wartości i pozostawiając właściwość w pamięci bez zmian
FullCalcOnLoad / ForceFullCalc / CalcCompleted / CalcOnSave / FullPrecisionSteruje pełnym przeliczaniem, zakończeniem obliczeń buforowanych, przeliczaniem przed zapisem i polityką precyzji Każda wartość inna niż domyślna niezależnie emituje i przechodzi w rundzie z pasującym <calcPr> attribute
ConcurrentCalc / ConcurrentManualCountwypisuje wtedy pełny blok ConcurrentManualCount ze wszystkimi 64 slotami
SourceFormatZgłasza rodzinę pakietu wczytaną przez ostatnie udane wywołanie Open lub OpenODS, zwracając xlsxOpenXMLWorkbook dla skoroszytów i szablonów OOXML, w tym XLTX i XLTM, xlsxOpenDocumentSpreadsheet dla ODS oraz xlsxExcelBinaryWorkbook dla obsługiwanego podzbioru wartości i stylów XLSB
Nowo utworzony skoroszyt zgłasza xlsxOpenXMLWorkbook, dopóki nie zostanie otwarty plik, a ta właściwość nie wybiera formatu wyjściowego
IndexedColor[Index]zwraca liczbę nadpisanych slotów (0 = brak blokuXlsxDefaultIndexedPaletteemitowanego przez N). <indexedColors> usuwa każde nadpisanie i przywraca domyślną paletę
ResolveIndexedColorKolekcja zewnętrznych odwołań do skoroszytów. Każdy wpis icv przechowuje docelowy URL i listę
NearestIndexedColoremituje blok
ScanIndexedColorUsageoraz odpowiednie części
BuildBiffPalettePlanZwraca niemutowowalny plan palety BIFF o 56 gniazdach, z zablokowanymi gniazdami, zagregowanymi celami true-color, deterministycznymi mapowaniami, tożsamością źródła i ważonymi statystykami błędów OKLab
ApplyBiffPalettePlanWaliduje tożsamość źródła, metadane gniazd, blokady i nieprzezroczyste cele przed atomowym zastosowaniem wszystkich zmienionych wpisów palety i jednokrotną przebudową matchera z pamięci podręcznej
HasCustomIndexedColor / CustomIndexedColorCount / ResetIndexedColorsHasCustomIndexedColor(N) . True zachowuje CustomIndexedColorCount i <colors> ; buforowane wartości komórek wewnątrz ResetIndexedColors nie są zachowywane
ExternalLinksKolekcja zewnętrznych odwołań skoroszytu. Każdy wpis TXLSXExternalLink przechowuje docelowy URL oraz listę SheetNames . <externalReferences> emituje blok xl/workbook.xml w xl/externalLinks/ oraz odpowiadające mu części <sheetDataSet> .
CreateWorkspaceWorkbookReturns the revocable IXLSWorkspaceWorkbook adapter dla tego skoroszytu. Adapter zachowuje tożsamość źródła skoroszytu i jego generację oraz rozłącza się, zanim model skoroszytu zostanie zniszczony
ExternalWorkspaceWątkowo bezpieczny rejestr zachowujący ścieżki, używany przez żywą ewaluację formuł zewnętrznych. Dokładne tożsamości i aliasy są preferowane, niejednoznaczne wyszukiwanie po nazwie bazowej pliku jest odrzucane, a normalizacja tożsamości nie wykonuje żadnego niejawnego dostępu do plików ani sieci. Zobacz Live workbook workspace
RegisterExternalWorkbook / UnregisterExternalWorkbookzachowuje wartości Target i SheetNames przy round-tripie; buforowane wartości komórek wewnątrz ExternalWorkspace nie są zachowywane

Przykład

Zapis i ponowne otwieranie skoroszytu:
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;
    

Zobacz też