Документация HotXLS

Классы TXLSXCell / TXLSXCells

Доступ к значению ячейки на TXLSXWorksheetTXLSXCell — это одна ячейка (значение плюс необязательная формула и индекс формата); TXLSXCells — это коллекция для каждого рабочего листа, доступная через Worksheet.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;
    property NamedStyleXfId: Integer;
    property LinkedStyle: TXLSXLinkedStyle;
  end;
      

Члены TXLSXCell

DestroyОсвобождает состояние экземпляра и высвобождает принадлежащие ему ресурсы
SetWorkbookЗаписывает ссылку на владеющую рабочую книгу, чтобы такие операции, как поиск числовых форматов, могли повторно использовать общие пулы рабочей книги за время O(1)
SetArrayRoot / SetArrayRangeУстанавливает маркеры ArrayRoot* и ArrayLast* для привязок распределения формул массивов, чтобы одна корневая ячейка отображала все зависимые ячейки в том же прямоугольнике
WorkbookОбратная ссылка на владеющую TXLSXWorkbook , установленная при создании ячейки рабочего листа
ArrayRootRow / ArrayRootCol / ArrayLastRow / ArrayLastColМетаданные распределения CSE только для чтения, используемые при сохранении/загрузке для прямоугольников формул массивов
RowИндекс строки, начиная с 1
ColИндекс столбца, начиная с 1 (1 = A, 2 = B, ...)
ValueЗначение ячейки в виде Variant. Поддерживаются строки, числа, логические значения и TDateTime . Установка TDateTime автоматически выбирает встроенный формат даты cellXf (XlsxXfIndexDate), если не задан явный FormatIndex is set
FormatIndexИндекс в xl/styles.xmlcellXfs . Оставьте равным 0 для стиля по умолчанию. Индекс 1 зарезервирован для встроенного формата даты (numFmtId 14, m/d/yyyy). При установке FormatIndex имеет приоритет над FontIndex в результирующей ячейке
FontIndexИндекс, начиная с 1, в TXLSXWorkbook.Fonts. Оставьте равным 0 для наследования шрифта Calibri 11 по умолчанию
FillIndexИндекс, начиная с 1, в TXLSXWorkbook.Fills. См. TXLSXFill
BorderIndexИндекс, начиная с 1, в TXLSXWorkbook.Borders. См. TXLSXBorder
NumberFormatIndexИндекс, начиная с 1, в TXLSXWorkbook.NumberFormats. Используйте его для пользовательских кодов форматирования, таких как '$#,##0.00' или 'yyyy-mm-dd hh:mm:ss'
NumberFormatУдобное свойство для пользовательского текста числового формата. Чтение возвращает код формата из пула числовых форматов рабочей книги, если NumberFormatIndex указывает на него; присвоение строки находит или добавляет формат и обновляет NumberFormatIndex
AlignmentIndexИндекс, начиная с 1, в TXLSXWorkbook.Alignments. См. TXLSXAlignment для настройки горизонтального / вертикального выравнивания, переноса слов, отступа и угла поворота для каждой записи
RichTextНеобязательные собственные данные TXLSXRichText . При установке ячейка проходит через таблицу общих строк как запись <si> с несколькими фрагментами форматирования вместо обычной строки; присвоение nil возвращает ячейку к значению Variant
PrecedenceЕсли для одной и той же ячейки заданы несколько свойств *Index , сторона сохранения (SaveAs) выбирает соответствующий cellXf в следующем порядке: FormatIndex > FontIndex > FillIndex > BorderIndex > NumberFormatIndex
FormulaНеобязательный текст формулы (без начального знака =). При установке SaveAs генерирует дочерний элемент <f> вместе со значением ячейки, а Open считывает его обратно
ProtectionIndexИндекс в пуле защиты рабочей книги. Удобные свойства Locked и FormulaHidden поддерживают этот индекс автоматически для общего использования
LockedЕсли установлено значение True (по умолчанию для каждой новой ячейки), ячейка защищается при защите рабочего листа. Установите значение False , чтобы разрешить редактирование конкретной ячейки на защищенном листе. Записывает атрибут <protection locked="0"/> внутри cellXf ячейки, если значение отличается от значения по умолчанию
FormulaHiddenЕсли установлено значение True, строка формул не отображает формулу ячейки, пока лист защищен. Значение по умолчанию — False. Генерирует <protection hidden="1"/> в соответствующем cellXf
FormattedTextWideString только для чтения. Возвращает значение ячейки, отформатированное как строка в соответствии с ее активным пользовательским или встроенным кодом числового формата
TaggedTextWideString только для чтения. Возвращает отформатированную строку ячейки, содержащую теги форматирования в стиле HTML/XML для стилей форматированного текста, если применимо
NamedStyleXfIdRead-only Integer. Returns the cellXfs индекс именованного стиля, на который ссылается эта ячейка, или -1 when the cell has no style payload
LinkedStyleRead/write TXLSXLinkedStyle запись. Привязывает ячейку к именованному стилю: AutomaticChoose позволяет Excel выбрать стиль автоматически, а LinkedParts выбирает, какие части формата (шрифт, заливка, граница, числовой формат, выравнивание, защита) следуют связанному стилю

Объявление 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 при первом обращении. Объявлено как свойство по умолчанию, поэтому 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;             // renders as a date
  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;
    

См. также