|

楼主 |
发表于 2010-11-17 09:03:33
|
显示全部楼层
var
lOExcel,lOWorkBook,lORange,lOSheetNum,lOWorksheet,lOActiveCell1,lOActiveCell2 bject;
lOAD,lOTemp,lOFont,lOCharacters bject;
lApp,ldocs,ldoc,lRange,lADoc,lActiveCell1,lActiveCell2:system.DispatchHelper;
lWorksheet,lFont,lCharacters:system.DispatchHelper;
lSaveDialog:TOpenDialog;
begin
lSaveDialog :=TSaveDialog.Create(nil);
lSaveDialog.Filter :='Microsoft Excel (*.xls|*.xls|All files (*.*)|*.*';
if not lSaveDialog.Execute then exit ;
if FileExists(lSaveDialog.FileName+'.xls') then
begin
if JsDialogs.ConfirmBox('该文件已经存在,是否要覆盖该文件?','询问',2)=false
then
exit;
end;
lOExcel :=Comobj.CreateOleObject('Excel.application');
lapp :=system.DispatchHelper.create(lOExcel);
lOWorkBook:=lApp.PropertyGet('WorkBooks',[]);
ldocs :=system.DispatchHelper.Create(lOWorkBook) ;
ldocs.InvokeMethod('ADD',[]);
lORange:=lapp.PropertyGet('Range',['B1']);
lRange :=system.DispatchHelper.Create(lORange);
lRange.InvokeMethod('Select',[]);
lOActiveCell1 :=lapp.PropertyGet('ActiveCell',[]);
lActiveCell1 :=system.DispatchHelper.Create(lOActiveCell1);
lActiveCell1.PropertyPut('FormulaR1C1',['T70']);
lOActiveCell2 :=lapp.PropertyGet('ActiveCell',[]);
lActiveCell2 :=system.DispatchHelper.Create(lOActiveCell2);
lOCharacters:=lActiveCell2.PropertyGet('Characters',[2,1]); //取第2个字符
lCharacters :=system.DispatchHelper.Create(lOCharacters);
lOFont :=lCharacters.PropertyGet('Font',[]);
lFont :=system.DispatchHelper.Create(lOFont);
lFont.PropertyPut('Subscript',[1]); //下标
lOCharacters:=lActiveCell2.PropertyGet('Characters',[3,1]); //取第3个字符
lCharacters :=system.DispatchHelper.Create(lOCharacters);
lOFont :=lCharacters.PropertyGet('Font',[]);
lFont :=system.DispatchHelper.Create(lOFont);
lFont.PropertyPut('Superscript',[1]); //上标
lOAD:=lApp.PropertyGet('ActiveWorkbook',[]);
lADoc:=System.DispatchHelper.Create(lOAD);
lADoc.InvokeMethod('saveas', [lSaveDialog.FileName+'.xls']);
//ldocs.InvokeMethod('saveas', [lOpenDialog.FileName+'.xls']);
//保存不了 ,必须用激活的workbook
lADoc.InvokeMethod('Close',[]) ;
ldocs.InvokeMethod('close',[]) ;
lApp.InvokeMethod('Quit', []);
(lOAD as System.IDisposable).Dispose ;
(lOActiveCell1 as system.IDisposable).Dispose;
(lOActiveCell2 as system.IDisposable).Dispose;
(lOCharacters as system.IDisposable).Dispose;
(lOFont as system.IDisposable).Dispose;
(lORange as System.IDisposable).Dispose;
(lOWorkBook as System.IDisposable).Dispose;
(lOExcel as System.IDisposable).Dispose;
jsDialogs.ShowMsg('生成excel成功!','提示'); |
|