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


Автор: UhaMurad 9.10.2005, 08:26
Здравствууйте!

У меня такая проблема: при попытке через Дельфи установить свойство Range.NumberFormat Excel ругается, что нельзя этого делать!

Почему-то, при присвоении Range[some].Value := FloatToStr(somereal); в некоторых случаях Excel игнорирует запятую, разделяющую целую и дробную части. Поэтому я и хочу сначала установить формат ячеек в числовой, потом присваивать вещественные значения.

Заранее спасибо!

Автор: DimassS 10.5.2006, 02:48
Посмотри, на основе типа данных из Query, задаётся тип ячейки Excel

Код

   DataModule1.Query1.First;
   repeat
     i:=i+1;
     for j:=0 to MyCol.Count-1 do
       case  DataModule1.Query1.FieldByName(MyCol.Strings[j]).DataType of
          ftFloat:
            begin
              Excel.ActiveWorkBook.ActiveSheet.cells(i,j+1):=DataModule1.Query1.FieldByName(MyCol.Strings[j]).AsFloat;
            end;
          ftCurrency :
            begin
              Excel.range[Excel.Cells[i, j+1], Excel.Cells[i, j+1]].NumberFormat:= '# ##0,0000Ё.' ;
              Excel.ActiveWorkBook.ActiveSheet.cells(i,j+1):=DataModule1.Query1.FieldByName(MyCol.Strings[j]).Value
            end
          else
            Excel.ActiveWorkBook.ActiveSheet.cells(i,j+1):=DataModule1.Query1.FieldByName(MyCol.Strings[j]).AsString;
       end;
     DataModule1.Query1.Next;
   until DataModule1.Query1.Eof; }

   

Автор: Albinos_x 10.5.2006, 07:17
http://forum.vingrad.ru/index.php?showtopic=84634 

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