Excel automation with OLE, BCB6
Добавлено: 25 июн 2005, 15:15
привет.
может кто-то ответит...?
мне нужно перекинуть в excel много данных, поэтому делать построчно не хочется... есть идея получить range, сформировать в программе массив variant'ов и присвоить сразу массив к этому range. знаю что так можно сделать, т к. вот такой пример нашел на паскале
но как это сделать на BCB через OLE? не могу разобраться..
может кто-то ответит...?
мне нужно перекинуть в 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;