К Oracle подключаюсь через ADO (OraOLEDB.Oracle.1)
В ексель создаю новую книгу и вывожу так:
ArrayData := VarArrayCreate([1, RowCount, 1, ColCount], varVariant);
Querys.DisableControls;
Querys.First;
While Not Querys.eof Do
Begin
For J := 1 To Querys.FieldDefs.Count Do
Begin
ArrayData[Querys.RecNo, J] :=
Querys.FieldbyName(Querys.FieldDefs.Items[j - 1].DisplayName).value;
End;
Querys.Next;
End;
Querys.EnableControls;
Cell1 := WorkBook.WorkSheets[1].Cells[BeginRow+1, BeginCol];
Cell2 := WorkBook.WorkSheets[1].Cells[BeginRow + RowCount,
BeginCol + ColCount - 1];
Range := WorkBook.WorkSheets[1].Range[Cell1, Cell2];
Range.Value := ArrayData;
А в екселе вместо числовых данных выводятся денежный формат.
Например целый идентификатор 12574 выводится как 12574.00р.
Типы полей запроса заранее неизвестны.
В чем проблема: в Ексель, или в OLE Provider for Oracle?