TXLSForwardReader 클래스
TXLSForwardReader 은(는) 완전한 통합 문서 개체 모델을 만들지 않으면서 클래식 XLS, 최신 XLSX, ODS, CSV, TSV 입력을 위한 하나의 프로젝션 기반 콜백 인터페이스를 제공하고, 다음에서 쓰이는 것과 동일한 행 커서 백엔드를 적용합니다: TXLSRowCursor 는 완전한 통합 문서 개체 모델을 구축하지 않고 클래식 XLS, 최신 XLSX, CSV 및 TSV 입력을 위한 하나의 투영된 콜백 기반 표면을 제공합니다
입력 형식
TXLSForwardFormat 은 자동 감지를 선택하거나 XLS, XLSX, CSV 또는 TSV 구문 분석을 강제합니다
ReadFile 은 명명된 소스를 열고 ReadStream 은 호출자의 현재 스트림 위치에서 읽으며 반환 시 해당 위치를 복원합니다
프로젝션 및 행 경계
IncludeColumn 은 상수 시간 프로젝션 집합에 0부터 시작하는 열을 추가하고, ClearColumnProjection 은 전체 열 출력을 복원하며, HasColumnProjection 은 푸시다운 활성 여부를 보고합니다
FirstRow 및 LastRow 는 콜백 디스패치 전에 1부터 시작하는 행 경계를 적용하여 파서가 요청된 구간 이후에 중지할 수 있게 합니다
콜백 및 값 변환
| OnSheet | 각 워크시트 이름을 수신하며 시트를 건너뛰거나 전체 읽기를 중단할 수 있습니다 |
| OnCell | 모든 투영 셀에 대해 행, 열, 스타일 인덱스, 정규화된 형식, 원시 값 및 수식 텍스트를 수신합니다 |
| IncludeFormulaText | 통합 문서 숫자 형식을 사용하여 날짜 및 시간 값을 식별합니다 |
| DetectDates | 명확한 경우 CSV 및 TSV 필드를 지원되는 스칼라 형식으로 변환합니다 |
| DetectTextTypes | 소스 형식이 지원하는 경우 서식 있는 실행 및 음성 페이로드를 유지합니다 |
| PreserveRichText | 형식 감지가 적절하지 않은 경우 텍스트 필드 구분 기호를 재정의합니다 |
| ValueSeparator | 형식 감지가 적절하지 않을 때 텍스트 필드 구분자를 재정의합니다 |
HasFormula is false for ordinary values, while FormulaTextAvailable is true only when Formula 는 신뢰할 수 있는 텍스트를 담습니다. 클래식 XLS는 캐시된 수식 결과를 알려 주지만 수식 텍스트는 제공하지 않는데, 이는 포워드 경로에서 BIFF 토큰을 디컴파일하지 않기 때문입니다
완료 상태
CellCount reports dispatched cells and Aborted 은(는) 호출자의 취소와 정상 완료를 구별합니다
ClassicBytesRead 은(는) 클래식 XLS (BIFF) 파서가 소비한 총 바이트 수를 보고하고 ClassicPeakBufferedBytes 한 번에 보유한 버퍼링 바이트의 최대치를 보고합니다. 둘 다 클래식 XLS 경로의 읽기 전용 진단 정보입니다
PeakRowBufferedBytes 은(는) 공유 백엔드가 보유하는 것으로 추정되는 논리 행 작업 세트의 최대치를 보고하고 SheetPassesStarted 은(는) 활성화된 워크시트 패스 수를 셉니다. 다음에 의해 거부된 시트는 OnSheet 워크시트 파트를 열지도 않고 카운트를 늘리지도 않습니다
Sheet indexes delivered through OnSheet 는 디스패치된 셀을 보고하고 OnCell 는 호출자 취소와 정상 완료를 구분합니다
예제
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;스트리밍 API 선택
하나의 애플리케이션 경로가 여러 형식을 허용해야 하는 경우 TXLSForwardReader 를, XLSX 특정 레이아웃, 서식 있는 텍스트 및 병렬 워크시트 이벤트에는 TXLSDirectReader 를, 풀 기반 XLSX 행 반복에는 TXLSRowCursor 를 사용합니다