HotXLS 문서

TXLSWorkbookViewer 구성 요소

TXLSWorkbookViewer는 Microsoft Excel 또는 COM 자동화 없이 통합 문서 엔진 중 하나의 워크시트를 표시하는 VCL 컨트롤입니다

통합 문서 소스

탐색

컨트롤은 가로·세로 스크롤바, 마우스 휠 스크롤, 마우스 드래그, Shift 범위 확장, 화살표 키, Home, Page Up, Page Down, Tab 탐색을 제공합니다

GoToCell은 행과 열을 선택하고, SelectRange는 사각형 범위를 선택하며, NextWorksheet와 PreviousWorksheet는 시트를 전환하고, SelectedRange는 정규화된 A1 참조를 노출합니다

편집 및 계산

Editable을 True로 설정하면 F2, 더블클릭, 인쇄 가능 키, Delete, 수식 표시줄 편집이 허용됩니다. 보호된 워크시트의 잠긴 셀은 읽기 전용으로 유지됩니다

BeginEdit, CommitEdit, CancelEdit가 in-place 편집기를 제어하고, EditSelectedCell과 FormulaBarText는 외부 수식 표시줄을 지원합니다

커밋된 편집은 수식, Boolean, 정수, 부동소수점 값, 텍스트, 빈 입력을 인식한 다음 종속 수식을 재계산하고 조건부 서식·페이지 매기기 캐시를 무효화합니다

Undo와 Redo는 O(1) 경계 순환 히스토리를 사용합니다. UndoLimit으로 용량을 조절하거나 0으로 설정해 히스토리를 비활성화할 수 있습니다

Delete나 ClearSelectedRange는 선택 영역을 하나의 트랜잭션으로 지우고, Ctrl+C와 CopySelectedRange는 유니코드 탭 구분 텍스트를 복사하며, Ctrl+V, PasteSelectedRange, PasteText는 사각형 텍스트 블록을 선택 영역의 왼쪽 위 모서리에 undo 항목 하나로 붙여 넣습니다

보호와 구조 사전 검사는 변경 전에 차단된 범위 전체를 거부합니다. undo와 redo는 두 통합 문서 모델 모두에서 네이티브 리치 텍스트, 수식 캐시, 스타일, 없던 셀을 보존하며, 히스토리 시도 때마다 동일한 보호 검사를 수행합니다

기존 배열 수식, 데이터 표 영역, 병합에 걸치는 다중 셀 붙여 넣기는 거부됩니다. 병합 앵커 하나만 건드리는 편집과 병합 전체를 지우는 작업은 병합 지오메트리를 보존하지만, 병합 범위 일부만 지우는 작업은 거부됩니다

공유 TXLSWorkbookEditHistory 엔진은 컨트롤 없이도 인스턴스화할 수 있습니다. 좌표, 수명, 계산, 작업 한도 규칙은 헤드리스 편집 트랜잭션을 참고하세요

수식 참조 선택

호스트 수식 편집기가 워크시트 참조를 수집하는 동안 BeginReferencePick을 호출하십시오. EndReferencePick이 호출될 때까지 선택이 바뀔 때마다 현재 A1 범위와 함께 OnReferencePick이 발생합니다

렌더링

뷰어는 각 워크시트의 열 너비, 행 높이 및 서식 지정된 표시 텍스트를 사용하고, 클래식 단색 채우기 및 글꼴 스타일을 렌더링하며, 구성 가능한 헤더, 눈금선 및 선택 색상을 제공합니다

XLSX 워크시트의 경우 뷰어는 조건부 채우기, 글꼴 색상 및 강조, 숫자 서식, 색상 눈금, 방향성 양수 및 음수 데이터 막대, 그라디언트, 테두리, 축, 숨겨진 값 및 모든 내장 아이콘 세트 패밀리도 렌더링합니다

뷰어는 스크롤 및 선택 재그리기 시 통합 문서를 다시 스캔하지 않도록 활성 워크시트에 대해 준비된 조건부 서식 평가기를 하나 캐싱하며, 연결된 통합 문서에서 값, 수식, 범위 또는 조건부 규칙을 변경한 후 RefreshConditionalFormats를 호출하십시오

XLSX 렌더링은 빈 좌표를 인덱싱하지 않고 희소 셀과 구간 스타일 오버레이를 검사하므로, 스크롤할 때 보이는 빈 셀이 실체화되거나 워크시트 저장소가 늘어나지 않습니다

인쇄 미리 보기

PrintPreview를 True로 설정하면 PDF 페이지 지오메트리와 페이지 수 계산에 쓰이는 공유 TXLSPaginationModel을 통해 활성 워크시트가 표시됩니다

PreviewPage는 1 기반이며 PreviewPageCount로 클램프됩니다. 미리 보기가 활성화된 동안 화살표, Page Up, Page Down, Home, End, 마우스 휠, 세로 스크롤 명령으로 논리 페이지를 탐색합니다

PaginationModel은 캐시된 모델을 노출하고, SavePreviewPageAsMetafile은 선택한 논리 페이지를 EMF로 기록하며, RefreshPagination은 값, 크기, 인쇄 설정, 페이지 나누기, 제목, 그리기 개체가 변경된 후 캐시를 다시 만듭니다

이벤트

Delphi 예제

Viewer := TXLSWorkbookViewer.Create(Self);
Viewer.Parent := Self;
Viewer.Align := alClient;
Viewer.XlsxWorkbook := Workbook;
Viewer.Editable := True;
Viewer.SelectRange(2, 1, 5, 3);
Caption := Viewer.SelectedRange;
Viewer.GoToCell(2, 3);
Viewer.FormulaBarText := '=A1*2';
Viewer.Undo;
Viewer.Redo;
Viewer.RefreshConditionalFormats;
Viewer.PrintPreview := True;
Viewer.PreviewPage := 1;
Viewer.SavePreviewPageAsMetafile('Preview.emf');
Viewer.GoToCell(12, 4);
Caption := Viewer.WorksheetName + ': ' + Viewer.SelectedCellText;

파일 열기 및 워크시트 컨트롤이 포함된 완전한 런타임 생성 뷰어는 Demo\Delphi\WorkbookViewer를 참조하십시오