Dokumentacja HotXLS

Dodatkowe elementy API klasycznego XLS

Ta strona obejmuje publiczne elementy API klasycznego XLS należące do lxHandle, lxDataToXLS i lxGridToXLS

Właściwości obliczeń IXLSWorkbook

property CalculationMode: LongWord;
property FormulaArrayMemoryLimit: Int64;
property EnableIteration: Boolean;
property MaxIterations: LongWord;
property MaxIterationChange: Double;
property RecalcOnSave: Boolean;
property UseFullPrecision: Boolean;
      
CalculationMode Steruje trybem obliczeń skoroszytu zapisywanym w pliku
FormulaArrayMemoryLimit Ogranicza ładunek alokowany przez generowane tablice formuł, takie jak MUNIT; wartość domyślna to 64 MiB, a wartości poniżej jednego elementu Double są podciągane do tej granicy
EnableIteration Włącza obliczenia iteracyjne dla formuł cyklicznych
MaxIterations Maksymalna liczba przejść metody Gaussa-Seidla dla każdej silnie spójnej składowej odwołania cyklicznego
MaxIterationChange Największa akceptowana różnica numeryczna, po której składowa odwołania cyklicznego przestaje być iterowana
RecalcOnSave Żąda przeliczenia skoroszytu, gdy program Excel zapisuje plik
UseFullPrecision Zachowuje pełną precyzję formuł; po wyłączeniu tej opcji bufory formuł i tabel danych What-If są zaokrąglane do efektywnej precyzji wyświetlania, zanim odczytają je elementy zależne

Walidacja wpisywania formuł

property IXLSWorkbook.FormulaEntryPolicy: TXLSFormulaEntryPolicy;
function TXLSWorksheet.ValidateFormulaEntry(Row, Col: Integer;
  const Formula: WideString): TXLSFormulaEntryValidationResult;
      
Wspólny kontrakt walidacji klasyfikuje puste dane wejściowe, nieznane funkcje, nieznane nazwy, błędy składni, nieprawidłowe współrzędne oraz formuły, których nie da się przedstawić w docelowym klasycznym formacie XLS bez zmiany stanu arkusza; zobacz Zasady walidacji wpisywania formuł

Kalibracja renderowania IXLSWorkbook

property RenderCalibration: TXLSRenderCalibration;
function CaptureRenderCalibration: TXLSRenderCalibration;
procedure ResetRenderCalibration;
function CreateRenderGeometry(ABackend: TXLSRenderGeometryBackend;
  ACacheCapacity: Integer = 4096): IXLSRenderGeometry;
      
Przypisanie całego rekordu waliduje wszystkie sześć pól, zanim skoroszyt zostanie zmieniony; CaptureRenderCalibration zwraca niezależny zrzut wartości dla pojedynczej operacji pomiaru lub eksportu, a ResetRenderCalibration przywraca standardowe wartości 1/1/1/1/100/96
Ta konfiguracja działa wyłącznie w czasie uruchomieniowym — nie jest serializowana do pliku XLS i nie zmienia wysokości wierszy ani szerokości kolumn arkusza
CreateRenderGeometry kopiuje bieżącą kalibrację do usługi należącej do pojedynczej operacji i wiąże tożsamość jej pamięci podręcznej z bieżącą generacją skoroszytu oraz wybranym backendem; późniejsze zmiany kalibracji skoroszytu nie są w stanie zmodyfikować już istniejącej usługi
AutoFit zakresu oraz każde wywołanie TXLSPaginationModel.Build przechwytują kalibrację skoroszytu jednorazowo; AutoFit jest jedynym odbiorcą, który celowo zapisuje dopasowane wymiary, natomiast paginacja zachowuje każdą zapisaną wysokość wiersza i szerokość kolumny

Właściwości dokumentu IXLSWorkbook

property Title: WideString;
property Subject: WideString;
property Author: WideString;
property Keywords: WideString;
property Comments: WideString;
property Company: WideString;
property Manager: WideString;
      
Te właściwości odczytują i zapisują pola informacji podsumowania skoroszytu zapisane w klasycznym pliku XLS

Metoda Close IXLSWorkbook

function Close: Integer;
      
Zamyka obiekt skoroszytu i zwalnia zawartość należącą do skoroszytu, przechowywaną przez klasyczny model obiektów XLS

Właściwości ładowania wyłącznie metadanych IXLSWorkbook

property MetadataOnly: Boolean;
property SelectedSheets: TStringList;
property IncompleteLoad: Boolean;
      
MetadataOnly Ustawiona przed Open powoduje odczyt wyłącznie metadanych skoroszytu i deskryptorów arkuszy z pominięciem danych komórek
SelectedSheets Lista nazw arkuszy do załadowania przy otwieraniu skoroszytu; pusta lista ładuje wszystkie arkusze
IncompleteLoad True po Open, gdy dane komórek zostały pominięte, ponieważ użyto MetadataOnly lub SelectedSheets
Skoroszytu otwartego z MetadataOnly lub niepustą listą SelectedSheets nie można zapisać; Save zgłasza błąd do czasu ponownego otwarcia skoroszytu bez tych opcji

Stan zwinięcia TXLSColumnInfo

property TXLSWorksheet._ColumnInfo: TXLSColumnInfoList;
property TXLSColumnInfo.Collapsed: Boolean;
property TXLSRowInfo.Collapsed: Boolean;
property TXLSColumnInfoList.Collapsed[Index: Integer]: Boolean;
      
Collapsed udostępnia znacznik konspektu kolumny BIFF niezależnie od Hidden i OutlineLevel. Indeks listy to zerowy klasyczny indeks kolumny XLS. Nieistniejące kolumny odczytywane są jako False, a przypisanie False do nieistniejącej kolumny nie alokuje metadanych. Kopie formatu kolumn, kopie arkuszy oraz cykle zapisu i ponownego otwarcia zachowują ten znacznik
Akcesory niższego poziomu składowania są publiczne ze względu na niskopoziomową inspekcję skoroszytu. TXLSRowInfo raportuje MinCol i MaxCol (objęty zakres kolumn liczony od 1), CustomHeight i CustomFormat (czy zapisano jawną wysokość albo indeks XF) oraz XFIndexSet; TXLSColumnInfo.isEqual porównuje dwa wpisy metadanych kolumny pole po polu
TXLSColumnInfoList udostępnia ColCount, MinCol, MaxCol, StdWidth i MaxOutlineLevel do diagnostyki granic i domyślnej szerokości; CalcMaxOutLineLevel przelicza buforowany maksymalny poziom konspektu po bezpośrednich edycjach metadanych; CopyColFormat klonuje wpis kolumny na inny indeks; DeleteCol usuwa wpis; a FindNextColToStore przechodzi po zapisanych wpisach dla writerów rekordów COLINFO BIFF, zwracając następny zakres w parametrach wyjściowych MinCol / MaxCol

Metody węzłów konspektu TXLSWorksheet

function TryGetOutlineNode(AAxis: TXLSOutlineAxis; ANodeIndex: Integer; out ANode: TXLSOutlineNode): Boolean;
function SetOutlineNodeCollapsed(AAxis: TXLSOutlineAxis; ANodeIndex: Integer; ACollapsed: Boolean; AChildMode: TXLSOutlineChildMode = xocPreserve): Boolean;
procedure SetOutlineDisplayLevel(AAxis: TXLSOutlineAxis; ADisplayLevel: Integer; AChildMode: TXLSOutlineChildMode = xocPreserve);
      
Metody te adaptują klasyczne metadane wierszy i kolumn do wspólnego rzadkiego modelu konspektu, wywodzą żądany węzeł podsumowania z jego kierunku konspektu i stosują skompresowane zmiany ukrycia oraz zwinięcia bez sondowania nieużywanych współrzędnych arkusza
ANodeIndex to fizyczny wiersz lub kolumna podsumowania liczone od 1, ADisplayLevel odpowiada konwencji przycisków konspektu numerowanej od 1, a xocPreserve domyślnie utrzymuje znaczniki zwinięcia zagnieżdżonych elementów podrzędnych niezależnie od siebie
Zobacz Rzadka geometria konspektu — pola węzłów, tryby elementów podrzędnych, przykłady i gwarancje złożoności

Metody okienka i tytułu wydruku TXLSWorksheet

function ThawPanes(Y, X: Single; RowTop, ColLeft: Word): Integer;
function SplitPanes(Width, Height: Single): Integer;
function UnsplitPanes: Integer;
function GetSelectedAreas(APane: TXLSPanePosition; out ActiveAreaIndex: Integer): TXLSSelectedAreas;
function SelectAreas(APane: TXLSPanePosition; const Areas: array of WideString; ActiveAreaIndex: Integer = 0): Boolean;
function TryGetWindowScroll(APane: TXLSPanePosition; out ARow, ACol: Integer): Boolean;
function ScrollWindow(APane: TXLSPanePosition; ARow, ACol: Integer): Boolean;
function RepeatRows(FirstRow, LastRow: Word): Integer;
function RepeatColumns(FirstCol, LastCol: Word): Integer;
      
ThawPanes, SplitPanes i UnsplitPanes sterują stanem podzielonych okienek, natomiast RepeatRows i RepeatColumns ustawiają wiersze lub kolumny tytułu wydruku dla arkusza
GetSelectedAreas i przeciążenie SelectAreas z okienkiem jako pierwszym parametrem realizują wspólny kontrakt zaznaczeń logicznych okienek opisany w Zaznaczenia okienek arkusza
Następujące po sobie rekordy selekcji BIFF dla jednego okienka tworzą jedną logiczną grupę; edytowane grupy zapisywane są w porcjach o maksymalnie 1369 obszarach, a kopie arkusza zachowują każdą grupę okienek
Edycje strukturalne całych wierszy i kolumn remapują wszystkie poprawne grupy okienek, zachowując uporządkowanych następców, poprzedników i tożsamość aktywnego obszaru, z deterministycznymi zachowaniami awaryjnymi opartymi na następnym elemencie, poprzednim elemencie i komórce granicznej
Uszkodzone lub sprzeczne rekordy selekcji pozostają nieprzezroczyste dla modelu — przy zapisie są odtwarzane bajt po bajcie i zgłaszają xlsDiagnosticSelectionRecordInvalid zamiast eksponować częściowo zaufany stan typowany
TryGetWindowScroll i ScrollWindow udostępniają wspólny kontrakt przewijania czterech okienek liczony od 1, mapując górną i lewą oś na Window2, a dolną i prawą na Pane

Typowane metody walidacji danych TXLSWorksheet

function AddWholeNumberValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddDecimalValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddDateValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddTimeValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddTextLengthValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddCustomValidation(ARange: WideString; const AFormula: WideString): TDataValidation;
      
Każdy pomocnik tworzy typowaną regułę walidacji danych dla ARange i zwraca utworzoną instancję TDataValidation, aby można było dostosować opcje komunikatu, błędu i obsługi pustych pól

Elementy tabeli przestawnej TXLSWorksheet

property PivotTables: TXLSPivotTables;
function AddPivotTable(const SourceRangeA1: WideString; DestRow, DestCol: Integer; const Name: WideString): TXLSPivotTable;
function PivotSetDataFieldFormat(DataField: TXLSPivotDataField; const FormatStr: WideString): Word;
      
Użyj AddPivotTable, aby utworzyć typowaną tabelę przestawną ze źródłowego zakresu, następnie użyj PivotTables i PivotSetDataFieldFormat, aby sprawdzić lub sformatować wygenerowany model. Zobacz API tabeli przestawnej klasycznego XLS

Elementy formuły tablicowej i granic IXLSRange

function SetArrayFormula(const Formula: WideString): Integer;
function XFIndex: Integer;
property FirstRow: Word;
property LastRow: Word;
property FirstCol: Byte;
property LastCol: Byte;
      
SetArrayFormula przypisuje formułę tablicową do zakresu. FirstRow, LastRow, FirstCol i LastCol udostępniają przechowywane granice zakresu oparte na 1, natomiast XFIndex zwraca efektywny indeks formatu klasycznego XLS dla zakresu

Pomocniki transferu IXLSRange

procedure PasteFrom(SrcRange: TXLSRange; PasteMode: LongWord; CopyMode: Boolean);
procedure ShiftTo(Row: Word; Col: Byte);
procedure ExtendRange;
procedure ContractRange;
      
PasteFrom stosuje zawartość komórek z innego klasycznego zakresu XLS przy użyciu wybranego trybu wklejania. ShiftTo zmienia pozycję obiektu zakresu, natomiast ExtendRange i ContractRange dostosowują przechowywany prostokąt przed operacjami zakresu wymagającymi rozszerzonych lub znormalizowanych granic

Interfejsy zakresu wierszy i kolumn IXLS

interface IXLSRowsRange = interface(IXLSRange)
  property Item[Row: Integer]: IXLSRowRange;
  property Hidden: OleVariant;
  property Count: LongWord;
  procedure AutoFit(Columns: Boolean = False);

interface IXLSRowRange = interface(IXLSRange)
  property Item[Col: Integer]: IXLSColRange;
  property Hidden: OleVariant;
  property Count: LongWord;
  procedure AutoFit(Columns: Boolean = False);

interface IXLSColsRange = interface(IXLSRange)
  property Item[Col: Integer]: IXLSColRange;
  property Hidden: OleVariant;
  property Count: LongWord;
  procedure AutoFit(Columns: Boolean = True);
  procedure Group(Rows: Boolean = False);
  procedure UnGroup(Rows: Boolean = False);
  property OutlineLevel: Integer;

interface IXLSColRange = interface(IXLSRange)
  property Item[Row: Integer]: IXLSRowRange;
  property Hidden: OleVariant;
  property Count: LongWord;
  procedure AutoFit(Columns: Boolean = True);
  procedure Group(Rows: Boolean = False);
  procedure UnGroup(Rows: Boolean = False);
  property OutlineLevel: Integer;
      
IXLSRowsRange, IXLSRowRange, IXLSColsRange i IXLSColRange są zwracane przez IXLSRange.Rows, IXLSRange.Columns, IXLSRange.EntireRow i IXLSRange.EntireColumn. Zachowują normalną powierzchnię edycji IXLSRange, jednocześnie dodając indeksowany dostęp do wierszy lub kolumn, kontrolę stanu ukrycia, liczniki, autodopasowanie i grupowanie konspektu, gdzie kierunek zakresu to obsługuje
property DisplayText: WideString;
      
DisplayText odczytuje lub zmienia widoczny tekst wyświetlany przez program Excel dla klasycznego hiperłącza XLS, niezależnie od adresu docelowego i podpowiedzi ekranowej

Właściwości mapowania ID TXLSWorksheets

property IndexByID[SheetID: Integer]: Integer;
property IDByName[SheetName: WideString]: Integer;
property NameByID[SheetID: Integer]: WideString;
      
Te właściwości tylko do odczytu mapują między wewnętrznym identyfikatorem arkusza, bieżącym indeksem arkusza a widoczną nazwą arkusza. Są przydatne przy zachowywaniu formuł, zdefiniowanych nazw lub rekordów odwołujących się do arkuszy według przechowywanych identyfikatorów zamiast bieżącej kolejności kart

Właściwość SheetTypeRaw TXLSWorksheet

property SheetTypeRaw: Byte;
      
SheetTypeRaw zachowuje surową wartość BoundSheet8.dt klasycznego XLS podczas ładowania i zapisywania skoroszytów, dzięki czemu rekordy makr, VBA, arkuszy, okien dialogowych i innych typów arkuszy mogą być przesyłane bez spłaszczania do standardowej karty arkusza

Zaawansowane właściwości wydruku IXLSPageSetup

property PrintNotesAtEnd: Boolean;
property UseFirstPageNumber: Boolean;
property FirstPageNumber: Integer;
property PrintCellErrors: LongWord;
property PrintResolution: LongWord;
property PrintVResolution: LongWord;
property Copies: LongWord;
property HasSetupRecord: Boolean; read only
property PrinterSettingsInitialized: Boolean; read only
property PrinterDriverData: TBytes;
property HasPrinterDriverData: Boolean; read only
procedure ClearPrinterDriverData;
      
Te właściwości zachowują zaawansowane ustawienia strony, takie jak komentarze drukowane na końcu, niestandardowy numer pierwszej strony, renderowanie błędów drukowanych komórek, rozdzielczość drukarki i liczbę kopii
HasSetupRecord raportuje, czy wczytany klasyczny arkusz XLS zawiera rekord Setup BIFF, natomiast PrinterSettingsInitialized raportuje, czy rozmiar papieru, skala, orientacja, rozdzielczość i liczba kopii są zdefiniowane przez ten rekord
Zapis niezmodyfikowanego arkusza zachowuje brakujący rekord Setup, a istniejący rekord odtwarza bajt po bajcie; zmiana pola ustawień strony tworzy rekord w razie potrzeby, a zmiana pola zależnego od drukarki inicjuje ustawienia drukarki
PrinterDriverData odczytuje lub zastępuje nieprzezroczysty ładunek sterownika drukarki BIFF PLS, HasPrinterDriverData odróżnia brakujący ładunek, a ClearPrinterDriverData usuwa go bez zmiany typowanych pól ustawień strony
Tablice bajtów zwracane przez gettery i ustawiane przez settery są kopiowane, dzięki czemu wywołujący i kopie arkuszy mają niezależną własność; ładunki klasycznego XLS muszą zawierać wymagany dwubajtowy zarezerwowany prefiks i nie mogą przekraczać 1 MiB
SaveXLSWorkbookAsXLSX przenosi typowane wartości ustawień strony oraz nieprzezroczysty ładunek sterownika drukarki do modelu XLSX jako odrębne dane; typowane pola standardowe pozostają autorytatywne, gdy prywatne bajty sterownika zawierają zduplikowane ustawienia domyślne drukarki

Właściwości zestawu znaków IXLSFont

property CharSet: Byte;
property Family: Byte;
      
CharSet i Family udostępniają bajty zestawu znaków i rodziny czcionki klasycznego XLS dla wywołujących, którzy muszą zachować metadane czcionki specyficzne dla danego języka

Metody Abort TDataToXLS i TGridToXLS

procedure TDataToXLS.Abort;
procedure TGridToXLS.Abort;
      
Wywołaj Abort z programów obsługi zdarzeń eksportu, gdy uruchomiony eksport zestawu danych lub siatki musi zostać zatrzymany przed zakończeniem

Klasyczne funkcje pomocnicze odwołań XLS

function GetCellRef(Cell: String; var Row, Col: Word): Integer;
function GetCellRange(CellRange: String; var StartRow, StartCol, EndRow, EndCol: Word): Integer;
function EncodeCellRef(Row, Col: Word): String;
function EncodeCellRange(StartRow, StartCol, EndRow, EndCol: Word): String;
function Width2Excel(Value: Single): Word;
function Excel2Width(Value: Word): Single;
function Height2Excel(Value: Single): Word;
function Excel2Height(Value: Word): Single;
function ColIndexToColName(Index: Integer): String;
function ColNameToColIndex(Name: String): Integer;
      
Te pomocniki konwertują klasyczne odwołania A1, zakresy, etykiety kolumn, wymiary wierszy lub kolumn oraz jednostki przechowywania Excel używane przez klasyczny model obiektów XLS