PHP код:
//Сначала
com XLSBook, XLSWorkSheet, XLScells, XLSrange, XLSTemp;
integer hGlobalTextLocked;
integer hGlobalText;
binary bText;
str s1 = 'Бла Бла Бла'
;
//Для последующего использования определяем XLSWorkSheet и XLScells. XLSrange будет определяться позже.
XLSBook = excelDocument.getComDocument();
XLSWorkSheet = XLSBook.ActiveSheet();
XLScells = XLSWorkSheet.Cells();
s1+=num2char(9)+s1;
//Потопали выводить
XLSrange = XLScells.Range(ComExcelDocument_RU::numToNameCell(2 ,counter+1 ));
XLSrange.select();
//Подготовили
bText = NEW Binary(45);
hGlobalText = WinAPI::globalAlloc(8256,45); // (флаги, размер - можно и 2500 ставить)
hGlobalTextLocked = WinAPI::globalLock(hGlobalText);
bText.attach(hGlobalTextLocked,45);
bText.String(0, s1);
WinAPI::openClipboard(clpBrd);
WinAPI::emptyClipboard();
SmmUtility::setClipboardData(1,hGlobalText);
WinAPI::closeClipboard();
//вставили
XLSWorkSheet.paste();
//почистили буфер
WinAPI::openClipboard(clpBrd);
WinAPI::emptyClipboard();
WinAPI::closeClipboard();
//почистили память
hGlobalTextLocked = WinAPI::globalUnLock(hGlobalText);
hGlobalText = WinAPI::globalFree(hGlobalText);
bText.finalize();
s1='';
//Примерно так
Эта зараза встраивается методом в ComExcelDocument_RU, и использует для массового вывода данных системный буфер обмена.
Если где чего ошибся, или непонятно буит, могу не эти "размышления" подкинуть, а готовый метод для вышеназванного класса. Почти (только по стрингам) совместимый с InsertValue...
Просьба помидорами не кидать!:D