Вот даже примерчик наваял, зачем-то.

Под настроение. Правда на Delphi, но суть та же.
uses
SysUtils,
Classes, ActiveX, ComObj, VCF1;
const
DLL_PROCESS_DETACH = 0;
DLL_PROCESS_ATTACH = 1;
procedure MainDll(Reason:Integer);
begin
if Reason=DLL_PROCESS_ATTACH then
CoInitialize(nil)
else
if Reason=DLL_PROCESS_DETACH then
CoUninitialize;
end;
function SaveToXls:HRESULT;
var
ui:IUnknown;
IBook:_DVCF1;
begin
Result:=S_OK;
try
OleCheck(CoCreateInstance(CLASS_F1Book,nil,CLSCTX_INPROC_SERVER,IUnknown,ui));
IBook:=ui as _DVCF1; //Тут если в Builder as нету, будет QueryInterface.
IBook.Col:=1;
IBook.Row:=1;
IBook.Number:=300;
IBook.Col:=2;
IBook.Row:=2;
IBook.Text:='My text';
IBook.Write('c:\1\1.xls', F1FileExcel4);
except
on E: EOleSysError do
Result:=E.ErrorCode;
else
Result:=E_UNEXPECTED;
end;
end;
exports
SaveToXls;
begin
DllProc:=MainDll;
DllProc(DLL_PROCESS_ATTACH);
end.