Dokumentacja HotXLS / Dokumentacja API

Przenośne wyjście headless

Dostępne od wersji 2.384.100 jako ograniczony potok wyjścia z jawnymi API przechwytu i renderowania

Przechwyć obsługiwany prostokąt ze skoroszytu Classic XLS albo XLSX w Windows, przetransferuj jego niezmienną migawkę i wyrenderuj PDF, SVG albo PNG na Linuksie lub macOS z Free Pascal i natywnym Cairo

Adapter przechwytu korzysta z silnika skoroszytu; przechwyt w Windows używa swojej domyślnej usługi geometrii, podczas gdy natywny przechwyt na Linuksie i macOS może dostarczyć jawną usługę geometrii FreeType/HarfBuzz opartą na plikach fontów wybranych przez aplikację

Oddzielny natywny konsument przyjmuje sceny lxPortableRender przez lxPortableCairo, bez Excela i sesji pulpitu; jego API geometrii też korzysta z istniejących przenośnych jednostek widoku skoroszytu i geometrii renderowania

Konsument przyjmuje niezmienną scenę albo strumień transferu; wymagania platformowe dla wczytywania i obliczania skoroszytów są opisane osobno w wsparciu Free Pascal

Przechwyt prostokąta istniejącego skoroszytu

CaptureXLSPortableRenderSnapshot w lxPortableWorkbookCapture przyjmuje IXLSWorkbook albo IXLSXWorkbookOwner, z jawnymi albo domyślnymi TXLSPortableRenderLimits; dwa kolejne przeciążenia przyjmują jawne limity, po których następuje provider IXLSRenderGeometry ograniczony do widoku przechwytu

SheetIndex i włączna Row1, Col1, Row2, Col2 są numerowane od 1; powstała migawka przechowuje pozycje numerowane od zera względem przechwyconego prostokąta

program CaptureRectangle;
{$APPTYPE CONSOLE}
uses SysUtils, Classes, lxHandleX, lxPortableRender,
  lxPortableWorkbookCapture;
var
  Workbook: TXLSXWorkbook;
  Owner: IXLSXWorkbookOwner;
  Snapshot: IXLSPortableRenderSnapshot;
  Stream: TFileStream;
begin
  Workbook := TXLSXWorkbook.Create;
  Owner := Workbook;
  if Workbook.Open('report.xlsx') <> 1 then
    raise Exception.Create('Cannot open report.xlsx');
  Snapshot := CaptureXLSPortableRenderSnapshot(Owner, 1, 1, 1, 30, 6);
  Stream := TFileStream.Create('report.hxrs', fmCreate);
  try
    SaveXLSPortableRenderSnapshot(Snapshot, Stream,
      XLSDefaultPortableRenderLimits);
  finally
    Stream.Free;
  end;
  Owner := nil;
end.

Trzymaj interfejs właściciela przy życiu podczas korzystania z obiektu skoroszytu; zwalniaj interfejs zamiast ręcznie niszczyć skoroszyt posiadany przez interfejs

Dla Classic XLS użyj TXLSWorkbook i IXLSWorkbook z lxHandle z tym samym wywołaniem przechwytu

Przechwyt czyta istniejące pamięci podręczne formuł i odrzuca dowolną formułę w prostokącie bez pamięci podręcznej; nigdy nie przelicza jawnie, nie pobiera danych zewnętrznych ani nie rejestruje nowych stylów w skoroszycie źródłowym

Przelicz jawnie przed przechwytem, gdy aplikacja potrzebuje świeżych wyników formuł; istniejąca pamięć podręczna jest renderowana tak, jak została zapisana, więc przechwyt nie poświadcza jej świeżości

Operacja trzyma widok odczytu i sprawdza generację skoroszytu przed zwróceniem; zwrócona migawka jest odłączona od własności skoroszytu i pozostaje użyteczna po zwolnieniu skoroszytu

Wygląd i granice przechwytu

Migawka zawiera sformatowany tekst wyświetlany, wymiary fizyczne w punktach, rozwiązane kolory RGB, obsługiwane fonty i wyrównania komórek, wypełnienia, obramowania i kompletne scalone prostokąty; ukryte wiersze i kolumny mają rozmiar zerowy

Obsługiwany wygląd fontów obejmuje pogrubienie, kursywę, pojedyncze podkreślenie i przekreślenie; obsługiwany wygląd komórek obejmuje wypełnienia pełne, wyrównanie poziome lewe/środkowe/prawe, wyrównanie pionowe górne/środkowe/dolne, zawijanie, zmniejszanie i kolejność czytania od prawej do lewej

Obramowania skoroszytu cienkie, średnie, grube, włosowe, podwójne, kropkowane, kreskowe i średnio-kreskowe mapują się na przenośne style obramowań i szerokości punktowe; inne style obramowań są odrzucane

Obsługiwany rich text niesie efektywne fonty przebiegów, rozmiary punktowe, kolory RGB, pogrubienie, kursywę, pojedyncze podkreślenie, przekreślenie oraz indeks górny lub dolny na poziomie przebiegu; zwykłe efekty fontów komórki kontur/cień/pionowe, nieobsługiwane style podkreślenia, gradientowe albo wzorzyste wypełnienia, obramowania ukośne, wcięcia, rotacja tekstu i nieobsługiwane wyrównania są odrzucane

Prostokąt przechwytu musi zawierać każdą scaloną komórkę w całości; przycięte, nakładające się albo niespójne scalenia i niezgodne style wzdłuż scalonej krawędzi zewnętrznej są odrzucane

Tła arkuszy i nieobsługiwane rodzaje arkuszy odrzucają przechwyt; obsługiwane obrazy PNG/JPEG i zwykłe kształty tekstowe prostokąt/elipsa w obu fasadach skoroszytu są przechwytywane jako uporządkowane obiekty sceny, razem z obrazami komórek XLSX, checkboxami Boolean i opisanym poniżej obsługiwanym podzbiorem zapamiętanych wykresów XLSX; nieobsługiwane wykresy, presety kształtów, WordArt, transformacje grupowe, kontrolki pływające, Slicery, Timeline i sparkline są odrzucane, gdy ich rozwiązane ślady przecinają prostokąt

Nieobsługiwana treść z pewnym rozwiązaniem śladu poza prostokątem może współistnieć z przechwytem; nierozwiązywalny ślad rysunku jest odrzucany zamiast cichego pominięcia potencjalnie nakładającej się treści

Stylizacja tabel Classic przecinająca prostokąt jest odrzucana; wbudowane i obsługiwane niestandardowe sekcje Table XLSX są rozwiązywane w odłączonym kontekście stylów, z pasami o rozmiarze sekcji i bezpośrednimi nadpisaniami formatu komórek

Dla obsługiwanych zaimportowanych sekcji Table z pełnym albo niejawnym różnicowym wypełnieniem RGB bgColor dostarcza widoczne tło; sam RGB fgColor pozostawia odziedziczone tło bez zmian, a sekcja niosąca oba kolory używa swojego koloru tła

Zaimportowane sekcje Table zawierające wygląd, którego typowane podsumowanie nie potrafi przedstawić, są odrzucane, gdy dana sekcja ma zastosowanie, łącznie z podkreśleniem, formatami liczb, jawnie wyczyszczonym pogrubieniem/kursywą, schematami fontów, jawnym wzorem braku wypełnienia i nieobsługiwanymi postaciami kolorów; niepowiązana sekcja poza przechwyconym prostokątem nie blokuje przechwytu

Obsługiwane formatowanie warunkowe jest aplikowane bez ewaluacji formuł: zapamiętane porównania liczbowe albo datowe względem literałowych granic liczbowych, literałowe wyrażenia Boolean lub liczbowe, reguły zawierania/prefiksu/sufiksu tekstu, puste i błędy; wygląd wyższego priorytetu wygrywa per obsługiwana właściwość, a XLSX StopIfTrue zatrzymuje reguły dopasowania niższego priorytetu

Tekstowe reguły Classic wymagają literałowej igły tekstowej i dopasowują zapamiętane komórki tekstowe; tekstowe reguły XLSX korzystają ze swoich zapisanych kryteriów tekstowych

Obsługiwany różnicowy wygląd obejmuje rozwiązane kolory motywu z tint oraz zwykłe kolory indeksowane; zaimportowane kolory automatyczne, tint spoza motywu, wypełnienie różnicowe niosące jednocześnie kolor pierwszego planu i tła oraz nieobsługiwane obramowanie, wyrównanie, przekreślenie albo inna nieprzedstawialna różnicowa cecha wyglądu są odrzucane, gdy pasująca reguła ma zastosowanie

Formuły warunkowe wymagające ewaluacji, reguły agregujące albo zależne od dat, skale kolorów, paski danych i zestawy ikon są odrzucane tam, gdzie zostaną napotkane; liczby nakładających się reguł formatowania warunkowego są ograniczone

Konwersja Date1904 wybiera mający zastosowanie surowy sekcji formatu liczbowego przed aplikacją offsetu kalendarza; nieaktywne sekcje kalendarza nie zmieniają zwykłego wyświetlania liczbowego, a wartości Boolean pozostają Boolean

Wybrana sekcja kalendarza Date1904 połączona z warunkami formatu albo konstrukcjami czasu upływu jest odrzucana; cudzysłowowe albo escapowane separatory sekcji też są odrzucane, a ta granica nie blokuje wybranej zwykłej sekcji liczbowej tylko dlatego, że inna sekcja jest formatem kalendarza

Rich text i uporządkowane sceny rysunków

TXLSPortableCell.RichText to tablica rekordów TXLSPortableTextRun zawierających Text, FontFamily, FontSizePoints, FontStyles, ColorRGB i BaselineShiftPoints; sklejony tekst przebiegów musi być dokładnie równy tekstowi wyświetlanemu komórki

Przebiegi XLSX dziedziczą pominięte właściwości z efektywnego fontu przechwyconej komórki, łącznie z obsługiwaniem tabelą i formatowaniem warunkowym; jawnie przypisane flagi false oraz jawne wartości none/baseline/automatic koloru nadpisują dziedziczenie

Natywne ciągi współdzielone i ciągi inline zachowują granice przebiegów i białe znaki; nieobsługiwane natywne potomkowie fontów, atrybuty, przestrzenie nazw, rozbudowane kolory motywu/indeksowane i adnotacje fonetyczne są odrzucane zamiast cicho gubić widoczny wygląd

Przebiegi Classic rozwiązują swoje zapisane indeksy fontów BIFF do pełnych efektywnych fontów przebiegów; metadane fonetyczne i nieobsługiwane fonty przebiegów są odrzucane, a przechwyt zachowuje generację skoroszytu i pule stylów

Tekstowe kształty Classic czytają istniejące właściwości OfficeArt i przebiegi fontów TXO bez tworzenia wraperów rysunków i bez zmiany skoroszytu; kotwice korzystają z rzeczywistych wymiarów wierszy/kolumn i offsetów, obsługiwane pełne wypełnienia i kontury zachowują kolory i szerokości, a osadzone bajty PNG/JPEG są odłączane przed transferem

Tekst prostokąta korzysta z natywnych marginesów 7,2 pkt poziomego i 3,6 pkt pionowego; tekst elipsy dodatkowo korzysta ze swojego wpisanego prostokąta tekstu, utrzymując zwykły tekst wewnątrz konturu kształtu w obu fasadach skoroszytu

Zaimportowane kontenery Classic prostokąt i elipsa zachowują swój typowany tekst i formatowanie; pominięte metadane natywnego kształtu albo grupy bez rozwiązalnego śladu odrzucają przechwyt jawnie, podczas gdy nieznane rekordy ogona obiektu, rozszerzenia rysunków, rotacja, wypełnienia niepełne i nieobsługiwane style linii odrzucają przecinający obiekt

Zaimportowane kotwice XLSX dwóch komórek prostokąta i elipsy obsługują jawne pełne wypełnienia RGB z alfą, kontury pełne albo kreskowe/kropkowane, fizyczne offsety kotwic i pojedynczy zwykły akapit rich text; każdy przebieg zachowuje swój efektywny krój, rozmiar punktowy, kolor, pogrubienie, kursywę, pojedyncze podkreślenie i przekreślenie, łącznie z jawnym resetem pogrubienia albo kursywy

Czytnik zaimportowanych kształtów rezerwuje surowy bufor roboczy XML przed parsowaniem i kooperacyjnie sprawdza budżety elementów, bajtów i tekstu; zachowuje kolejność rysunków skoroszytu i dzierżawy odczytu bez tworzenia modeli kształtów albo nieobecnych komórek

Nieznane natywne właściwości kształtów, efekty, motywy, rotacje, transformacje grupowe, wiele akapitów i nieobsługiwane rodzaje kotwic są odrzucane jawnie; rozwiązany nieobsługiwany ślad poza prostokątem przechwytu nie blokuje żądanego regionu

Indeks górny i dolny na poziomie przebiegu korzystają z dwóch trzecich rozmiaru fontu przebiegu i przesunięcia linii bazowej jednej trzeciej jego pierwotnego rozmiaru punktowego; granica stylu przecinająca klastra kształtowania Unicode albo sekwencja CRLF przechodząca przez niezgodne granice przebiegów jest odrzucana podczas natywnego układu

TXLSPortableSceneObject niesie Kind, punktowe X, Y, Width, Height, prostokąt przycinania, kolory i krycie wypełnienia/konturu, opcjonalne punkty ścieżki, komórkę tekstową albo zakodowane bajty rastra i wymiary

TXLSPortableSceneKind zawiera xpskRectangle, xpskEllipse, xpskPolyline, xpskPolygon, xpskText, xpskPNG i xpskJPEG; kolejność tablicy to kolejność rysowania, przy czym późniejsze obiekty przykrywają wcześniejsze

Dodatkowe przeciążenie CreateXLSPortableRenderSnapshot przyjmuje tablicę TXLSPortableSceneObjects; odpytaj IXLSPortableRenderSceneSnapshot o numerowane od zera Objects i ObjectCount, których gettery zwracają odłączone kopie, łącznie z tablicami przebiegów, punktów i rastrów

Obrazy komórek i ścieżki checkboxów poprzedzają rysunki pływające; rysunki pływające zachowują kolejność skoroszytu, fizyczne kotwice i przycinanie viewportu, a kształty tekstowe korzystają z minor font motywu o 11 punktach z marginesami tekstu 7,2 punkta poziomym i 3,6 punkta pionowym

Obrazy PNG i JPEG są dekodowane natywnie po preflight nagłówka, rozmiaru pikseli i bajtów; obsługiwane obrazy pływające zachowują przezroczystość i geometrię rozciągania, podczas gdy obrazy komórek mieszczą się w komórce albo kompletnym scalonym prostokącie z zachowanym współczynnikiem proporcji

Przycinanie, rotacja, cienie, regulacja luminancji/gammy, kafelkowanie, towarzysze SVG i żywe powiązania kamery pozostają nieobsługiwane; zachowany XML obrazów jest walidowany względem obsługiwanego wyglądu, więc ukryte obrazy, nieznane zagnieżdżone metadane, właściwości w obcych przestrzeniach nazw, nieprostokątna geometria obrazów i niemodelowane transformacje są odrzucane tylko wtedy, gdy ich ślad nachodzi na przechwyt

Checkboxy komórek Boolean używają neutralnej motywowo wektorowej ramki i opcjonalnego znacznika wyboru, łącznie z efektywnymi kontrolkami odziedziczonymi z formatów wierszy i kolumn; żądany marszruta komórek jest ograniczana przed przemierzeniem, inne rodzaje kontrolek oraz puste albo nie-Boolean wartości checkboxów są odrzucane, a obsługiwane sceny komórkowe wyciszają skalarne Boolean albo tekst zapasowy błędu obrazu

Domyślny checkbox to metadane wstawiania i nie tworzy Boolean dla nieobecnej komórki; jawne czyszczenie kontrolki bezpośredniej komórki maskuje kontrolkę odziedziczoną, podczas gdy odczyty przechwytu zachowują rzadką nieobecność i generację skoroszytu

XLSReadPortableImageDimensions waliduje ograniczony PNG IHDR albo obsługiwana ośmiobitowa klatkę JPEG sekwencyjną/progressive i zwraca zadeklarowaną szerokość i wysokość; dekodowanie pozostaje odpowiedzialnością renderera

IXLSPortableSceneCaptureSource.ReadPortableSceneObjects korzysta ze współrzędnych skoroszytu numerowanych od 1 i punktowych współrzędnych sceny względem zakresu, waliduje zakres i kooperacyjne limity oraz zwraca skonsumowane liczby bajtów, tekstu i elementów; HasPortableCellScene identyfikuje komórki, których wyświetlanie skalarne jest zastępowane przez przechwyconą scenę

Natywny układ: CellCount liczy komórki siatki, a LineCount obejmuje też obiekty scen tekstowych; CellIndex linii obiektu tekstowego to CellCount plus jego numerowana od zera sekwencja wśród obiektów scen tekstowych, podczas gdy GetCellGeometry pozostaje ograniczone do komórek siatki

Skalarne migawki dalej serializują się jako HXRSNP01; migawki zawierające przebiegi albo obiekty scen serializują się jako HXRSNP02, a loader akceptuje obie wersje z tym samym kontraktem niezmiennej własności i wycofania pozycji wejścia

Połączony budżet elementów liczy zapisane komórki, przebiegi rozbudowane, obiekty scen i punkty ścieżek; limity bajtów obejmują etapowane i odłączone tablice, tekst, zakodowane ładunki rastra i ograniczoną inspekcję natywnych metadanych przed alokacją

Przenośne API migawki

SymbolKontrakt
EXLSPortableRenderWyjątek podnoszony dla nieprawidłowych danych migawki, nieobsługiwanego wyglądu przechwytu, niedostępnego natywnego backendu, limitów zasobów albo błędów renderowania
TXLSPortableFontStyle, TXLSPortableFontStylesxpfsBold, xpfsItalic, xpfsUnderline i xpfsStrikeout, łączone jako zbiór
TXLSPortableHorizontal, TXLSPortableVerticalxphLeft, xphCenter, xphRight oraz xpvTop, xpvCenter, xpvBottom
TXLSPortableBorderStyle, TXLSPortableBorderxpbsNone, xpbsSolid, xpbsDashed, xpbsDotted i xpbsDouble; każde obramowanie niesie Style, WidthPoints i ColorRGB
TXLSPortableCellNumerowane od zera Row/Column, dodatnie RowSpan/ColumnSpan, wyświetlany Text, FontFamily, FontSizePoints, FontStyles, TextColorRGB, FillColorRGB, HasFill, WrapText, ShrinkToFit, RightToLeft, Horizontal, Vertical i cztery rekordy LeftBorder/TopBorder/RightBorder/BottomBorder
TXLSPortableCells, TXLSPortableSizesTablice dynamiczne zapisanych komórek oraz fizycznych rozmiarów wierszy/kolumn w punktach
TXLSPortableRenderLimitsMaxGridCells, MaxStoredCells, MaxBytes i MaxTextCharacters ograniczają konstrukcję, przechwyt i serializację
XLSDefaultPortableRenderLimitsZwraca 2000000 komórek siatki, 2000000 komórek zapisanych, 67108864 bajtów i 16777216 znaków tekstu UTF-16
XLSDefaultPortableCellInicjalizuje rozpiętość jednej komórki z Calibri o 11 punktach i domyślnym wyglądem zerowym; ustaw jej pozycję i żądany wygląd przed konstrukcją
CreateXLSPortableRenderSnapshotWaliduje i kopiuje generację, wysokości wierszy, szerokości kolumn i zapisane komórki do odłączonego niezmiennego interfejsu; komórki muszą być unikalne, w kolejności wiersz-główna, w granicach i mieć nienakładające się rozpiętości
IXLSPortableRenderSnapshotTylko do odczytu: Generation, RowCount, ColumnCount, CellCount, numerowane od zera RowHeightPoints, ColumnWidthPoints i skopiowane rekordy Cells
Metody getter migawkiGetGeneration, GetRowCount, GetColumnCount, GetCellCount, GetRowHeight, GetColumnWidth i GetCell ujawniają te same wartości; nieprawidłowy dostęp indeksowany podnosi wyjątek
SaveXLSPortableRenderSnapshotWaliduje i serializuje jedną migawkę do ograniczonego prywatnego bufora, po czym kopiuje kompletny ładunek HXRSNP01 albo HXRSNP02 do podanego strumienia w jego bieżącej pozycji
LoadXLSPortableRenderSnapshotCzytuje wersjonowaną migawkę little-endian ze ścisłym tekstem UTF-8, waliduje liczby, geometrię, style i rozpiętości oraz odrzuca dane końcowe; błąd przywraca pozycję strumienia wejścia

Wszystkie limity muszą być dodatnie; zwalidowane maksimum to 2000000 komórek siatki/zapisanych, 1073741824 bajtów i 268435456 znaków tekstu, przy wymiarach nie większych niż 1048576 wierszy na 16384 kolumn

MaxGridCells liczy cały prostokąt, łącznie z niezapisanymi pustymi komórkami; CellCount liczy zapisane widoczne komórki i kotwice scaleń i może być mniejsze

Generation rejestruje generację źródła albo wartość dostarczoną przez aplikację; to metadane, a nie żywe łącze do skoroszytu ani automatyczne sprawdzenie świeżości

Renderowanie natywne i jawne fonty

XLSPortableCairoBackendAvailable raportuje dostępność skompilowanego natywnego backendu; natywne wyjście wymaga Free Pascal na Linuksie lub macOS, z bibliotekami Cairo, FreeType, HarfBuzz i FriBidi dostępnymi dla procesu

Budowanie macOS linkuje cztery natywne biblioteki jawnie; prywatny prefiks zależności i jawna ścieżka loadera procesu potomnego potrafią je dostarczyć bez zmian we wspólnych ustawieniach kompilatora czy profilach powłoki

Windows Delphi XE5, Win32 i Win64 potrafi skompilować przenośne interfejsy i korzystać z serializacji migawek, ale natywne przygotowanie układu Cairo raportuje tam niedostępność backendu

Przekaż jawny łańcuch fontów do PrepareXLSPortableCairoLayout; renderer najpierw próbuje dopasować rodzinę i styl pogrubienie/kursywa, potem fallbacki tego samego stylu w podanej kolejności, wymagając pokrycia glifów dla każdego obsługiwanego klastra tekstu

Dostarcz rzeczywiste pliki regular, bold, italic i bold-italic wymagane przez przechwyconą treść; nie ma odkrywania fontów systemowych ani syntetycznego podstawiania bold/italic, a brakujące pliki, mapowania stylów albo pokrycie glifów są odrzucane

Bajty fontów są przechwytywane przed kształtowaniem, więc zmiana pliku wpływa na późniejsze układy, podczas gdy istniejący układ zachowuje przechwycone bajty; FaceIndex wybiera nieujemny krój w pliku albo kolekcji fontów

Operacje natywne są serializowane dla bezpieczeństwa krójów FreeType; niezmienne migawki i inspekcja przygotowanego układu nie wymagają żywego skoroszytu

Fonts[0].FamilyName := 'Calibri';
Fonts[0].FileName := '/srv/fonts/Regular.ttf';
Fonts[0].FaceIndex := 0;
Fonts[0].Bold := False;
Fonts[0].Italic := False;

Tutaj Calibri to jawny alias rodziny dla wybranego pliku, co pozwala na mapowanie fontów kontrolowane przez aplikację; przy mapowaniu na inny font badaj metryki wyjścia

Renderer obsługuje twarde łamanie wierszy, rozwinięcie tabulatora o cztery spacje, dwukierunkowe uporządkowanie akapitu, kształtowane ligatury i znaki diakrytyczne łączne, zachłanne zawijanie i zmniejszanie-dopasowanie; zawijanie ma pierwszeństwo przed zmniejszaniem

Zawijanie zachowuje zaimplementowane granice klastrów znaków diakrytycznych łącznych, selektorów wariacji, ZWJ i wiramy oraz faworyzuje spacje i spacje ideograficzne; nie jest to pełna implementacja grafemów UAX #29 ani algorytm łamania wierszy Unicode, a granice zawijania regional-indicator i Hangul-Jamo nie są gwarantowane

Rozmiary fontów rozwiązują się do 1/64 punkta, a tekst jest przycinany do granic komórek; PDF osadza jawne fonty z logicznymi mapowaniami tekstu, SVG korzysta z wektorowych ścieżek glifów, a PNG rysuje te same pozycjonowane glify w żądanym DPI

Przygotowanie i inspekcja układu

SymbolKontrakt
TXLSPortableFontFile, TXLSPortableFontFilesJedno jawne mapowanie zawiera FamilyName, FileName, FaceIndex, Bold i Italic; tablica dynamiczna jest uporządkowana i zawiera od 1 do 64 mapowań
TXLSPortableCairoFormat, TXLSPortableOutputFilesxpcfPDF, xpcfSVG albo xpcfPNG oraz tablica nazw plików wyjściowych zwrócona przez zapis plikowy
TXLSPortableCairoOptionsSzerokość/wysokość strony, cztery marginesy, padding komórek i raster DPI, plus limity strony, glifów, linii, układu, wyjścia, fontów, kształtowania i rysowania
XLSDefaultPortableCairoOptionsInicjalizuje każdą opcję ograniczonymi wartościami domyślnymi; użyj go przed nadpisaniem poszczególnych pól
PrepareXLSPortableCairoLayoutWaliduje i kopiuje migawkę, przechwytuje jawne bajty fontów i zwraca posiadany przygotowany TXLSPortableCairoLayout; zwalniaj go przez Free
TXLSPortableCairoLayoutUjawnia PageCount, LineCount, CellCount, GetTextLine, GetCellGeometry, SaveToStream, Save i Destroy
TXLSPortableTextLineInfoSkopiowany rekord linii ma CellIndex, GlyphCount, XPoints, BaselinePoints, WidthPoints, FontSizePoints i logiczny Text
TXLSPortableCellGeometrySkopiowany prostokąt ma XPoints, YPoints, WidthPoints i HeightPoints w pełnym układzie
GetTextLine(Index), GetCellGeometry(Index)Indeksowana inspekcja numerowana od zera dla przygotowanych linii i zapisanych komórek; nieprawidłowe indeksy są odrzucane

Paginacja przycina stałe kafle obszaru druku w kolejności najpierw-w-dół-potem-w-poprzek; komórka albo fragment tekstu przecinający granice stron pojawia się na każdej przecinanej stronie, bez automatycznego dopasowywania całych komórek, powtarzania tytułów wydruku arkusza ani interpretacji ustawień strony skoroszytu

Opcje i granice renderera

PolaDomyślne i znaczenie
PageWidthPoints, PageHeightPoints595 na 842 punkty
MarginLeftPoints, MarginTopPoints, MarginRightPoints, MarginBottomPointsPo 36 punktów; marginesy muszą zostawiać dodatni prostokąt druku
CellPaddingPoints, RasterDPI2 punkty i 96 DPI; DPI wpływa na wymiary PNG
MaxPages, MaxGlyphs, MaxLines256 stron, 2000000 kształtowanych glifów i 200000 linii tekstu
MaxLayoutBytes268435456 bajtów dla ograniczonej pracy układu i sprawdzeń powierzchni rastra
MaxOutputBytes268435456 bajtów na bufor wyjścia renderowania, obejmujący kompletny PDF albo jedną stronę SVG/PNG, a nie sumę osobnych plików stron
MaxFontBytes134217728 bajtów w poprzek jawnych plików wejścia fontów dla jednego układu
MaxShapedCharacters, MaxDrawOperationsPo 16000000, ograniczając pracę kształtowania i pracę rysowania per strona na komórkę

Nieprawidłowa albo nieskończona geometria i nie dodatnie budżety pracy są odrzucane; wymiary stron są ograniczone do 100000 punktów, a raster DPI do 1200, z dodatkowymi sprawdzeniami bajtów, liczb i powierzchni rastra przed renderowaniem

Natywna pula bajtów fontów dla całego procesu dodatkowo dopuszcza co najwyżej 256 odrębnych buforów i 256 MiB; identyczne bajty mogą dzielić zapis, a pojemność jest zwalniana dopiero wtedy, gdy rzeczywiście posiadany przez Cairo krój fontu zwolni swój bufor

Zwalniaj każdy układ po skończeniu; biblioteka nie resetuje współdzielonych pamięci podręcznych Cairo, a logicznie ukończony układ może pozostawić bajty fontów rezydentne, dopóki natywne Cairo nadal posiada krój

Zapis wyjścia i obsługa błędów

SaveToStream(Stream, Format, PageIndex = 0) zapisuje wszystkie strony dla PDF, wymagając PageIndex = 0; SVG i PNG zapisują wybraną stronę numerowaną od zera

Serializacja migawki i natywne renderowanie kończą się w prywatnych ograniczonych buforach przed kopiowaniem do strumienia celu; błędy walidacji albo renderowania go zachowują, ale błąd zapisu strumienia wywołującego może pozostawić częściowe bajty i podąża za własnym zachowaniem błędów tego strumienia

Save(FileName, Format) zapisuje jeden plik PDF albo jeden plik SVG/PNG na stronę i zwraca ich ścieżki; nazwy wielostronicowe wstawiają -0001, -0002 i kolejne sufiksy przed rozszerzeniem

Istniejące cele plikowe albo katalogowe są odrzucane; każdy zapis etapuje wszystkie strony, publikuje wyłączne nowe cele i usuwa własne wyjścia etapowane/opublikowane przy błędzie

System plików musi obsługiwać natywne operacje wyłącznego etapowania i publikacji linków; osobne zapisy PDF, SVG i PNG to osobne operacje i nie tworzą połączonej transakcji

Samodzielny konsument Linuksa

Tests/Portable/RenderPortableSnapshot.pas to kompletny konsument, który wczytuje migawkę, przygotowuje jeden układ i zapisuje wszystkie trzy formaty; buduj go na Linuksie z zainstalowanymi przenośnymi jednostkami i bibliotekami natywnymi

fpc -Mdelphiunicode -Fu/path/to/HotXLS/Lib RenderPortableSnapshot.pas
./RenderPortableSnapshot report.hxrs /srv/output/report fonts.tsv 595 842 96

fonts.tsv to tekst UTF-8 z czterema polami rozdzielonymi tabulatorami na mapowanie: alias rodziny, absolutna ścieżka fontu Linuksa, indeks kroju i jedna z wartości regular, bold, italic albo bolditalic

Calibri	/srv/fonts/Regular.ttf	0	regular
Calibri	/srv/fonts/Bold.ttf	0	bold
Calibri	/srv/fonts/Italic.ttf	0	italic
Calibri	/srv/fonts/BoldItalic.ttf	0	bolditalic

Używaj rzeczywistych zainstalowanych albo dostarczonych przez aplikację plików fontów i wybierz nową bazę wyjścia, bo istniejące pliki celowe są odrzucane; dołącz dodatkowe fallbacki tego samego styla dla pism niepokrytych pierwszym mapowaniem

Stream := TFileStream.Create('report.hxrs', fmOpenRead or fmShareDenyWrite);
try
  Snapshot := LoadXLSPortableRenderSnapshot(Stream,
    XLSDefaultPortableRenderLimits);
finally
  Stream.Free;
end;
Options := XLSDefaultPortableCairoOptions;
Layout := PrepareXLSPortableCairoLayout(Snapshot, Fonts, Options);
try
  Files := Layout.Save('/srv/output/report.pdf', xpcfPDF);
  Files := Layout.Save('/srv/output/report.svg', xpcfSVG);
  Files := Layout.Save('/srv/output/report.png', xpcfPNG);
finally
  Layout.Free;
end;

Nagrywanie zapamiętanych wykresów

XLSRecordCachedChartScene w lxPagination nagrywa punktowe prymitywy istniejącego renderera układu wykresów do niezmiennej przenośnej reprezentacji sceny; jego źródłem musi być odłączony TXLSXChart bez posiadającego arkusza i bez zachowanego natywnego XML, więc nagrywanie nie potrafi rozwiązać odwołań arkuszowych ani odświeżyć pamięci podręcznych skoroszytu

Bieżący podzbiór obsługuje wykresy kolumnowe, słupkowe, liniowe, punktowe, kołowe, pierścieniowe i zwykłe obszarowe o jednej serii z jedną podstawową grupą wykresu, skończonymi liczbowymi pamięciami podręcznymi wartości i ściśle rosnącymi ograniczonymi indeksami pamięci podręcznej; pamięci podręczne kategorii scatter zawierają liczbowe współrzędne X, podczas gdy pozostałe rodziny korzystają z zapisanych etykiet kategorii

Pamięci podręczne wartości wykresów kolumnowych, słupkowych, liniowych i obszarowych muszą mieć ciągłe indeksy numerowane od zera; rzadkie luki wartości kategorii są odrzucane, a nagrywanie nigdy nie rozwija brakujących indeksów do dużej tablicy

Wykresy słupkowe zachowują poziomą geometrię i etykiety kategorialne; wykresy kołowe i pierścieniowe korzystają z legend kategorii, honorują FirstSliceAng i HoleSize oraz pomijają osie liczbowe, podczas gdy zwykłe obszarowe wykresy o jednej serii zachowują wypełniony wielokąt wokół zerowej linii bazowej

Serie liniowe i punktowe obsługują niezależną widoczność linii, jawny kolor RGB i szerokość punktową przez LineVisible, LineColorRGB i LineWidthPoints; LineStyleSet, LineColorSet i LineWidthSet odróżniają ustawienia jawne od dziedziczonych domyślnych, a EffectiveLineVisible rozwiązuje istniejącą konwencję serii tylko z wypełnieniem

Markery obsługują automatyczne kółko, jawne kółko albo brak markera; jawny MarkerSize od 2 do 72 ustawia średnicę punktową, a MarkerFillSet i MarkerBorderSet odróżniają jawne czarne RGB równe zero od automatycznego wyboru koloru; segmenty łączące są malowane przed nieprzezroczystymi markerami danych

Jawne obramowania markerów bez zapisanej szerokości korzystają ze zwykłej linii 0,75 punkta, podczas gdy próbki legend ograniczają średnicę kółka do 6 punktów; żądane fonty tytułów są zapisywane na rzeczywistym przebiegu rich text, jak i na jego domyślnych właściwościach tekstu, zachowując widoczny rozmiar, kolor i wyróżnienie, gdy Excel eksportuje wykres

Nieobsługiwane rodziny wykresów, obszarowe wykresy stosowane albo wieloseryjne, kołowe wieloseryjne, style galerii, zaokrąglone narożniki, drugorzędne albo połączone grupy wykresu, osie dat, niestandardowe formaty liczb, osie logarytmiczne, niestandardowe zachowanie przecięcia, obrócony tekst, linie trendu, słupki błędów, hierarchiczne kategorie, etykiety danych, inne kształty markerów i brakujące pamięci podręczne wartości podnoszą EXLSPortableRender przed renderowaniem

Niestandardowe fonty znaczników osi wartości, drobne siatki, jawne jednostki głównych/drobnych, nieprawidłowe jawne kolory serii i nieobsługiwane pozycje osi są odrzucane; legendy słupkowe wymagają obecnie zwykłego rozmieszczenia po prawej, a wykresy kołowe wymagają skończonej niezerowej zapamiętanej sumy i ograniczonej geometrii z wczesną zachowawczą rezerwacją bufora roboczego na łuki

Zwrócona tablica zachowuje prymitywną kolejność rysowania, jawne kolory, fonty, wyrównanie tekstu, krycie i granice przycinania wykresu; rachunek elementów, bajtów i tekstu obejmuje zachowawcze rezerwacje bufora roboczego renderera, a kooperacyjne sprawdzenia pamięci podręcznej poprzedzają alokację tablicy roboczej

XLSValidateCachedChartSceneModel wykonuje ten sam ograniczony preflight pamięci podręcznej i wyglądu na modelu bez rozwiązywania komórek arkusza; mostek przechwytu XLSX korzysta z tego sprawdzenia przed klonowaniem i nagrywa obsługiwane autorskie modele wykresów z lokalnymi jednowymiarowymi odwołaniami A1, fizycznymi natywnymi offsetami kotwic, przycinaniem zakresów i kolejnością rysowania

Platformowo neutralny moduł nagrywający mieszka w lxPortableChart; istniejące punkty wejścia lxPagination dzielą te same ciała układu i nagrywania prymitywów, zachowując zachowanie renderera Windows i zgodne niezmienne bajty scen oraz rachunek budżetu dla każdej obsługiwanej rodziny

Natywny przechwyt skoroszytu na Linuksie i macOS korzysta z jawnego przeciążenia geometrii opisanego poniżej; zaimportowane wypełnienie RGB serii, tło obszaru wykresu, tło wykresu i obramowanie wykresu są odzyskiwane z ich własnych właściwości kształtu rozwiązanych w przestrzeni nazw, więc zagnieżdżony kolor serii nie potrafi nadpisać tła wykresu

Zachowany zaimportowany ChartML jest akceptowany tylko wtedy, gdy jego strumień elementów, atrybutów i znaczącego tekstu rozwinięty w przestrzeni nazw pasuje do obsługiwanej typowanej rekonstrukcji; aliasy przestrzeni nazw i kolejność atrybutów się normalizują, podczas gdy niemodelowane natywne rozszerzenia, obce atrybuty i nieobsługiwany wygląd są konserwatywnie odrzucane

Budżety robocze surowego XML i rekonstrukcji są sprawdzane przed klonowaniem i projekcją; tylko odłączona kopia czyści swój zwalidowany zachowany XML, a źródło zachowuje metadane natywne, zapis komórek, treść pamięci podręcznej i generację

Przechwyt przemierza leżący pod spodem porządek rysunków OfficeArt, łącznie z ramkami wykresów nieobecnymi w publicznym wraperze Shapes, i odrzuca przecinającą nieobsługiwaną ramkę zamiast cicho ją pomijać

Zapamiętane wykresy Classic ze zadeklarowanym wyglądem

Przechwyt Classic BIFF8 obsługuje siedem powyższych zwykłych rodzin wykresów, gdy ich rekordy rdzenia, lokalne zapisane wartości, jawne skale liniowe i wygląd dają się przedstawić; czyta zachowane rekordy i dostępne pamięci podręczne formuł bez ewaluowania formuł, rozwijania rzadkiego zapisu albo klonowania skompilowanych drzew formuł

Użyj TXLSWorkbook.CreateReadOnlyViewWithChartAppearance(Source, Limits, Geometry), aby utworzyć osobny widok tylko do odczytu z zamrożonym zbiorem wartości TXLSClassicChartAppearanceDeclaration dostarczanych przez IXLSClassicChartAppearanceSource; Geometry jest opcjonalne w Windows i dostarcza jawnych natywnych pomiarów fontów na Linuksie lub macOS

TXLSClassicChartAppearanceDeclarations to tablica dynamiczna prymitywnych deklaracji, których aplikacja może użyć do implementacji tego źródła

Przekaż ten skonfigurowany widok do CaptureXLSPortableViewRenderSnapshot(View, SheetIndex, Row1, Col1, Row2, Col2, Limits); współrzędne są numerowane od 1, a adapter przywraca aktywny arkusz wywołującego, gdy przechwyt się zakończy albo zostanie odrzucony

Zwykłe punkty wejścia przechwytu dalej odrzucają nierozwiązane efektywne fonty układu albo legendy Classic; odrębny punkt wejścia widoku korzysta z już zamrożonych deklaracji i providera geometrii

Składnik deklaracjiKontrakt
Generation, SheetIndex, ObjectIdPrzypięta generacja skoroszytu, indeks arkusza numerowany od 1 i rzeczywista zapisana tożsamość obiektu wykresu; nieaktualne generacje, brakujące albo powtórzone tożsamości i tożsamości należące do innego obiektu są odrzucane
HasChartSize, ChartWidthPoints, ChartHeightPointsJawny skończony dodatni rozmiar ramki wykresu w punktach; zachowuje zapisany początek kotwicy i kolejność rysowania, podczas gdy flaga fałszywa utrzymuje wymiary wyprowadzone z kotwicy
HasPlotInnerRectangle, PlotInnerRectangleJawny wewnętrzny prostokąt wykresu, wykluczający etykiety i tytuły osi; wymagany dla tej ścieżki zadeklarowanego wyglądu
HasTitleRectangle, TitleRectangleJawny prostokąt tytułu, gdy wykres ma tytuł; tekst źródłowy, rodzina fontu, wyróżnienie i kolor dalej pochodzą ze zwalidowanych rekordów rdzenia
HasLegendRectangle, LegendRectangleZadeklarowane granice legendy, gdy legenda występuje
HasLegendFontSize, LegendFontSizePointsJawny efektywny rozmiar punktowy wywołującego dla obecnej legendy; rodzina fontu rdzenia, wyróżnienie i kolor są zachowywane
TXLSPortableChartRectangleLeft, Top, Width i Height to skończone punkty względem przechwyconej ramki wykresu; aktywne prostokąty wymagają dodatnich wymiarów wewnątrz tej ramki
Count, GetCount, ReadDeclarationŹródło raportuje ograniczoną liczbę i zwraca jeden prymitywny rekord dla każdego indeksu numerowanego od zera, dopóki widok jest skonfigurowany; deklaracje są kopiowane przed późniejszym przechwytem

Te wartości to wygląd deklarowany przez wywołującego, a nie automatyczny układ Excela albo wnioskowane skalowanie fontów; uzyskuj je ze niezależnie sprawdzonego źródła albo zdefiniowanego przez aplikację układu i przeglądaj wyjście z jawnym natywnym mapowaniem fontów używanym do renderowania

Jawne wymiary ramki i wewnętrzne granice wykresu muszą zostawić wystarczająco miejsca dla zwalidowanych fontów etykiet osi; niewystarczające miejsce na etykiety jest odrzucane zamiast przycinania tekstu albo stosowania dopasowanego współczynnika skali

Aplikacje trzymają właściciela skoroszytu przy życiu do zwolnienia widoku; pożyczony widok trzyma dzierżawę odczytu i zachowuje źródło deklaracji, podczas gdy powstała niezmienna migawka nie zachowuje ani skoroszytu, ani providera

Obsługiwana projekcja rdzenia obejmuje literałowe pełne wypełnienia, widoczne pełne linie, markery kołowe, tekst tytułu i legendy, rozmieszczenie kategorii i ograniczone jawne znaczniki liczbowe; automatyczne skale, nierozwiązany automatyczny wygląd markerów, wygładzanie, nieznane rozbudowane rozszerzenia, obce albo nieliniowe odwołania serii i nieprzedstawialne style punktów są odrzucane przed wyjściem

Deklarowanie geometrii albo rozmiaru legendy nie upoważnia do ignorowania nieznanych rozszerzeń wykresu ani niezwalidowanych stylów; limity bajtów, tekstu, zapisanych komórek i scen pozostają skuteczne dla zachowanych danych źródłowych, deklaracji, odłączonych pamięci podręcznych i miejsca roboczego nagrywania

Dodatkowe przeciążenia XLSValidateCachedChartSceneModel i XLSRecordCachedChartScene przyjmują TXLSCachedChartSceneAppearance dla odłączonego modelu; zainicjalizuj go przez XLSDefaultCachedChartSceneAppearance przed ustawieniem jawnych kontrolek

Niżej poziomowy XLSReadClassicChartScene w lxClassicChartScene zwraca należący do wywołującego odłączony TXLSXChart, prymitywny wygląd i liczniki budżetu z zachowanego TXLSCustomChart, jego dokładnego kalkulatora źródła i dzierżawionego TXLSClassicChartSceneSource; zwolnij zwrócony model po nagraniu

TXLSClassicChartSceneSource.ReadAppearance dostarcza prymitywną deklarację, ReadCell czyta ograniczone przypięte lokalne zapisane wartości, ReadFont wypełnia podany styl tekstu ograniczonymi efektywnymi danymi fontu rdzenia, a PaletteColor rozwiązuje jawne zapisane wpisy palety; implementacje aplikacji muszą zachować przypięte źródło i honorować każdą przydzieloną kwotę bajtów i znaków

Składnik wyglądu scenyZnaczenie
SeriesMarkerSizePointsOgraniczone średnice punktowe per seria, łącznie z wartościami ułamkowymi; zero zachowuje rozmiar markera modelu, a niezerowe nadpisanie musi być od 2 do 72 punktów
OverrideBorder, BorderColorRGB, BorderWidthPointsJawny wygląd konturu ramki wykresu
AxisColorRGB, TickColorRGB, GridlineColorRGB, AxisWidthPoints, TickWidthPoints, GridlineWidthPointsJawne farby i szerokości punktowe osi, znaczników i głównej siatki
AreaFillOpacity, SeriesFillAlphaKrycie obszaru i alfa wypełnienia serii
UseAxisTickControls, CategoryBetweenZwalidowane jawne kontrolki osi i rozmieszczenie kategorialne
TitleOffsetXPoints, TitleOffsetYPointsSkończone offsety aplikowane do zwykłej pozycji tytułu nagrywarki
OverridePlotInnerRectangle, OverrideTitleRectangle, OverrideLegendRectangle, PlotInnerRectangle, TitleRectangle, LegendRectangleLiterałowe prostokąty punktowe względem ramki wykresu
PieRadiusRatioPromień wykresu kołowego jako ograniczony ułamek mniejszego wymiaru wykresu

Prymitywy wykresów podążają za istniejącą polityką układu HotXLS; wygląd galerii wykresów wymagający niemodelowanych domyślnych Excela pozostaje jawną granicą nieobsługiwaną

Bezpośredni natywny przechwyt skoroszytu

CreateXLSPortableCairoRenderGeometry(Fonts, Calibration, Generation, Backend, Options, CacheCapacity) zwraca IXLSRenderGeometry oparty na tych samych jawnych plikach fontów, FreeType, HarfBuzz i kształtowaniu tekstu co natywne wyjście; szerokości kolumn korzystają z rzeczywiście zmierzonej maksymalnej szerokości cyfry z kalibracją skoroszytu

Provider posiada odłączone bajty fontów i ograniczoną pamięć podręczną metryk, sprawdza budżety fontów i układu przed alokacją oraz waliduje żądania pomiarów przed zmianą stanu pamięci podręcznej; pełna pamięć podręczna może zwracać pomiary poza cache bez rozszerzania poza swoją pojemność

Przechwyt weryfikuje, że generacja providera i wszystkie pola kalibracji pasują do bieżącego widoku skoroszytu tylko do odczytu, zachowuje providera dla tego widoku i pozostawia domyślną fabrykę geometrii skoroszytu bez zmian; zwykła domyślna geometria natywna pozostaje jawną granicą GDI

Przechwyć generację przez jawnie zwolniony widok przed utworzeniem providera; zachowanie tymczasowego wyniku interfejsu potrafi utrzymać jego dzierżawę odczytu do końca otaczającego zakresu

View := Owner.CreateReadOnlyView;
Generation := View.Generation;
View := nil;
Geometry := CreateXLSPortableCairoRenderGeometry(Fonts,
  Workbook.CaptureRenderCalibration, Generation, xlsrgbBitmap,
  XLSDefaultPortableCairoOptions, 4096);
Snapshot := CaptureXLSPortableRenderSnapshot(Owner, 1, 1, 1, 30, 6,
  XLSDefaultPortableRenderLimits, Geometry);

Natywni konsumenci kompilują się z LX_PORTABLE_CORE i odpowiadającymi zależnościami natywnymi; wywołania Windows do natywnej fabryki geometrii Cairo są odrzucane jawnie, podczas gdy przechwyt w Windows może korzystać ze swojej istniejącej fabryki geometrii przez te same ograniczone przeciążenia

Rzeczywisty przechwyt natywny obsługuje opisane powyżej skalarny modelowany, rich text, obsługiwany raster, zwykłe kształty i siedem zapamiętanych rodzin wykresów; przechwyt wykresów zachowuje pierwotny zaimportowany ChartML, zapamiętane punkty, rzadki zapis komórek, zapis spakowany i generację skoroszytu

Dla niezmiennych obszarów druku, marginesów, skalowania dopasowaniem albo procentem, powtarzanych tytułów, ręcznych podziałów i paginacji komórek całych albo scalonych zobacz przenośne plany wydruku

Zaawansowany mostek przechwytu

IXLSRenderCaptureSource w lxSemanticSnapshot to wewnętrzny interfejs koordynacji implementowany przez obsługiwane widoki skoroszytu tylko do odczytu; zwykłe aplikacje powinny wywoływać przeciążenia przechwytu oparte na właścicielu

TXLSClassicReadOnlyWorkbookView i TXLSXReadOnlyWorkbookView implementują IXLSRenderCaptureSource, łącznie z ośmioma metodami renderowania poniżej; te klasy koordynują przechwyt przez widoki tylko do odczytu, a adapter zarządza ich czasem życia, podczas gdy aplikacje zachowują interfejs właściciela skoroszytu i wywołują CaptureXLSPortableRenderSnapshot

Ich istniejąca metoda TryReadCell dostarcza migawkę zapisanej komórki przez widok tylko do odczytu; metody renderowania dodają odłączony wygląd i geometrię dla przechwytu przenośnego

Składnik albo pomocnikCel
ValidateRenderRangeSprawdza granice prostokąta numerowane od 1 i ślady nieobsługiwanego wyglądu przed przechwytem
ReadRenderStyleZwraca odłączone metadane TXLSSemanticCellStyle i flagę obecności rich textu dla komórki numerowanej od 1
IXLSRenderRichTextCaptureSource, ReadRenderRichTextOpcjonalne rozszerzenie widoku zwracające ograniczone odłączone TXLSRenderTextRuns; każdy TXLSRenderTextRun zawiera Text i efektywny semantyczny Style, korzystając z podanego stylu bazowego i dodatnich kwot przebiegów/bajtów bez materializowania komórek i bez modyfikacji puli stylów
RenderRowHeightPoints, RenderColumnWidthPointsZwracają fizyczną geometrię, zwijając ukryte wymiary do zera
IXLSRenderGeometryCaptureSource, SetRenderCaptureGeometryOpcjonalne rozszerzenie widoku zachowujące jawnego providera dopiero po walidacji generacji i kalibracji; nieprawidłowe providery pozostawiają zachowanego providera widoku bez zmian
ReadRenderMergeRaportuje kompletny włączny prostokąt scalenia numerowany od 1 zawierający komórkę
ResolveRenderColorRozwiązuje semantyczny wygląd motywu/indeksowany/RGB na przenośny kolor RGB, korzystając z podanego domyślnego tam, gdzie to obsługiwane
RenderDate1904, RenderRightToLeftUjawniają system daty skoroszytu i kontekst kolejności czytania arkusza
XLSRenderCaptureLiteralRozpoznaje obsługiwany podzbiór literałów Boolean, skończonej liczby albo prostego tekstu w cudzysłowach dla przechwytu bez ewaluacji
XLSRenderCaptureIntersectsTestuje zakresy lokalne A1 rozdzielone białym znakiem względem prostokąta numerowanego od 1, odrzucając nierozwiązaną składnię zakresu
XLSRenderCaptureConditionEwaluuje obsługiwany podzbiór warunków względem istniejącego skalara; kody operatorów porównania od 1 do 8 oznaczają między, nie-między, równe, nierówne, większe, mniejsze, większe-lub-równe i mniejsze-lub-równe
XLSRenderCaptureApplyDxfAplikuje obsługiwany odłączony różnicowy wygląd z maską AppliedSlots, aby zachować formatowanie wyższego priorytetu
TXLSDxfStyle._MarkRenderUnsupportedAppearance, TXLSDxfStyle._HasRenderUnsupportedAppearanceMetody koordynacji importu z prefiksem wewnętrznym rejestrują i badają wygląd, którego typowany model różnicowy nie potrafi bezpiecznie renderować; Assign zachowuje znacznik, a przechwyt odrzuca oznaczony pasujący styl

Te pomocniki mostku potrafią podnieść EXLSSemanticSnapshot; publiczny adapter przechwytu tłumaczy ten wyjątek na EXLSPortableRender