Требуется помощь в новой версии flexcel для Delphi 2007 - PullRequest
0 голосов
/ 05 июля 2011

Я использую компонент flexcel для генерации файлов Excel из Delphi 2007. Теперь мы перешли на последнюю версию этого компонента, поскольку старая не была совместима с Excel 2010.

Теперь я сталкиваюсь с проблемой, когда мы устанавливаем формат каждой ячейки на другое значение. Файл генерируется, но с форматированием по умолчанию для всех ячеек.

Ниже приведен фрагмент кода, демонстрирующий это поведение:

var
  V: TXlsCellValue;
begin
  with V do
  begin
    Value := S; //text
    XF := Fmt;  //format
    IsFormula := false;
  end;
  FXls.AssignCellDataX(Succ(Row), C, V);  // FXls : TXLSFile; 
end;

1 Ответ

0 голосов
/ 06 июля 2011

Это одно из решений, которое я могу найти. Здесь нам нужно создать собственные форматы.

Fmt: TFlxFormat;
GetDefaultFormat(Fmt); // used to get the default format of a blank cell 

и ниже - функция для добавления формата в список форматов этого компонента

Fmt.Font.Size20 := 240;
Rmt.WrapText := True;
tempXF:= FlexCelImport1.AddFormat(Fmt);

Эта функция AddFormat вернет целочисленное значение, которое обозначает вновь созданный номер формата. Здесь мы можем использовать это tempXF число для форматирования ячейки.

Ниже приведен рабочий фрагмент:

var
    V: TXlsCellValue;
begin
    with V do
    begin
        Value := S; // text to be inserted
        XF := tempXF; // newly created format
        IsFormula := FALSE;
    end;
    FXls.AssignCellDataX(Succ(Row), Col, V); // FXls : TXLSFile; 
End;

Любой, у кого ответы лучше, всегда ценится.

...