이 페이지는 lxHandle, lxDataToXLS, lxGridToXLS에 속하는 공개 클래식 XLS API 멤버를 다룹니다
IXLSWorkbook 계산 속성
property CalculationMode: LongWord;
property FormulaArrayMemoryLimit: Int64;
property EnableIteration: Boolean;
property MaxIterations: LongWord;
property MaxIterationChange: Double;
property RecalcOnSave: Boolean;
property UseFullPrecision: Boolean;
| CalculationMode |
파일과 함께 저장되는 통합 문서 계산 모드를 제어합니다 |
| FormulaArrayMemoryLimit |
MUNIT 같은 생성된 수식 배열이 할당하는 페이로드에 상한을 두며, 기본값은 64 MiB이고 Double 요소 하나보다 작은 값은 잘라냅니다 |
| EnableIteration |
순환 수식에 대한 반복 계산을 활성화합니다 |
| MaxIterations |
순환 참조 강결합 컴포넌트마다 수행할 최대 Gauss-Seidel 패스 수입니다 |
| MaxIterationChange |
순환 참조 컴포넌트가 반복을 멈추기 전에 허용되는 최대 수치 변화량입니다 |
| RecalcOnSave |
Excel이 파일을 저장할 때 통합 문서 다시 계산을 요청합니다 |
| UseFullPrecision |
수식 정밀도를 온전히 유지합니다. 비활성화하면 수식 및 What-If 데이터 테이블 캐시는 종속 셀이 읽기 전에 유효 표시 정밀도로 반올림됩니다 |
수식 입력 유효성 검사
property IXLSWorkbook.FormulaEntryPolicy: TXLSFormulaEntryPolicy;
function TXLSWorksheet.ValidateFormulaEntry(Row, Col: Integer;
const Formula: WideString): TXLSFormulaEntryValidationResult;
공유 유효성 검사 계약은 워크시트 상태를 변경하지 않고 빈 입력, 알 수 없는 함수, 알 수 없는 이름, 구문 오류, 잘못된 좌표, 클래식 XLS 대상으로 표현할 수 없는 수식을 분류합니다. 자세한 내용은
수식 입력 유효성 검사 정책을 참조하세요
IXLSWorkbook 렌더 캘리브레이션
property RenderCalibration: TXLSRenderCalibration;
function CaptureRenderCalibration: TXLSRenderCalibration;
procedure ResetRenderCalibration;
function CreateRenderGeometry(ABackend: TXLSRenderGeometryBackend;
ACacheCapacity: Integer = 4096): IXLSRenderGeometry;
레코드 전체 대입은 통합 문서를 변경하기 전에 여섯 필드를 모두 검증하고, CaptureRenderCalibration은 한 번의 측정 또는 내보내기 작업을 위한 독립적인 값 스냅샷을 반환하며, ResetRenderCalibration은 표준 1/1/1/1/100/96 값으로 되돌립니다
이 런타임 전용 설정은 XLS 파일에 직렬화되지 않으며 워크시트 행 높이나 열 너비를 수정하지 않습니다
CreateRenderGeometry는 현재 캘리브레이션을 작업 소유 서비스에 복사하고 캐시 식별자를 현재 통합 문서 세대와 선택한 백엔드에 묶습니다. 이후 통합 문서 캘리브레이션이 바뀌어도 이미 존재하는 서비스는 영향을 받지 않습니다
범위 AutoFit과 각 TXLSPaginationModel.Build 호출은 통합 문서 캘리브레이션을 한 번만 가져옵니다. 맞춤 크기를 의도적으로 기록하는 소비자는 AutoFit뿐이며, 페이지 매김은 저장된 행 높이와 열 너비를 그대로 유지합니다
IXLSWorkbook 문서 속성
property Title: WideString;
property Subject: WideString;
property Author: WideString;
property Keywords: WideString;
property Comments: WideString;
property Company: WideString;
property Manager: WideString;
이 속성들은 클래식 XLS 파일과 함께 저장되는 통합 문서 요약 정보 필드를 읽고 씁니다
IXLSWorkbook Close 메서드
function Close: Integer;
통합 문서 객체를 닫고 클래식 XLS 객체 모델이 보유한 통합 문서 소유 콘텐츠를 해제합니다
property MetadataOnly: Boolean;
property SelectedSheets: TStringList;
property IncompleteLoad: Boolean;
| MetadataOnly |
Open 전에 설정하면 통합 문서 메타데이터와 시트 기술자만 읽고 셀 데이터는 건너뜁니다 |
| SelectedSheets |
통합 문서를 열 때 로드할 시트 이름 목록입니다. 빈 목록이면 모든 시트를 로드합니다 |
| IncompleteLoad |
MetadataOnly 또는 SelectedSheets를 사용해 셀 데이터를 건너뛰었다면 Open 후 True입니다 |
MetadataOnly 또는 비어 있지 않은 SelectedSheets로 연 통합 문서는 저장할 수 없습니다. 해당 옵션 없이 통합 문서를 다시 열기 전까지 Save는 오류를 발생시킵니다
TXLSColumnInfo 축소 상태
property TXLSWorksheet._ColumnInfo: TXLSColumnInfoList;
property TXLSColumnInfo.Collapsed: Boolean;
property TXLSRowInfo.Collapsed: Boolean;
property TXLSColumnInfoList.Collapsed[Index: Integer]: Boolean;
Collapsed는 BIFF 열 아웃라인 마커를 Hidden 및 OutlineLevel과 독립적으로 노출합니다. 목록 인덱스는 0 기반 클래식 XLS 열 인덱스입니다. 없는 열은 False로 읽히고, 없는 열에 False를 할당해도 메타데이터가 할당되지 않습니다. 열 서식 복사, 워크시트 복사, 저장 후 다시 열기 주기에서도 마커는 유지됩니다
기본 저장소 접근자는 저수준 통합 문서 검사를 위해 공개되어 있습니다. TXLSRowInfo는 MinCol과 MaxCol(커버하는 1 기반 열 범위), CustomHeight와 CustomFormat(명시적 높이나 XF 인덱스가 저장되어 있는지), 그리고 XFIndexSet을 보고하고, TXLSColumnInfo.isEqual은 두 열 메타데이터 항목을 필드 단위로 비교합니다
TXLSColumnInfoList는 경계와 기본 너비 진단을 위해 ColCount, MinCol, MaxCol, StdWidth, MaxOutlineLevel을 노출하고, CalcMaxOutLineLevel은 메타데이터를 직접 수정한 뒤 캐시된 최대 아웃라인 레벨을 다시 계산하며, CopyColFormat은 한 열 항목을 다른 인덱스로 복제하고, DeleteCol은 항목을 삭제하고, FindNextColToStore는 BIFF COLINFO 레코드 작성기를 위해 저장된 항목을 순회하면서 다음 범위를 MinCol / MaxCol out 파라미터로 보고합니다
TXLSWorksheet 아웃라인 노드 메서드
function TryGetOutlineNode(AAxis: TXLSOutlineAxis; ANodeIndex: Integer; out ANode: TXLSOutlineNode): Boolean;
function SetOutlineNodeCollapsed(AAxis: TXLSOutlineAxis; ANodeIndex: Integer; ACollapsed: Boolean; AChildMode: TXLSOutlineChildMode = xocPreserve): Boolean;
procedure SetOutlineDisplayLevel(AAxis: TXLSOutlineAxis; ADisplayLevel: Integer; AChildMode: TXLSOutlineChildMode = xocPreserve);
이 메서드들은 클래식 행/열 메타데이터를 공유 스파스 아웃라인 모델에 맞추고, 아웃라인 방향에서 요청된 요약 노드를 도출한 뒤, 사용되지 않는 워크시트 좌표를 확인하지 않고도 압축된 숨김/축소 변경을 적용합니다
ANodeIndex는 1 기반 물리적 요약 행 또는 열이고, ADisplayLevel은 1 기반 아웃라인 버튼 규칙을 따르며, xocPreserve는 기본적으로 중첩된 자식 축소 표식을 독립적으로 유지합니다
TXLSWorksheet 창 및 인쇄 제목 메서드
function ThawPanes(Y, X: Single; RowTop, ColLeft: Word): Integer;
function SplitPanes(Width, Height: Single): Integer;
function UnsplitPanes: Integer;
function GetSelectedAreas(APane: TXLSPanePosition; out ActiveAreaIndex: Integer): TXLSSelectedAreas;
function SelectAreas(APane: TXLSPanePosition; const Areas: array of WideString; ActiveAreaIndex: Integer = 0): Boolean;
function TryGetWindowScroll(APane: TXLSPanePosition; out ARow, ACol: Integer): Boolean;
function ScrollWindow(APane: TXLSPanePosition; ARow, ACol: Integer): Boolean;
function RepeatRows(FirstRow, LastRow: Word): Integer;
function RepeatColumns(FirstCol, LastCol: Word): Integer;
ThawPanes, SplitPanes, UnsplitPanes는 분할 창 상태를 제어하고, RepeatRows 및 RepeatColumns는 워크시트의 인쇄 제목 행 또는 열을 설정합니다
GetSelectedAreas와 창을 먼저 받는
SelectAreas 오버로드는
워크시트 창 선택에서 설명하는 공유 논리 창 선택 계약을 제공합니다
한 창에 대한 연속된 BIFF 선택 레코드는 하나의 논리 그룹으로 묶이고, 편집된 그룹은 최대 1369개 영역 단위 청크로 기록되며, 워크시트 복사는 모든 창 그룹을 유지합니다
행 전체/열 전체 구조 편집은 순서가 유지된 생존 영역과 활성 영역 식별자를 보존하면서 모든 유효한 창 그룹을 재매핑하고, 후행 영역·선행 영역·경계 셀 대체가 결정적으로 이루어집니다
잘못되었거나 모순된 선택 레코드는 불투명한 상태로 남아 저장 시 바이트 단위로 그대로 재생되고, 부분적으로만 신뢰할 수 있는 타입 상태를 노출하는 대신 xlsDiagnosticSelectionRecordInvalid를 보고합니다
TryGetWindowScroll과 ScrollWindow는 공유 1 기반 4-창 스크롤 계약을 노출하며, 위쪽/왼쪽 축은 Window2에, 아래쪽/오른쪽 축은 Pane에 매핑합니다
TXLSWorksheet 형식화된 데이터 유효성 검사 메서드
function AddWholeNumberValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddDecimalValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddDateValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddTimeValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddTextLengthValidation(ARange: WideString; AOp: TXLSDvOperator; const AFormula1: WideString; const AFormula2: WideString = ''): TDataValidation;
function AddCustomValidation(ARange: WideString; const AFormula: WideString): TDataValidation;
각 도우미는 ARange에 대해 형식화된 데이터 유효성 검사 규칙을 만들고 생성된 TDataValidation 인스턴스를 반환하여 프롬프트, 오류 및 빈 칸 처리 옵션을 조정할 수 있습니다
TXLSWorksheet 피벗 테이블 멤버
property PivotTables: TXLSPivotTables;
function AddPivotTable(const SourceRangeA1: WideString; DestRow, DestCol: Integer; const Name: WideString): TXLSPivotTable;
function PivotSetDataFieldFormat(DataField: TXLSPivotDataField; const FormatStr: WideString): Word;
AddPivotTable을 사용하여 원본 범위에서 형식화된 피벗 테이블을 만들고,
PivotTables 및
PivotSetDataFieldFormat을 사용하여 생성된 모델을 검사하거나 서식을 지정합니다.
클래식 XLS 피벗 테이블 API 참조
function SetArrayFormula(const Formula: WideString): Integer;
function XFIndex: Integer;
property FirstRow: Word;
property LastRow: Word;
property FirstCol: Byte;
property LastCol: Byte;
SetArrayFormula는 범위에 배열 수식을 할당합니다. FirstRow, LastRow, FirstCol, LastCol은 저장된 1 기반 범위 경계를 노출하고, XFIndex는 범위에 대한 효과적인 클래식 XLS 서식 인덱스를 반환합니다
IXLSRange 전송 도우미
procedure PasteFrom(SrcRange: TXLSRange; PasteMode: LongWord; CopyMode: Boolean);
procedure ShiftTo(Row: Word; Col: Byte);
procedure ExtendRange;
procedure ContractRange;
PasteFrom은 선택된 붙여넣기 모드를 사용하여 다른 클래식 XLS 범위의 셀 내용을 적용합니다. ShiftTo는 범위 객체를 재배치하고, ExtendRange 및 ContractRange는 확장되거나 정규화된 경계가 필요한 범위 작업 전에 저장된 사각형을 조정합니다
IXLS 행 및 열 범위 인터페이스
interface IXLSRowsRange = interface(IXLSRange)
property Item[Row: Integer]: IXLSRowRange;
property Hidden: OleVariant;
property Count: LongWord;
procedure AutoFit(Columns: Boolean = False);
interface IXLSRowRange = interface(IXLSRange)
property Item[Col: Integer]: IXLSColRange;
property Hidden: OleVariant;
property Count: LongWord;
procedure AutoFit(Columns: Boolean = False);
interface IXLSColsRange = interface(IXLSRange)
property Item[Col: Integer]: IXLSColRange;
property Hidden: OleVariant;
property Count: LongWord;
procedure AutoFit(Columns: Boolean = True);
procedure Group(Rows: Boolean = False);
procedure UnGroup(Rows: Boolean = False);
property OutlineLevel: Integer;
interface IXLSColRange = interface(IXLSRange)
property Item[Row: Integer]: IXLSRowRange;
property Hidden: OleVariant;
property Count: LongWord;
procedure AutoFit(Columns: Boolean = True);
procedure Group(Rows: Boolean = False);
procedure UnGroup(Rows: Boolean = False);
property OutlineLevel: Integer;
IXLSRowsRange, IXLSRowRange, IXLSColsRange, IXLSColRange는 IXLSRange.Rows, IXLSRange.Columns, IXLSRange.EntireRow, IXLSRange.EntireColumn에 의해 반환됩니다. 이들은 일반 IXLSRange 편집 표면을 유지하면서 인덱싱된 행 또는 열 접근, 숨김 상태 제어, 개수, 자동 맞춤, 범위 방향이 지원하는 곳에서 윤곽선 그룹화를 추가합니다
IXLSHyperLink DisplayText 속성
property DisplayText: WideString;
DisplayText는 클래식 XLS 하이퍼링크에 대해 Excel이 표시하는 표시 텍스트를 읽거나 변경합니다. 대상 주소 및 화면 설명과는 별개입니다
TXLSWorksheets ID 매핑 속성
property IndexByID[SheetID: Integer]: Integer;
property IDByName[SheetName: WideString]: Integer;
property NameByID[SheetID: Integer]: WideString;
이 읽기 전용 조회 속성은 내부 시트 ID, 현재 워크시트 인덱스 및 표시되는 워크시트 이름 사이를 매핑합니다. 현재 탭 순서 대신 저장된 식별자로 시트를 참조하는 수식, 정의된 이름 또는 레코드를 보존할 때 유용합니다
TXLSWorksheet SheetTypeRaw 속성
property SheetTypeRaw: Byte;
SheetTypeRaw는 클래식 XLS 통합 문서를 로드하고 저장하는 동안 원시 클래식 XLS BoundSheet8.dt 값을 보존하므로 매크로, VBA, 워크시트, 대화 상자 및 기타 시트 유형 레코드가 표준 워크시트 탭으로 평탄화되지 않고 왕복 처리될 수 있습니다
IXLSPageSetup 고급 인쇄 속성
property PrintNotesAtEnd: Boolean;
property UseFirstPageNumber: Boolean;
property FirstPageNumber: Integer;
property PrintCellErrors: LongWord;
property PrintResolution: LongWord;
property PrintVResolution: LongWord;
property Copies: LongWord;
property HasSetupRecord: Boolean; read only
property PrinterSettingsInitialized: Boolean; read only
property PrinterDriverData: TBytes;
property HasPrinterDriverData: Boolean; read only
procedure ClearPrinterDriverData;
이 속성들은 끝에 인쇄된 주석, 사용자 지정 첫 페이지 번호, 인쇄된 셀 오류 렌더링, 프린터 해상도 및 복사 수 같은 고급 페이지 설정 선택을 보존합니다
HasSetupRecord는 로드된 클래식 XLS 워크시트에 BIFF Setup 레코드가 있는지 알려주고, PrinterSettingsInitialized는 용지 크기, 배율, 방향, 해상도, 복사 수가 해당 레코드로 정의되어 있는지 알려줍니다
손대지 않은 워크시트를 저장하면 없는 Setup 레코드는 없는 그대로, 있는 레코드는 바이트 단위로 유지됩니다. 페이지 설정 필드를 변경하면 필요할 때 레코드가 생성되고, 프린터 의존 필드를 변경하면 프린터 설정이 초기화됩니다
PrinterDriverData는 불투명한 BIFF PLS 프린터 드라이버 페이로드를 읽거나 교체하고, HasPrinterDriverData는 페이로드 부재를 구별하며, ClearPrinterDriverData는 타입 페이지 설정 필드를 건드리지 않고 페이로드를 제거합니다
게터/세터 바이트 배열은 복사되어 호출자와 워크시트 복사본이 각자 독립적으로 소유합니다. 클래식 페이로드에는 필수 2바이트 예약 접두어가 포함되어야 하고 1 MiB를 넘을 수 없습니다
SaveXLSWorkbookAsXLSX는 타입 페이지 설정 값과 불투명한 프린터 드라이버 페이로드를 XLSX 모델로 각각 독립적으로 옮깁니다. 프라이빗 드라이버 바이트에 중복된 프린터 기본값이 있어도 타입 표준 필드가 계속 우선합니다
IXLSFont 문자 집합 속성
property CharSet: Byte;
property Family: Byte;
CharSet 및 Family는 로케일별 글꼴 메타데이터를 보존해야 하는 호출자를 위해 클래식 XLS 글꼴 문자 집합 및 계열 바이트를 노출합니다
TDataToXLS 및 TGridToXLS Abort 메서드
procedure TDataToXLS.Abort;
procedure TGridToXLS.Abort;
실행 중인 데이터 집합 또는 그리드 내보내기가 완료 전에 중지되어야 할 때 내보내기 이벤트 핸들러에서 Abort를 호출합니다
클래식 XLS 참조 도우미 함수
function GetCellRef(Cell: String; var Row, Col: Word): Integer;
function GetCellRange(CellRange: String; var StartRow, StartCol, EndRow, EndCol: Word): Integer;
function EncodeCellRef(Row, Col: Word): String;
function EncodeCellRange(StartRow, StartCol, EndRow, EndCol: Word): String;
function Width2Excel(Value: Single): Word;
function Excel2Width(Value: Word): Single;
function Height2Excel(Value: Single): Word;
function Excel2Height(Value: Word): Single;
function ColIndexToColName(Index: Integer): String;
function ColNameToColIndex(Name: String): Integer;
이 도우미들은 클래식 XLS 객체 모델이 사용하는 클래식 A1 참조, 범위, 열 레이블, 행 또는 열 차원 및 Excel 저장 단위를 변환합니다