Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Настройка формата ячейки при экспорте


Автор: NOCaut 10.10.2014, 16:51
При экспорте в Excel файл с настроенными ячейками как числовое поле без значений после ком.
После экспорта - комы не пропали а офис позначил эту ячейку знаком восклицания с предуприждениям что в нее скопировался текст а не значения

Ничего не помогло:
Код
     
Ap.Sheets[p.Sheet+1].Cells[p.Row+1,p.Col+1].Value   := ValueList[i];
Ap.Sheets[p.Sheet+1].Cells[p.Row+1,p.Col+1].Formula := ValueList[i];
Ap.Sheets[p.Sheet+1].Cells[p.Row+1,p.Col+1] := ValueList[i];


Если так писать то ошибка
Код
      
Ap.Sheets[p.Sheet+1].Cells[p.Row+1,p.Col+1] := StrToFloat(ValueList[i]);

---------------------------
Debugger Exception Notification
---------------------------
Project D3.exe raised exception class EConvertError with message ''' is not a valid floating point value'.
---------------------------
Break   Continue   Help   
---------------------------

Автор: Данкинг 10.10.2014, 23:18
А если .Formular1c1 ?

Автор: NOCaut 11.10.2014, 09:13
Я макросом тоже видел такой способ. ну если ничего не придумаю прийдется так
НЕ получилося. Или я неправильно использую свойство? 

Код

      Ap.Sheets[p.Sheet+1].Cells[p.Row+1,p.Col+1].FormulaR1C1 := ValueList[i];

Автор: NOCaut 11.10.2014, 10:11
Так работает)

Код

function ReplaceComa(Str: string): string;
begin
  Result := StringReplace(Str,',','.',[rfReplaceAll]);
end;

 Ap.Sheets[p.Sheet+1].Cells[p.Row+1,p.Col+1].FormulaR1C1 := ReplaceComa(ValueList[i]);


Автор: Данкинг 11.10.2014, 14:35
NOCaut, тогда следи, чтобы глюков с decimalseparator не было.

Автор: NOCaut 14.10.2014, 09:55
угу, спасибо

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)