Klassen TXLSForwardReader
TXLSForwardReader presenterar en enda projicerad, callback-driven yta för indata från klassisk XLS, modern XLSX, ODS, CSV och TSV utan att bygga en komplett arbetsboksobjektmodell; den anpassar samma radcursor-backender som används av TXLSRowCursor presenterar en projicerad, återanropsdriven yta för klassisk XLS, modern XLSX, CSV och TSV-indata utan att konstruera en komplett arbetsboksobjektsmodell
Indataformat
TXLSForwardFormat väljer automatisk detektering eller tvingar XLS-, XLSX-, CSV- eller TSV-tolkning
ReadFile öppnar en namngiven källa och ReadStream läser från anroparens aktuella strömposition samtidigt som positionen återställs vid retur
Projicering och radgränser
IncludeColumn lägger till en nollbaserad kolumn i projiceringsuppsättningen med konstant tid, ClearColumnProjection återställer utdata för alla kolumner och HasColumnProjection rapporterar om pushdown är aktiv
FirstRow och LastRow tillämpar enbaserade radgränser före återanropsutsändning, vilket gör att tolkningsprogram kan stanna efter det begärda intervallet
Återanrop och värdekonvertering
| OnSheet | Tar emot varje arbetsbladsnamn och kan hoppa över ett blad eller avbryta hela läsningen |
| OnCell | Tar emot rad, kolumn, stilindex, normaliserad typ, råvärde och formeltext för varje projicerad cell |
| IncludeFormulaText | Behåller formelnärvaro och cachade värden medan ansamling av formeltext valfritt kan stängas av |
| DetectDates | Använder arbetsbokens talformat för att identifiera datum- och tidsvärden |
| DetectTextTypes | Konverterar CSV- och TSV-fält till stödda skalära typer där det är entydigt |
| PreserveRichText | Behåller formaterade körningar och fonetisk nyttolast där källformatet stöder dem |
| ValueSeparator | Åsidosätter textfältavgränsaren när formatdetektering inte är lämplig |
HasFormula is false for ordinary values, while FormulaTextAvailable is true only when Formula innehåller tillförlitlig text; klassisk XLS rapporterar cachade formelresultat utan tillgänglig formulertext eftersom den forwarda vägen inte dekompilerar BIFF-token
Slutförandestatus
CellCount reports dispatched cells and Aborted skiljer annullering från anroparen från normalt slutförande
ClassicBytesRead rapporterar det totala antalet byte som den klassiska XLS-parsern (BIFF) konsumerat och ClassicPeakBufferedBytes den högsta mängden buffrade byte den höll på en gång; båda är skrivskyddade diagnostiker för den klassiska XLS-vägen
PeakRowBufferedBytes rapporterar den största uppskattade logiska radarbetsmängden som den delade backenden behåller, och SheetPassesStarted räknar de kalkylbladspass som blivit aktiva; ett blad som avvisas av OnSheet öppnar inte sin kalkylbladsdel och räknaren ökas inte
Sheet indexes delivered through OnSheet rapporterar utsända celler och OnCell skiljer anroparens avbrytande från normal slutföring
Exempel
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;Välja ett strömnings-API
Använd TXLSForwardReader när en applikationssökväg måste acceptera flera format, TXLSDirectReader för XLSX-specifik layout, rik text och parallella arbetsbladshändelser, eller TXLSRowCursor för dra-driven XLSX-raditeration