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
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
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
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
Właściwość DisplayText IXLSHyperLink
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