Cómo utilizar OLEContainer de Delphi para operar MS Word
myWorkBook:Variant;
mySheet:Variant;
begin
OleContainer1.CreateObjectFromFile('c:/aaa.xls' ,true);
OleContainer1.DoVerb(ovShow);
myWorkBook:=?OleContainer1.OleObject;
mySheet?:=?myWorkBook.ActiveSheet;
//SaveAs
myWorkBook.Application.Dialogs.Item[xlDialogSaveAs].Show();
/PageSetup
myWorkBook.Application .Dialogs.Item[xlDialogSaveAs].Show()Show();
Vista previa de impresión (no se puede obtener una vista previa dentro del contenedor, debe guardarlo como un archivo y luego obtener una vista previa)
{
//Traducir el siguiente código C++Builder a código Delphi
String?TempDir;
char?tmp[255];
GetTempPath(255,?tmp);
TempDir?=?StrPas(tmp);
String?FileName?=?TempDir?+?" temp_forPrintPreview.xls" ;
DeleteFile(FileName.c_str());
m_WorkBook.OleFunction("SaveAs",FileName.OleContainer1->Close();
¿Variante? ExcelApp? =?Variant::CreateObject("Excel.Application");
ExcelApp.OlePropertySet("visible",true);
ExcelApp.OlePropertyGet("WorkBooks"). OleProcedure( "Open",FileName.c_str());
Variable? OlePropertyGet("Dialog").OlePropertyGet("Project",xlDialogPrintPreview);
Dialog.OleFunction(" Mostrar ");
ExcelApp.OleFunction("Salir");
ExcelApp?=?Unassigned;
// Eliminar archivos temporales
OleContainer1->CreateObjectFromFile(FileName,false);
OleContainer1->DoVerb(ovShow);
myWorkBook?=?OleContainer1->OleObject;
mySheet =?myWorkBook.OlePropertyGet("ActiveSheet");
DeleteFile(FileName.c_str());
}
end;