Страница 1 из 1

Excel automation with OLE, BCB6

Добавлено: 25 июн 2005, 15:15
dykzei
привет.
может кто-то ответит...?
мне нужно перекинуть в excel много данных, поэтому делать построчно не хочется... есть идея получить range, сформировать в программе массив variant'ов и присвоить сразу массив к этому range. знаю что так можно сделать, т к. вот такой пример нашел на паскале

Код: Выделить всё

var
  xls, wb, Range: OLEVariant;
  arrData: Variant;
begin
  {create variant array where we'll copy our data}
  arrData := VarArrayCreate([1, yourStringGrid.RowCount, 1, yourStringGrid.ColCount], varVariant);

  {fill array}
  for i := 1 to yourStringGrid.RowCount do
    for j := 1 to yourStringGrid.ColCount do
      arrData[i, j] := yourStringGrid.Cells[j-1, i-1];

  {initialize an instance of Excel}
  xls := CreateOLEObject('Excel.Application');

  {create workbook}
  wb := xls.Workbooks.Add;

  {retrieve a range where data must be placed}
  Range := wb.WorkSheets[1].Range[wb.WorkSheets[1].Cells[1, 1],
                                  wb.WorkSheets[1].Cells[yourStringGrid.RowCount, yourStringGrid.ColCount]];

  {copy data from allocated variant array}
  Range.Value := arrData;

  {show Excel with our data}
  xls.Visible := True;
end;
но как это сделать на BCB через OLE? не могу разобраться..

Добавлено: 25 июн 2005, 16:45
dykzei
очень оперативные мысли спасибо!
разобралсо сам...