Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Экспорт в excel [D7, IB6.x]


Belkova ©   (2004-10-14 08:04:00) 

Мастера Delphi, подскажите , пожалуйста, что делаю не так.
Формирую прайс и экспортирую его в excel.
На своем компьютере. Все работает хорошо.
Переношу на другой, Все экспортируется,
но значение поля цена похоже, но на несколько порядков больше.
Код привожу.
 BeginCol := 1;  BeginRow := 2;
 With Sql_FormPrice do
  begin
   Close;
   Sql.Clear;
   Sql.Add('Select Count(*) from Price_U');
   ExecQuery;
   RowCount:=Fields[0].AsInteger;
  end;
 ColCount := 5;
 try
  ExcelApp:= CreateOleObject('Excel.Application');
 except
  raise Exception.Create('Excel должен быть установлен');
 end;
 ExcelApp.Application.EnableEvents := false;
 Workbook := ExcelApp.WorkBooks.Add;
   ExcelApp.Range['C1']:='Кол-во';
   ExcelApp.Range['E1']:='Цена';
   ExcelApp.Range['B1']:='Наименование';
   ExcelApp.Range['A1']:='№';
   ExcelApp.Range['D1']:='Кол-во на складе';
 ArrayData := VarArrayCreate([1, RowCount, 1, ColCount], varVariant);
 With Sql_FormPrice do
  begin
   Close;
   Sql.Clear;
   Sql.Add('Select * from Form_price_client(:iSale)');
   ParamByname('iSale').AsFloat:=Koef;
   ExecQuery;
 i:=1;
 While not Eof do
  begin
   ArrayData[I, 1] :=I;
   ArrayData[I, 2] :=Fields[2].AsString;
   ArrayData[I, 3] :=Fields[3].AsString;
   ArrayData[I, 4] :=Fields[5].AsFloat;
   ArrayData[I, 5] :=Fields[4].Asstring;
   i:=I+1;
   Next;
   end;
  end;
  Cell1 := WorkBook.WorkSheets[1].Cells[BeginRow, BeginCol];
  Cell2 := WorkBook.WorkSheets[1].Cells[BeginRow  + RowCount - 1,
          BeginCol + ColCount - 1];
 Range := WorkBook.WorkSheets[1].Range[Cell1, Cell2];
 Range.Value := ArrayData;
 ExcelApp.Workbooks.Close;
 ExcelApp := Unassigned;
 ExcelApp:=Null;
 finally
  NExcel.Enabled:=True;
 end;


vv_fran   (2004-10-14 16:26:00) [1]

А еще есть куча компонент для экспорта DataSet в Excel.
Мне понравилось делать через EhDBGrid. Проблем не было.


Nikolay M.   (2004-10-14 14:44:00) [2]


> ArrayData[I, 5] :=Fields[4]. Asstring ;

Это зачем? Насколько я умею считать до пяти, это ведь цена?


Belkova   (2004-10-14 14:08:00) [3]

назначаю .не помогает.


KSergey   (2004-10-14 08:57:00) [4]

Может что с форматами ячеек? Может их явно назначить?


Наверх

Титульная страница Поиск, карта сайта Написать письмо