HotXLS dokumentacija

Tiesioginio skaitytuvo ir rašytuvo API

TXLSDirectReader ir TXLSDirectWriter apdoroja XLSX paketus nelaikydami viso darbalapio tinklelio atmintyje, todėl API iškvietimai, apibūdinantys lapą, turi būti atlikti prieš atitinkamą srautinio perdavimo fazę arba jos metu

Rašytuvo gyvavimo ciklas ir langelių reikšmės

TXLSDirectWriter.BeginFile ar BeginStream pradeda paketą, lapo metodai apibrėžia po vieną darbalapį, o Finish įsipareigoja galutinį paketą

Skaliariniai langeliaiWriteString, WriteRichString, WriteNumber, WriteBoolean, WriteDateTime ir WriteError
Formulių langeliaiWriteFormula, WriteFormulaNumber, WriteFormulaString, WriteFormulaBoolean, WriteFormulaDateTime ir WriteFormulaError priima skambintojo pateiktus talpykloje esančius rezultatus
Bendros eilutėsUseSharedStrings įgalina paketo lygmens eilučių deduplikaciją
StatistikaCellCount praneša išvestų langelių skaičių
PanesFreezePanes(ColSplit, RowSplit) nurodytame stulpelyje ir eilutėje (nuo vieneto) įrašo užšaldytą skeltį

Eilutės ir stulpeliai viešajame rašytuvo paviršiuje prasideda nuo vieneto ir turi būti pateikiami pirmyn darbalapio tvarka

Daugkartinio naudojimo stiliai

AddCellStyle registruoja nekintamą paketo lygmens stiliaus nuorodą, o CloneCellStyle išveda naują nuorodą neišlaikydamas darbalapio eilučių

Pavadinti vardai ir hipersaitai

AddDefinedName, AddLocalDefinedName, AddDefinedRange ir AddLocalDefinedRange prideda darbo knygos ar lapo vietinius vardus prieš paketo užbaigimą

AddHyperlink, AddHyperlinkRange, AddInternalHyperlink ir AddInternalHyperlinkRange išveda išorinius ryšius ar vidines lapo vietas vienam langeliui ar diapazonui

Duomenų tikrinimas

AddDataValidation ir AddDataValidationSqRef atskleidžia visą taisyklės paviršių, o AddListValidation, AddWholeNumberValidation, AddDecimalValidation, AddDateValidation, AddTimeValidation, AddTextLengthValidation ir AddCustomValidation pateikia tipizuotus pagalbininkus

Sąlyginis formatavimas

AddConditionalFormat, AddConditionalFormatExpression, AddConditionalFormatContainsText, AddConditionalFormatNotContainsText, AddConditionalFormatBeginsWith, AddConditionalFormatEndsWith, AddConditionalFormatTop10, AddConditionalFormatAboveAverage, AddConditionalFormatDuplicateValues, AddConditionalFormatUniqueValues, AddConditionalFormatContainsBlanks, AddConditionalFormatNotContainsBlanks, AddConditionalFormatContainsErrors ir AddConditionalFormatNotContainsErrors prideda skaliarines taisykles

AddConditionalFormatDataBar, AddConditionalFormatColorScale2, AddConditionalFormatColorScale3 ir AddConditionalFormatIconSet prideda vaizdines taisykles; ClearConditionalFormats pašalina laukiančias taisykles dabartiniam darbalapiui

AutoFiltras ir lentelės

AddAutoFilterValue, AddAutoFilterDateGroup ir AddAutoFilterSortCondition konfigūruoja darbalapio filtrą

AddTable sukuria lentelės dalį, o AddTableFilterValue, AddTableFilterDateGroup ir AddTableSortCondition konfigūruoja jos filtro ir rūšiavimo būseną

Apsauga ir puslapio lūžiai

ProtectSheet, UnprotectSheet, AddProtectedRange ir ClearProtectedRanges konfigūruoja darbalapio apsaugą; ProtectWorkbook ir UnprotectWorkbook konfigūruoja darbo knygos struktūros ir langų užraktus

AddHorizontalPageBreak ir AddVerticalPageBreak išveda rankinius puslapio lūžius dabartiniam darbalapiui

Tiesioginio skaitytuvo saugyklos diagnostika

TXLSDirectReader.SharedStringMemoryLimit riboja dekoduotų bendrų eilučių atmintį, SharedStringsOnDisk praneša perkėlimą į laikiną indeksuotą saugyklą, SharedStringCount praneša įkeltų įrašų skaičių, o ParallelDiag atskleidžia ribotą lygiagrečiojo analizatoriaus diagnostiką

Eilučių žymeklis

TXLSRowCursor.SelectSheet ir SelectSheetByName parenka darbalapį; SheetCount, SheetNames, SheetIndex, RowIndex ir Eof atskleidžia perėjimo būseną, o SharedStringMemoryLimit taiko tą pačią ribotą bendrų eilučių politiką kaip ir tiesioginis skaitytuvas

IncludeFormulaText pagal numatymą true; išjungus lieka talpyklinės reikšmės, koordinatės, stiliai ir HasFormula, FormulaTextAvailable tampa false, o Formula lieka tuščias

Eilučių žymeklis

TXLSRowCursor.Open priima XLS, XLSX, XLSM, ODS, CSV ir TSV failus ar srautus; ZIP automatinis atpažinimas dar prieš atveriant darbalapį atskiria ODS paketus nuo Open XML darbo knygų

SelectSheet ir SelectSheetByName pasirenka darbalapį; SheetCount, SheetNames, SheetIndex, RowIndex ir Eof atskleidžia praėjimo būseną, o SharedStringMemoryLimit taiko tą pati ribotos atminties bendrųjų eilučių politiką kaip tiesioginis skaitytuvas

FirstRow, LastRow, IncludeColumn ir ClearColumnProjection visuose žymeklio formatuose naudoja tuos pačius filtrus nuo vieneto; perdavtos parinktys negali keistis tarp FindFirst ir EOF, bet vėl tampa keičiamos po EOF, darbalapio pasirinkimo arba užvėrimo

Kiekvienas TXLSRowCursorCell HasFormula praneša nepriklausomai nuo FormulaTextAvailable; classic XLS pateikia formulės buvimą ir talpyklinį rezultatą neteigdamas, kad žetonų tekstas prieinamas, o IncludeFormulaText gali slopinti XLSX ir ODS formulės tekstą dar prieš kaupimą

ODS praėjimas laiko vieną fizinę eilutės šabloną, pakartotinius eilučių blokus apkarpo iki prašomo intervalo, tarp pasirinktų stulpelių pakartotinių ištisose ruožuose šoka tiesiai, pereina per padengtus langelius negrąžindamas jų kaip reikšmių, o negaliojančius ar tinklelio ribų viršijančius pakartojimų skaičius praneša per OnSkippedRecord

State atskiria xrcsClosed, xrcsBeforeFirst, xrcsActive, xrcsEof, xrcsCancelled ir xrcsFaulted; Cancel — idempotiškas, negaliojina dabartinės eilutės ir atlaisvina aktyvaus darbalapio srautą, išlaikydamas šaltinį, kad aiškus darbalapio pasirinkimas galėtų pradėti naują praėjimą

Srauto perkrovimas pagal numatymą naudoja xsoBorrowed ir užvėręs atkuria kviestiejo pradinę poziciją, o xsoOwned perima nuosavybę po sėkmingo atvėrimo; nepavykę atvėrimai kviestiejo nuosavybės niekada nevartoja

CurrentRowView skolina dabartinės eilutės masyvą be kopijavimo ir prieš kiekvieną prieigą tikrina generaciją; žymekliui pažengus, pasirinkus, atšaukus, užvėrus ar sunaikinus, vaizdas negalioja, o vėlesnė prieiga kelia EXLSRowCursorViewInvalidated

PeakRowBufferedBytes — monotoniškas ivertintas nuo paskutiniojo Open sukauptas vienai loginei eilutei retinetų langelių įrašų, valdomų paketų, raiškiojo teksto ir formato posistemės duomenų dydis; skirtas ribotos atminties regresinei diagnostikai, o ne tiksliai krūvos apskaitai

SheetPassesStarted skaičiuoja sėkmingus darbalapio posistemių paleidimus; darbalapio pavadinimų peržiūra ar darbalapio praleidimas per atgalinių iškvietimų fasadą darbalapio dalies neatsako

Forward callback adapteris

TXLSForwardReader XLS, XLSX, ODS, CSV ir TSV dekodavimą perduoda TXLSRowCursor, kiekvieną dabartinės eilutės langelį paverčia OnCell atgaliniu iškvietimu ir išlaiko tas pačias eilučių ribas, stulpelių projektavimą, formulės būseną, raiškųjį tekstą, slaptažodžio, praleistų įrašų, srauto pozicijos ir apriboto buferio sutartis

PeakRowBufferedBytes ir SheetPassesStarted atskleidžia bendrąsias žymeklio diagnostikas atgalinių iškvietimų sąsajoje, o classic XLS papildomai išlaiko ClassicBytesRead ir ClassicPeakBufferedBytes

Skaitytuvo įvykiai ir įrašų tipai

Skaitytuvas ir eilučių žymeklis atskleidžia neprivalomus atgalinius iškvietimus ir paprastus įrašus, visi deklaruoti lxDirectRead. Kiekvienas atgalinis iškvietimas seka tą pati forma: įrašas aprašo vieną srautinį elementą, o Abort nustatymas sustabdo skenavimą (darbalapio ivykiai papildomai priima SkipSheet)

CellsOnCell (type TXLSDirectCellEvent) delivers a TXLSDirectCell per cell whose Kind (TXLSDirectCellKind: xdkEmpty, xdkNumber, xdkString, xdkBoolean, xdkDate, xdkError) selects the populated value field; rich text travels as a TXLSDirectRichText holding TXLSDirectRichTextRun entries, each with a TXLSDirectRichColor (kind TXLSDirectRichColorKind), TXLSDirectRichUnderline, and TXLSDirectRichVertAlign, plus optional TXLSDirectPhoneticProperties and TXLSDirectPhoneticRun data
Sheet framingOnSheet (TXLSDirectSheetEvent) gali praleisti visą darbalapį, kol jo langeliai dar neanalizuoti; OnSkippedRecord (TXLSDirectSkippedEvent) praneša netinkamus arba apkarpytus turinius su įrašo id ir priežastimi
Sheet layoutOnDimension, OnSheetFormat, OnColumn, OnRow, OnMerge ir OnPane perduoda TXLSDirectDimension, TXLSDirectSheetFormat, TXLSDirectColumn, TXLSDirectRow, TXLSDirectMerge ir TXLSDirectPane įrašus; panelės būsena naudoja TXLSDirectPaneState (xdpsSplit, xdpsFrozen, xdpsFrozenSplit, xdpsUnknown)
Cursor stateTXLSRowCursor.State — TXLSRowCursorState (xrcsClosed, xrcsBeforeFirst, xrcsActive, xrcsEof, xrcsCancelled, xrcsFaulted); Open srauto perkrovimas ima TXLSStreamOwnership (numatytasis xsoBorrowed, xsoOwned perima nuosavybę), o CurrentRowView grąžina IXLSRowCursorView skolinamą vaizdą, kurio Valid ypatybė saugo prieigą, o ValueByCol skaito vieną skolintos eilutės langelį be kopijavimo; žymekliui pažengus vaizdas negalioja

Rašytuvo parametrų ir stilių tipai

Rašytuvo tipizuotieji pagalbininkai (lxDirectWrite) priima įrašus ir išvardinimus, kad kvietimai liktų be vietos išskyrimo: WriteRichString ima TXLSDirectRichText; AddCellStyle iš TXLSDirectCellStyle sukonstruoja paketo lygio stilių, kurio lygiavimas (TXLSDirectHorizontalAlignment, TXLSDirectVerticalAlignment), pabraukimas (TXLSDirectUnderline), užpildymo raštas (TXLSDirectFillPattern) ir kraštinių pusės (TXLSDirectStyleBorder su TXLSDirectBorderSide) atkartoja OOXML stilių modelį. Sąlyginiai formatai perduoda TXLSDirectConditionalFormat su TXLSDirectCfKind / TXLSDirectCfOperator / TXLSDirectCfValue / TXLSDirectCfValueKind ir TXLSDirectIconSetType, duomenų tikrinimas — TXLSDirectDataValidation, lentelės — TXLSDirectTable, hipersaitai — TXLSDirectHyperlink, apibrėžtieji vardai — TXLSDirectDefinedName, diferenciniai stiliai — TXLSDirectDxfStyle, komentarai — TXLSDirectComment, vaizdai — TXLSDirectImage su TXLSDirectImageFormat, diagramos — TXLSDirectChart su TXLSDirectChartSeries ir TXLSDirectChartType, sujungimai — TXLSDirectMergeRange, apsaugoti diapazonai — TXLSDirectProtectedRange, lapo apsauga — TXLSDirectSheetProtectionOptions aibę iš TXLSDirectSheetProtectionOption, automatinio filtro rikiavimo būsena — TXLSDirectSortState, stulpelių parinktys — TXLSDirectColumnOption, o puslapio geometrija — TXLSDirectPageMargins įrašą

TXLSDirectNeedRow = procedure(Sender: TObject; RowIndex: Integer;
  var Eof: Boolean) of object;

function XLSDirectColName(Col: Integer): WideString;
function XLSDirectParseRef(const Ref: WideString;
  out Col, Row: Integer): Boolean;
function XLSDirectPasswordHash(const Password: WideString): WideString;
      

OnNeedRow eilutes semia iš programos: tiekėjas rašo eilutės langelius tiesiai per rašytuvą ir palieka Eof = False, arba su Eof = True deklaruoja išsekimą ir sustabdo ciklą. Pagalbininkai konvertuoja koordinates ir apsaugos primitivus: XLSDirectColName nulinio pagrindo stulpelį paverčia A1 raidėmis, XLSDirectParseRef išanalizuoja A1 langelio nuorodą, o XLSDirectPasswordHash apskaičiuoja senajį slaptažodžio maišos, kurį saugo lapo apsaugos įrašai

Taip pat žiūrėkite