帮忙解答下,我急用,都搞了一下午都没反应
这样写进程还是有各位高手帮忙看看哪里有问题
var
dataset:TAbstractDataSet;
obj,objs,obj1,obj2,obj3,obj4 bject;
app, workbooks, workbook,worksheets , worksheet : System.DispatchHelper;
range , cell , Borders , aa ,bb ,cc, font : System.DispatchHelper ;
lFileName,ee : String ;
x1,x2,y1,y2,i:Integer;
begin
dataset:=Datagrid1.DataSource.DataSet;
lFileName:='G:\abc.xls';
ee:=JSCommon.CreateGUIDStr ; //获取全局GUID
obj:=ComObj.CreateOleObject('Excel.Application') ;
app := System.DispatchHelper.create(obj);
app.PropertyPut('Visible', [True]);
objs:=app.PropertyGet('WorkBooks',[]);
workbooks := System.DispatchHelper.create(objs);
workbooks.InvokeMethod('OPEN', [lFileName]);
obj1:= workbooks.PropertyGet('Item',[1]);
workbook :=System.DispatchHelper.create(obj1);
obj2:= workbook.PropertyGet('Sheets',[]);
worksheets := System.DispatchHelper.create(obj2);
x1:=1;
x2:=2;
i:=dataset.RecordCount; //获取总条数
dataset.FindFirst;
obj3:= worksheets.PropertyGet('Item',['sheet1']);
worksheet := System.DispatchHelper.create(obj3);
for x1:=x1 to i do
begin
obj4:= worksheet.PropertyGet('cells',[x1+1,x2]);
cell:=System.DispatchHelper.create(obj4);
cell.PropertyPut('value',[dataset.FieldByName(DataGrid1.Columns[0].FieldName).Text]);
dataset.Next
end;
worksheet.InvokeMethod('SaveAs',['C:\Documents and Settings\Administrator\桌面\'+ee+'.xls']);
//workbooks.InvokeMethod('Close',[]);
app.InvokeMethod('quit',[]);
(obj4 as System.IDisposable).Dispose;
(obj3 as System.IDisposable).Dispose;
(obj2 as System.IDisposable).Dispose;
(obj1 as System.IDisposable).Dispose;
(objs as System.IDisposable).Dispose;
(obj as System.IDisposable).Dispose; |