HotXLS dokumentáció

TXLSForwardReader osztály

TXLSForwardReader egyetlen levetített, visszahívás-vezérelt felületet kínál a klasszikus XLS, a modern XLSX, az ODS, a CSV és a TSV bemenetekhez anélkül, hogy teljes munkafüzet-objektummodellt építene fel; ugyanazokat a sorkurzor-háttérrendszereket használja, mint a TXLSRowCursor, így a push és a pull jellegű olvasás közös formátum-, leképezési és képlet-szemantikát használ

Bemeneti formátum

TXLSForwardFormat automatikus felismerést választ, vagy kényszeríti az XLS, XLSX, CSV vagy TSV elemzést

ReadFile megnyit egy nevesített forrást, a ReadStream pedig a hívó aktuális adatfolyam-pozíciójából olvas, és visszatéréskor visszaállítja azt a pozíciót

Levetítés és sorkorlátok

IncludeColumn egy nullától kezdődő oszlopot ad a konstans idejű levetítési halmazhoz, a ClearColumnProjection visszaállítja az összes oszlopos kimenetet, a HasColumnProjection pedig jelenti, hogy aktív-e a leengedés (pushdown)

FirstRow és LastRow egytől kezdődő sorkorlátokat alkalmaz a visszahívás-kiosztás előtt, lehetővé téve az elemzőknek, hogy a kért intervallum után megálljanak

Visszahívások és értékátalakítás

OnSheetMinden munkalapnevet megkap, és kihagyhat egy lapot, vagy megszakíthatja a teljes olvasást
OnCellMinden levetített cellához megkapja a sort, az oszlopot, a stílusindexet, a normalizált típust, a nyers értéket és a képletszöveget
IncludeFormulaTextMegtartja a képlet jelenlétét és a gyorsítótárazott értékeket, miközben opcionálisan elnyomja a képletszöveg-felhalmozást
DetectDatesA munkafüzet számformátumait használja a dátum- és időértékek azonosítására
DetectTextTypesA CSV és TSV mezőket támogatott skaláris típusokká alakítja ott, ahol egyértelmű
PreserveRichTextMegtartja a formázott részeket és a fonetikai adatokat ott, ahol a forrásformátum támogatja azokat
ValueSeparatorFelülbírálja a szövegmező-elválasztót, ha a formátumfelismerés nem megfelelő

A HasFormula közönséges értékeknél false, a FormulaTextAvailable pedig csak akkor true, ha a Formula megbízható szöveget tartalmaz; a klasszikus XLS gyorsítótárazott kéleteredményeket jelent elérhetetlen képletszöveggel, mert az előre olvasó útvonal nem dekompilálja a BIFF tokeneket

Befejezési állapot

CellCount a kiosztott cellák számát jelenti, az Aborted pedig megkülönbözteti a hívó általi megszakítást a normál befejezéstől

A ClassicBytesRead a klasszikus XLS (BIFF) elemző által felhasznált bájtok összesítését, a ClassicPeakBufferedBytes pedig az egyszerre tartott csúcspufferelt bájtszámot jelenti; mindkettő írásvédett diagnosztika a klasszikus XLS útvonalhoz

A PeakRowBufferedBytes a megosztott háttérrendszer által megtartott legnagyobb becsült logikai sori munkahalmazt jelenti, a SheetPassesStarted pedig az aktívvá vált munkalapátmeneteket számolja; az OnSheet által elutasított munkalap nem nyitja meg a munkalaprészét, és nem növeli a számlálót

Az OnSheet és az OnCell révén kézbesített munkalapindexek minden támogatott formátumban következetesen egytől kezdődnek

Példa

Reader := TXLSForwardReader.Create;
try
  Reader.FirstRow := 2;
  Reader.IncludeColumn(1);
  Reader.IncludeColumn(5);
  Reader.OnSheet := ReadSheet;
  Reader.OnCell := ReadCell;
  Reader.ReadFile('large-input.xlsx', xffAuto);
finally
  Reader.Free;
end;

Streamelő API kiválasztása

Használja a TXLSForwardReader osztályt, ha egyetlen alkalmazásútvonalnak több formátumot kell elfogadnia, a TXLSDirectReader osztályt az XLSX-specifikus elrendezéshez, a rich-text-hez és a párhuzamos munkalapeseményekhez, vagy a TXLSRowCursor osztályt a pull-vezérelt XLSX soriterációhoz

Lásd még