HotXLS 문서

TXLSXCell / TXLSXCells 클래스

TXLSXWorksheet에서의 셀 값 액세스 TXLSXCell은 단일 셀(값과 선택적 수식 및 서식 인덱스 포함)이며, TXLSXCellsWorksheet.Cells를 통해 접근하는 워크시트별 컬렉션입니다. lxHandleX에 선언되어 있습니다

TXLSXCell 선언

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;
      

TXLSXCell 멤버

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.xmlcellXfs 인덱스입니다. 기본 스타일은 0으로 유지합니다. 인덱스 1은 내장된 날짜 서식(numFmtId 14, m/d/yyyy)을 위해 예약되어 있습니다. 설정 시 생성된 셀에서 FormatIndexFontIndex보다 우선권을 가집니다
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 통합 문서 보호 풀의 인덱스입니다. 일반적인 사용을 위해 LockedFormulaHidden 편의 속성이 이 인덱스를 자동으로 관리합니다
Locked True(모든 새 셀의 기본값)인 경우 워크시트가 보호될 때 셀도 보호됩니다. 보호된 시트 내에서 특정 셀을 편집할 수 있도록 허용하려면 False로 설정합니다. 기본값과 다를 때 셀의 cellXf 내에 <protection locked="0"/> 특성을 씁니다
FormulaHidden True인 경우 시트가 보호되는 동안 수식 입력줄에 셀의 수식이 표시되지 않습니다. 기본값은 False입니다. 일치하는 cellXf<protection hidden="1"/>을 생성합니다
FormattedText 읽기 전용 WideString입니다. 활성화된 사용자 지정 또는 내장 숫자 서식 코드에 따라 셀 값을 문자열로 서식화하여 반환합니다
TaggedText 읽기 전용 WideString입니다. 해당하는 경우 서식 있는 텍스트 스타일을 위한 HTML/XML 유사 서식 태그를 포함하는 서식화된 셀 문자열을 반환합니다

TXLSXCells 선언

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;
      

TXLSXCells 멤버

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;
    

참고 항목