TXLSForwardReader-klassen
TXLSForwardReader presenterer ett projisert, Callback-drevet grensesnitt for klassisk XLS, moderne XLSX, ODS, CSV og TSV-inndata, uten å bygge en komplett arbeidsbokobjektmodell; den tilpasser de samme radcursor-backendene som TXLSRowCursor bruker, slik at push- og pull-lesing deler format-, projeksjons- og formelsemantikk
Inndataformat
TXLSForwardFormat velger automatisk gjenkjenning eller tvinger XLS-, XLSX-, CSV- eller TSV-tolking
ReadFile åpner en navngitt kilde, og ReadStream leser fra den kallendes gjeldende strømposisjon samtidig som posisjonen gjenopprettes ved retur
Projeksjon og radgrenser
IncludeColumn legger en nullbasert kolonne til projeksjonssettet med konstant tid, ClearColumnProjection gjenoppretter utdata for alle kolonner, og HasColumnProjection rapporterer om nedskyving er aktiv
FirstRow og LastRow bruker én-baserte radgrenser før tilbakemeldingsutsending, slik at tolkere kan stoppe etter det forespurte intervallet
Tilbakemeldinger og verdikonvertering
| OnSheet | Mottar hvert regnearknavn og kan hoppe over et ark eller avbryte hele lesingen |
| OnCell | Mottar rad, kolonne, stilindeks, normalisert type, råverdi og formeltekst for hver projisert celle |
| IncludeFormulaText | Beholder formeltilstedeværelse og bufrede verdier, med valgfri undertrykking av akkumulering av formeltekst |
| DetectDates | Bruker arbeidsbokens tallformater til å identifisere dato- og tidsverdier |
| DetectTextTypes | Konverterer CSV- og TSV-felt til støttede skalar-typer der det er utvetydig |
| PreserveRichText | Beholder formaterte kjøringer og fonetiske data der kildeformatet støtter dem |
| ValueSeparator | Overstyrer skilletegnet for tekstfelt når formatdeteksjonen ikke er egnet |
HasFormula er usann for vanlige verdier, mens FormulaTextAvailable bare er sann når Formula inneholder pålitelig tekst; klassisk XLS rapporterer bufrede formelresultater med utilgjengelig formeltekst, fordi den fremoverrettede veien ikke dekompilerer BIFF-token
Fullføringstilstand
CellCount rapporterer utsendte celler, og Aborted skiller avbryting fra den som kaller, fra normal fullføring
ClassicBytesRead rapporterer totalt antall bytes som den klassiske XLS-parseren (BIFF) har konsumert, og ClassicPeakBufferedBytes de maksimale bufrede bytene den holdt samtidig; begge er skrivebeskyttet diagnostikk for den klassiske XLS-veien
PeakRowBufferedBytes rapporterer det største estimerte logiske rad-arbeidssettet som den delte backenden beholder, og SheetPassesStarted teller regnearkgjennomløp som ble aktive; et ark som OnSheet avviser, åpner verken sin regnearkdel eller øker telleren
Arkindekser levert gjennom OnSheet og OnCell er konsistent 1-baserte for alle støttede formater
Eksempel
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;
Velge et strømme-API
Bruk TXLSForwardReader når én applikasjonsbane må godta flere formater, TXLSDirectReader for XLSX-spesifikt oppsett, rik tekst og parallelle regnearkhendelser, eller TXLSRowCursor for trekkdrevet XLSX-raditerasjon