HotXLS-dokumentation

XLSB-formler og regnearksobjekter

XLSX-projektmappens facade læser og skriver en valideret XLSB-delmængde med typede værdier, almindelige cachede formler, navne, almindelige formater og repræsenterede regnearksobjekter; urepræsenteret tilstand afvises før destinationsoutput

Åbn og gem

if Workbook.Open('values.xlsb') <> 1 then
  raise Exception.Create('XLSB input is unsupported or invalid');
if Workbook.SaveAsChecked('values-copy.xlsb', xlsxExcelBinaryWorkbook) <> 1 then
  raise Exception.Create('XLSB output is unsupported or failed');

Open detekterer projektmappedelens indhold og registrerede type; vellykket binær input sætter SourceFormat=xlsxExcelBinaryWorkbook, mens de oprindelige fire TXLSXFileFormat-ordinaler forbliver uændrede, og det nye medlem har ordinal 4

Fil- og stream-SaveAs- og SaveAsChecked-overloaderne accepterer det binære format eksplicit; standardgemning vælger stadig det almindelige Open XML-projektmappeformat uanset filendelsen

GetConversionReport(xlsConversionExcelBinaryWorkbook) inspicerer den aktuelle tilstand uden at udvide pakket cellelagring; ikke-understøttede indgange forbliver obligatoriske fejl selv ved ukontrolleret gemning eller AllowLossy=True

Understøttet tilstand

Konverteringsrapporten dækker live-model-funktioner, og komplet pakkevalidering forbliver den endelige port for ugyldige referencer, misdannede records, ukendte attributter eller ikke-understøttet tilbageholdt indhold

Binær import beholder filens eksplicitte standardfont og understøttede indbyggede talformater, inklusive formattede blanke celler; lokalaflængige talformater kræver en eksplicit formatkode, så readeren ikke gætter regional formatering

Eksplicitte grænser

Delte formel-records, array- og dynamisk array-ejerskab, arraykonstanter og array-returnerende funktioner, future functions, brugerdefinerede funktioner, ekstern projektmappe- og multiarksreferencer, VBA, eksterne dataforbindelser, pivottabeller og Slicers, diagrammer og tegninger, kommentarer og rich text, validering, betinget formatering samt avanceret side- eller udvidelsesmetadata forbliver uden for denne backend

Tabel-beregnede kolonner, total-aggregeringsformler, sorteringstilstand, differential eller brugerdefineret tabelformatering, forespørgselsbundne tabeller og XML-mappings afviser; farve-, ikon-, dynamiske og datogruppefiltre, typede native booleske brugerdefinerede kriterier, numerisk-udseende native streng-brugerdefinerede kriterier og filterknap-synlighedsoverstyringer afviser også

Importerede ikke-brugerdefinerede regnearksfilterkriterier tilbageholdes som RawXml; brugerdefinerede sammenligninger udfylder de eksisterende typede kriterieegenskaber, mens valgte værdier og tom selektion forbliver et XML-bagendet kriterium frem for en ny typet værdiliste-API

Formeltoken-konvertering bevarer semantik og referenceflag; den kan normalisere formeltekst med parenteser og citerede arknavne, så byte-for-byte tekstidentitet ikke loves

Formeloutput kræver en eksplicit numerisk, streng-, boolesk eller almindelig fejlcache; en manglende cache afviser, når gemmepolitikken ikke genberegnar, inklusive xrmManual og en ren afhængighedsgraf med xrmIfDirty; applikationer kan kalde Recalculate eller vælge xrmAlways før gemning, og tom streng, False og numerisk nul er gyldige caches

Beregningsegenskaber skal bruge understøttede standarder; manuel beregning, iteration, reduceret præcision, alternativ referencetilstand, gennemtvunget eller ufuldstændig beregning, eksplicit trådkonfiguration og andre meningsfulde ikke-standardindstillinger afviser

Beregningskæder og binære celleindekser er regenereret metadata og kopieres ikke på tværs af pakkebroen; ukendte funktionsrecords eller relationer forbliver fejl i stedet for at blive fabrikerede Open XML-dele

Binær input kræver ivrig fuld-ark-indlæsning; MetadataOnly og en ikke-tom SelectedSheets-liste afviser, før den eksisterende model erstattes, fordi lazy loading ville kræve et tilbageholdt konverteret arkiv

Fejl- og ejerskabsgarantier

Binære pakker valideres og konverteres, før den almindelige XML-parser nulstiller projektmappen; ikke-understøttet input, misdannet binært indhold, afviste læsetilstande og konverteringsannullering bevarer eksisterende regnearksobjekter, filnavn, kildeformat og kildearkiv-binding

Efter at valideret binær konvertering går ind i den eksisterende XML-parser, følger sene XML-parsings- eller applikationscallback-fejl den almindelige XML-åbningslivscyklus; preflight-garantien lover ikke rollback af vilkårlige callback-skrivninger

Gemning klarer hele den binære pakke; filoutput bruger en søskende midlertidig fil og én endelig erstatning, og læsbar søgbar stream-output beholder et byte-, størrelses- og positions-snapshot til rollback efter en commit-fejl

LastSaveUsedStreaming=False afspejler komplet binær klargøring, selv når den mellemliggende XML-writer streamer; hukommelsen inkluderer konverterede dele og den komplette pakke, så denne backend er ikke en begrænset hukommelse streaming-writer

Konverteringsrapporter og preflight beholder pakket cellelagring, inklusive en blanding af pakkede værdier og materialiserede formler; vellykket gemning kan udvide pakkede værdier gennem den eksisterende stilforberedelse og regnearks-writer, så rapportens renhed indebærer ikke en uforanderlig eller ikke-materialiserende gemmeoperation

Vellykket binær filgemning rydder tidligere rå XML-kildebindinger; stream-gemning beholder filnavnsadfærden, og annullering tjekkes før destinationscommit

Pakkekonverterings-API'er

procedure XlsbToOpenXml(Source: TZipArchive; Destination: TStream;
  CancelCheck: TXLSStreamCancelCheck = nil;
  EntryCompressionLevel: Integer = -1; EntryFixedDate: TDateTime = 0);
procedure OpenXmlToXlsb(Source: TZipArchive; Destination: TStream;
  CancelCheck: TXLSStreamCancelCheck = nil;
  EntryCompressionLevel: Integer = -1; EntryFixedDate: TDateTime = 0);
function XlsbStylesToXml(const Data: AnsiString): AnsiString;
function XlsbStylesFromXml(const Data: AnsiString): AnsiString;
function XlsbStringsToXml(const Data: AnsiString): AnsiString;
function XlsbStringsFromXml(const Data: AnsiString): AnsiString;

TXlsbFormulaValidator.Create(WorkbookXml) validerer projektmappens navnekontekst, og Validate(FormulaText, SheetIndex) validerer en formel uden regnearkscelleadgang; SheetIndex er nulbaseret, og kalderen ejer validatoren

XlsbValidateTableXml(Data) og XlsbValidateAutoFilterXml(Data) validerer UTF-8 objekt-XML mod de samme encoder-kontrakter, som pakkeoutput bruger; fejl udløser de eksisterende format- eller ikke-understøttet-funktion-exceptions

Disse lxXlsb-API'er beholder kalderens ejerskab; pakkekonvertering validerer og klarer alle dele, før Destination erstattes fra offset nul, og kerndel-broer bruger UTF-8-XML og rå binære bytes

EXlsbUnsupported stammer fra EXlsbFormatError og adskiller forventet delmængdeafvisning fra misdannede data; annullering udløser den etablerede stream-annulleringsexception før commit

Komprimering accepterer -1 til 9, og den faste dato accepterer nul eller en finit DOS-repræsenterbar dato fra 1980 til 2107; ugyldige indstillinger afviser før destinationsændringer