FastReport, экспорт в Excel, ноль знаков после запятой

Vanzelius

Доброго времени суток.Использую FastReport версии 4.7.45, Delphi 2007, Windows XP SP3 Rus, Office 2007.Необходимо при экспорте отчета из FastReport в Excel получить суммы в формате # ##0 т.е. не отображать дробную часть. В дизайнере FastReport'а у объекта Memo значение свойства DisplayFormat установил в %2.0n однако при этом в ячейке Excel отображается запятая после числа, например: 5 830,Подскажите как сделать так, чтобы в Excel'e отображалось 5 830 ?Заранее спасибо.
5 ответов

Vanzelius

Поставьте формат в Memo например такой #0


Vanzelius

Поставьте формат в Memo например такой #0
Все нормально, только пропали разделители разрядов, т.е. вместо 5 830 теперь 5830.Если поставить формат # ##0 то число сохраняется как текст. В общем не то.


Vanzelius

%2nа так не прокатит?


Vanzelius

%2nа так не прокатит?
То же самое, что с %2.0n


Vanzelius

Решил проблему написанием такой процедуры:
<b>uses</b>
 ComObj,
 ShellAPI;

<b>procedure</b> TCore.SetupSheetXLS(AFileName: <b>string</b>; AOpenAfterSetup: boolean = True; ANumberFormat: <b>string</b> = '# ##0');
<b>var</b>
 aExcel: Variant;
<b>begin</b>
 aExcel := CreateOleObject('Excel.Application');
 <i>// Не показываем окно Excel</i>
 aExcel.Visible := False;
 <i>// Не показывать предупреждающие сообщения</i>
 aExcel.DisplayAlerts := False;
 <i>// Открываем рабочую книгу</i>
 aExcel.WorkBooks.Open(AFileName);

 <i>// Настройка</i>
 aExcel.Columns.NumberFormat := ANumberFormat;

 <i>// Сохраняем и закрываем</i>
 aExcel.ActiveWorkbook.Save;
 aExcel.ActiveWorkbook.Close;
 aExcel.Quit;
 aExcel := Unassigned;

 <b>if</b> AOpenAfterSetup
 <b>then</b> ShellAPI.ShellExecute(Application.Handle, <b>nil</b>, PAnsiChar(AFileName), <b>nil</b>, <b>nil</b>, SW_SHOW);
<b>end</b>;