在窗体上放置控件:ExcelApplication,ExcelWorkbook,ExcelWorksheet(Server面板)各一个,OpenDialog,F1Book(在Active X 面板里),一个用来打开Excel表格的按钮,问题是,程序在大部分时间可以运行,能够正常显示Excel数据,再程序运行一段时间以后,或者多打开几次excel表格,就不能显示数据了,也没有提示出错,在这种情况下有时可以显示数据,有时又不行,(不知道是不是在复制数据的时候出错!这是我得猜测,不过我不知道该如何解决)单步调试,没有问题,就是显示不了数据,请各为高手帮帮忙看看,分不够再加!!!
代码如下: OpenDialog1.Filter := 'Excel Files (*.xls)|*.xls';
OpenDialog1.FilterIndex := 0;
if OpenDialog1.Execute then
begin
Try
ExcelApplication1.Connect;//EXCEL应用程序
F1Book1.ClearRange(1, 1, F1Book1.MaxRow, F1Book1.MaxCol, 1);
Except
MessageDlg('未安装excel!',mtError, [mbOk], 0);
Abort;
End;
ExcelApplication1.Visible[0]:=false;
filepath := OpenDialog1.FileName;
try
ExcelApplication1.Workbooks.Open(opendialog1.FileName,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam, 0);//打开指定的EXCEL 文件
except
begin
ExcelApplication1.Disconnect;//出现异常情况时关闭
ExcelApplication1.Quit;
showmessage('请选择EXCEL电子表格!');
exit;
end;
end;
cell1 := ExcelApplication1.Cells.EntireColumn;
cell2 := ExcelApplication1.Cells.EntireRow;
//COPY
ExcelApplication1.Range[cell1, cell2].copy(EmptyParam);
//PASTE
F1Book1.SetActiveCell(1, 1);
F1Book1.EditPasteValues;
F1Book1.BackColor := clSkyBlue;
//------------------清空剪贴板并退出 Excel-------------------//
cell1 := 'a1'; //
cell2 := 'a1'; //
ExcelApplication1.Range[cell1, cell2].copy(EmptyParam); //
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
代码如下: OpenDialog1.Filter := 'Excel Files (*.xls)|*.xls';
OpenDialog1.FilterIndex := 0;
if OpenDialog1.Execute then
begin
Try
ExcelApplication1.Connect;//EXCEL应用程序
F1Book1.ClearRange(1, 1, F1Book1.MaxRow, F1Book1.MaxCol, 1);
Except
MessageDlg('未安装excel!',mtError, [mbOk], 0);
Abort;
End;
ExcelApplication1.Visible[0]:=false;
filepath := OpenDialog1.FileName;
try
ExcelApplication1.Workbooks.Open(opendialog1.FileName,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam,
EmptyParam, EmptyParam, 0);//打开指定的EXCEL 文件
except
begin
ExcelApplication1.Disconnect;//出现异常情况时关闭
ExcelApplication1.Quit;
showmessage('请选择EXCEL电子表格!');
exit;
end;
end;
cell1 := ExcelApplication1.Cells.EntireColumn;
cell2 := ExcelApplication1.Cells.EntireRow;
//COPY
ExcelApplication1.Range[cell1, cell2].copy(EmptyParam);
//PASTE
F1Book1.SetActiveCell(1, 1);
F1Book1.EditPasteValues;
F1Book1.BackColor := clSkyBlue;
//------------------清空剪贴板并退出 Excel-------------------//
cell1 := 'a1'; //
cell2 := 'a1'; //
ExcelApplication1.Range[cell1, cell2].copy(EmptyParam); //
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货