static Procedure TZLZYJ.UpdSheetName(SXlsName , SSheetName: String);
var
oExcel : Variant;
AppExcel , workbooks , worksheets , workbook , worksheet , sactivesheets : System.DispatchHelper;
oworkbooks , sactivebooks : object;
begin
oExcel := ComObj.CreateOleObject('Excel.Application');
if AppExcel= nil then
AppExcel := System.DispatchHelper.Create(oExcel);
if workbooks = nil then
oworkbooks := AppExcel.PropertyGet('WorkBooks',[]);
try
workbooks := System.DispatchHelper.Create(oWorkbooks);
workbook := System.DispatchHelper.Create(workbooks.InvokeMethod('Open',[SXlsName]));
worksheets := System.DispatchHelper.Create(workbook.PropertyGet('Sheets',[]));
worksheet := System.DispatchHelper.Create(worksheets.PropertyGet('Item',[1]));
worksheet.PropertyPut('Name',[SSheetName]);
workbook.InvokeMethod('SAVEAS',[SXlsName]);
finally
//workbook.InvokeMethod('close',[]);
(oExcel as System.IDisposable).Dispose;
end;
end;
上述代码执行时不报错,执行是这样的,我是先调用了CopySheetToExcel函数保存EXCEL,然后有上述代码打开这个EXCEL文件,修改其SHEET的名字,运行时会提示文件已存在是否覆盖,另外,进程中的EXCEL还存在。请问怎么修改这段代码呀,在线等,谢谢。 |