TXLSXCell은 단일 셀(값과 선택적 수식 및 서식 인덱스 포함)이며, TXLSXCells는 Worksheet.Cells를 통해 접근하는 워크시트별 컬렉션입니다. lxHandleX에 선언되어 있습니다
type
TXLSXCell = class
constructor Create(ARow, ACol: Integer; const AValue: Variant);
destructor Destroy; override;
procedure SetWorkbook(AWorkbook: TXLSXWorkbook);
procedure SetArrayRoot(ARootRow, ARootCol: Integer);
procedure SetArrayRange(ARootRow, ARootCol, ALastRow, ALastCol: Integer);
property Workbook: TXLSXWorkbook;
property ArrayRootRow: Integer;
property ArrayRootCol: Integer;
property ArrayLastRow: Integer;
property ArrayLastCol: Integer;
property Row: Integer;
property Col: Integer;
property Value: Variant;
property FormatIndex: Integer;
property FontIndex: Integer;
property FillIndex: Integer;
property BorderIndex: Integer;
property NumberFormatIndex: Integer;
property NumberFormat: WideString;
property AlignmentIndex: Integer;
property ProtectionIndex: Integer;
property Formula: WideString;
property RichText: TXLSXRichText;
property Locked: Boolean;
property FormulaHidden: Boolean;
property FormattedText: WideString;
property TaggedText: WideString;
end;
| Destroy | 인스턴스 상태를 해제하고 소유한 리소스를 릴리스합니다 |
| SetWorkbook | 소유한 통합 문서 참조를 작성하여 숫자 서식 조회와 같은 작업이 공유 통합 문서 풀을 O(1) 시간에 재사용할 수 있도록 합니다 |
| SetArrayRoot / SetArrayRange | 배열 수식 스필(spill) 앵커를 위해 ArrayRoot* 및 ArrayLast* 마커를 설정하여 하나의 루트 셀이 동일한 사각형 영역 내의 모든 종속 셀을 매핑하도록 합니다 |
| Workbook | 워크시트 셀 생성 시 설정되는 소유 TXLSXWorkbook에 대한 역참조입니다 |
| ArrayRootRow / ArrayRootCol / ArrayLastRow / ArrayLastCol | 배열 수식 사각형에 대해 저장/로드 양방향 작업(round-trip)에 사용되는 읽기 전용 CSE 스필 메타데이터입니다 |
| Row | 1부터 시작하는 행 인덱스입니다 |
| Col | 1부터 시작하는 열 인덱스(1 = A, 2 = B, ...)입니다 |
| Value | Variant 형식의 셀 값입니다. 문자열, 숫자, 부울 및 TDateTime이 모두 지원됩니다. 명시적인 FormatIndex가 설정되지 않은 경우 TDateTime을 설정하면 내장된 날짜 cellXf(XlsxXfIndexDate)를 자동으로 선택합니다 |
| FormatIndex | xl/styles.xml의 cellXfs 인덱스입니다. 기본 스타일은 0으로 유지합니다. 인덱스 1은 내장된 날짜 서식(numFmtId 14, m/d/yyyy)을 위해 예약되어 있습니다. 설정 시 생성된 셀에서 FormatIndex가 FontIndex보다 우선권을 가집니다 |
| FontIndex | TXLSXWorkbook.Fonts에 대한 1부터 시작하는 인덱스입니다. 기본값인 Calibri 11을 상속하려면 0으로 유지합니다 |
| FillIndex | TXLSXWorkbook.Fills에 대한 1부터 시작하는 인덱스입니다. TXLSXFill을 참조하십시오 |
| BorderIndex | TXLSXWorkbook.Borders에 대한 1부터 시작하는 인덱스입니다. TXLSXBorder를 참조하십시오 |
| NumberFormatIndex | TXLSXWorkbook.NumberFormats에 대한 1부터 시작하는 인덱스입니다. '$#,##0.00' 또는 'yyyy-mm-dd hh:mm:ss'와 같은 사용자 지정 서식 코드에 사용합니다 |
| NumberFormat | 사용자 지정 숫자 서식 텍스트를 위한 편리한 속성입니다. 읽을 때 NumberFormatIndex가 하나를 가리키고 있으면 통합 문서 숫자 서식 풀에서 서식 코드를 반환하고, 문자열을 할당하면 서식을 찾아 추가하고 NumberFormatIndex를 업데이트합니다 |
| AlignmentIndex | TXLSXWorkbook.Alignments에 대한 1부터 시작하는 인덱스입니다. 항목별 가로/세로/텍스트 줄 바꿈/들여쓰기/회전 설정을 보려면 TXLSXAlignment를 참조하십시오 |
| RichText | 선택적 소유 TXLSXRichText 페이로드입니다. 설정 시 셀은 일반 문자열 대신 다중 런(multi-run) <si> 항목으로 공유 문자열 테이블에 입력되며, nil을 할당하면 셀의 Variant 값으로 되돌아갑니다 |
| Precedence | 동일한 셀에 여러 *Index 속성이 설정된 경우 SaveAs 측은 FormatIndex > FontIndex > FillIndex > BorderIndex > NumberFormatIndex 순서로 일치하는 cellXf를 선택합니다 |
| Formula | 선택적 수식 텍스트(선두의 = 없음)입니다. 설정 시 SaveAs는 셀 값과 함께 <f> 자식 요소를 생성하고, Open은 이를 다시 읽습니다 |
| ProtectionIndex | 통합 문서 보호 풀의 인덱스입니다. 일반적인 사용을 위해 Locked 및 FormulaHidden 편의 속성이 이 인덱스를 자동으로 관리합니다 |
| Locked | True(모든 새 셀의 기본값)인 경우 워크시트가 보호될 때 셀도 보호됩니다. 보호된 시트 내에서 특정 셀을 편집할 수 있도록 허용하려면 False로 설정합니다. 기본값과 다를 때 셀의 cellXf 내에 <protection locked="0"/> 특성을 씁니다 |
| FormulaHidden | True인 경우 시트가 보호되는 동안 수식 입력줄에 셀의 수식이 표시되지 않습니다. 기본값은 False입니다. 일치하는 cellXf에 <protection hidden="1"/>을 생성합니다 |
| FormattedText | 읽기 전용 WideString입니다. 활성화된 사용자 지정 또는 내장 숫자 서식 코드에 따라 셀 값을 문자열로 서식화하여 반환합니다 |
| TaggedText | 읽기 전용 WideString입니다. 해당하는 경우 서식 있는 텍스트 스타일을 위한 HTML/XML 유사 서식 태그를 포함하는 서식화된 셀 문자열을 반환합니다 |
type
TXLSXCells = class
constructor Create(AOwnerSheet: TXLSXWorksheet);
destructor Destroy; override;
procedure Clear;
function HasCell(ARow, ACol: Integer): Boolean;
function Remove(ARow, ACol: Integer): Boolean;
property Item[ARow, ACol: Integer]: TXLSXCell; default;
property Count: Integer;
property CellByIndex[Index: Integer]: TXLSXCell;
end;
| Create | 소유 워크시트 하나에 연결된 셀 컬렉션을 구성합니다 |
| Destroy | 컬렉션이 소유한 모든 셀을 해제합니다 |
| Item[Row, Col] | 지정된 1부터 시작하는 좌표의 셀을 반환하며, 처음 접근 시 빈 TXLSXCell을 생성합니다. 기본(default) 속성으로 선언되어 Cells[Row, Col]을 단축 기법으로 사용할 수 있습니다 |
| Count | 현재 저장된 셀의 수입니다 |
| CellByIndex[i] | 지정된 0부터 시작하는 삽입 인덱스의 셀입니다. 데이터가 입력된 행과 열에 대한 사전 지식 없이 순차적으로 열거할 때 유용합니다 |
| Remove | 해당 좌표에 있는 기존 셀 하나를 삭제하고 실제 삭제 여부를 반환합니다 |
| HasCell(Row, Col) | 지정된 좌표에 셀이 이미 존재하면 True를 반환합니다. Item[Row, Col]의 부작용으로 빈 셀이 생성되는 것을 방지하기 위해 이 메서드를 사용합니다 |
| Clear | 컬렉션의 모든 셀을 제거하고 해제합니다 |
var
ws: TXLSXWorksheet;
i: Integer;
begin
ws := Workbook.Sheets.Add('Demo');
ws.Cells.Item[1, 1].Value := 'Hello';
ws.Cells.Item[1, 2].Value := 123.45;
ws.Cells.Item[2, 1].Value := Now; // 날짜로 렌더링됨
ws.Cells.Item[2, 2].Formula := 'SUM(B1:B1)';
for i := 0 to ws.Cells.Count - 1 do
WriteLn(ws.Cells.CellByIndex[i].Row, ',',
ws.Cells.CellByIndex[i].Col);
end;