1
13708782004
Unregistered / Unconfirmed
GUEST, unregistred user!
function TBaseExcel.InstallExcelOK: BOOLEAN;
begin
RESULT := FALSE;
try
ExcelObj := CreateOleObject('Excel.Sheet');
ExcelApp := ExcelObj.Application;
if ExcelApp.WorkBooks.Count = 0 then
begin
WorkBook := ExcelApp.Workbooks.Add;
ExcelApp.ActiveSheet.Name := 'Sheet1';
FExcelSheet := ExcelApp.ActiveSheet;
end
else
begin
WorkBook := ExcelApp.ActiveWorkBook;
ExcelApp.WorkSheets[1].Activate;
FExcelSheet := ExcelApp.WorkSheets[1]; // WorkBook.sheets[1];
end;
end
然后大家就往往ExcelApp单元格狂写数据,狂合并单元格,用户也就看到Excel 里的确有数据了!但问题是
try
aExcel := TBaseExcel.Create(10);
aExcel.ExportData();
aExcel.SetVisable(true);
finally
// aExcel.Free; 如果,free,则Excel 就关闭了, 相当没有导出
end;
当然, destructor DESTROY; override; //析构函数里并没有写半句任何代码
大家,想想,难道 ExcelApp,FExcelSheet 就不释放了吗,难道aExcel也不释放了吗?
如何 做到,不关闭导出的Excel,而又要把自己释放的稍微干净点!
begin
RESULT := FALSE;
try
ExcelObj := CreateOleObject('Excel.Sheet');
ExcelApp := ExcelObj.Application;
if ExcelApp.WorkBooks.Count = 0 then
begin
WorkBook := ExcelApp.Workbooks.Add;
ExcelApp.ActiveSheet.Name := 'Sheet1';
FExcelSheet := ExcelApp.ActiveSheet;
end
else
begin
WorkBook := ExcelApp.ActiveWorkBook;
ExcelApp.WorkSheets[1].Activate;
FExcelSheet := ExcelApp.WorkSheets[1]; // WorkBook.sheets[1];
end;
end
然后大家就往往ExcelApp单元格狂写数据,狂合并单元格,用户也就看到Excel 里的确有数据了!但问题是
try
aExcel := TBaseExcel.Create(10);
aExcel.ExportData();
aExcel.SetVisable(true);
finally
// aExcel.Free; 如果,free,则Excel 就关闭了, 相当没有导出
end;
当然, destructor DESTROY; override; //析构函数里并没有写半句任何代码
大家,想想,难道 ExcelApp,FExcelSheet 就不释放了吗,难道aExcel也不释放了吗?
如何 做到,不关闭导出的Excel,而又要把自己释放的稍微干净点!