小弟在看到别人程序,拿下来自己调试时出现的问题,因为是新手,希望大虾解说一下:
新建一项目,从控件栏servers中分别选取控件:excelapplication、
excelworkbook1、excelworksheet,放到主窗体from1中,并加入stringgrid、
三个按钮、五个显示字段内容的EDIT、二个操作显示记录的label、一个用于打
开EXCEL电子表格的控件opendialog等。选择excel表'按钮,用于打开EXCEL文件,其代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer;
begin
opendialog1.InitialDir:=ExtractFileDir(paramstr(0));//文件的打存放初始路径
opendialog1.Execute;
Try
ExcelApplication1.Connect;//EXCEL应用程序
Except
MessageDlg('Excel may not be installed',mtError, [mbOk], 0);
Abort;
End;
ExcelApplication1.Visible[0]:=True;
ExcelApplication1.Caption:='Excel Application';
try
excelapplication1.Workbooks.Open(opendialog1.FileName,
null,null,null,null,null,null,null,null,null,null,null,null,0);//打开指定
的EXCEL 文件
except
begin
ExcelApplication1.Disconnect;//出现异常情况时关闭
ExcelApplication1.Quit;showmessage('请选择EXCEL电子表格!');
exit;
end;
end;
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
//ExcelWorkbook1与Eexcelapplication1建立连接
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);
//Excelworksheet1与Excelworkbook1建立连接
//开始从EXCEL中取数,放到stringgrid1中,取完数后关闭EXCEL
for i:=1 to 1000 do//最大取值1000
for j:=1 to 6 do
begin
if trim(excelworksheet1.cells.item[i+1,1])<>'' then
begin
stringgrid1.rowCount:=i+1;
stringgrid1.Cells[j,i]:=ExcelWorksheet1.Cells.Item[i+1,j];
end
else
begin
label3.caption:=inttostr(i-1);
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
//将第一条数据赋给编辑框
edit2.text:=stringgrid1.Cells[1,1];
edit1.text:=stringgrid1.Cells[2,1];
edit3.text:=stringgrid1.Cells[3,1];
edit4.text:=stringgrid1.Cells[4,1];
edit5.text:=stringgrid1.Cells[5,1];
exit;
end;
end;
end;
按照作者的说法,我运行了这个按键的程序,但是出现一个错误:就是在如下这段:excelapplication1.Workbooks.Open(opendialog1.FileName,
null,null,null,null,null,null,null,null,null,null,null,null,0);//打开指定
的EXCEL 文件
提示实际参数不足不知道是什么原因。希望高手能指教
新建一项目,从控件栏servers中分别选取控件:excelapplication、
excelworkbook1、excelworksheet,放到主窗体from1中,并加入stringgrid、
三个按钮、五个显示字段内容的EDIT、二个操作显示记录的label、一个用于打
开EXCEL电子表格的控件opendialog等。选择excel表'按钮,用于打开EXCEL文件,其代码如下:
procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer;
begin
opendialog1.InitialDir:=ExtractFileDir(paramstr(0));//文件的打存放初始路径
opendialog1.Execute;
Try
ExcelApplication1.Connect;//EXCEL应用程序
Except
MessageDlg('Excel may not be installed',mtError, [mbOk], 0);
Abort;
End;
ExcelApplication1.Visible[0]:=True;
ExcelApplication1.Caption:='Excel Application';
try
excelapplication1.Workbooks.Open(opendialog1.FileName,
null,null,null,null,null,null,null,null,null,null,null,null,0);//打开指定
的EXCEL 文件
except
begin
ExcelApplication1.Disconnect;//出现异常情况时关闭
ExcelApplication1.Quit;showmessage('请选择EXCEL电子表格!');
exit;
end;
end;
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
//ExcelWorkbook1与Eexcelapplication1建立连接
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);
//Excelworksheet1与Excelworkbook1建立连接
//开始从EXCEL中取数,放到stringgrid1中,取完数后关闭EXCEL
for i:=1 to 1000 do//最大取值1000
for j:=1 to 6 do
begin
if trim(excelworksheet1.cells.item[i+1,1])<>'' then
begin
stringgrid1.rowCount:=i+1;
stringgrid1.Cells[j,i]:=ExcelWorksheet1.Cells.Item[i+1,j];
end
else
begin
label3.caption:=inttostr(i-1);
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
//将第一条数据赋给编辑框
edit2.text:=stringgrid1.Cells[1,1];
edit1.text:=stringgrid1.Cells[2,1];
edit3.text:=stringgrid1.Cells[3,1];
edit4.text:=stringgrid1.Cells[4,1];
edit5.text:=stringgrid1.Cells[5,1];
exit;
end;
end;
end;
按照作者的说法,我运行了这个按键的程序,但是出现一个错误:就是在如下这段:excelapplication1.Workbooks.Open(opendialog1.FileName,
null,null,null,null,null,null,null,null,null,null,null,null,0);//打开指定
的EXCEL 文件
提示实际参数不足不知道是什么原因。希望高手能指教
解决方案 »
- 怎么开发一个带标题栏的panel,并在右上角带关闭按钮的
- 我不懂这个问题(stringgrid)
- 请问如何得到界面上的一个edit的当前输入法啊?
- 哈哈,五个裤衩了,放分啦
- ADO方式下,怎样在一个数据库里查找一个字段是否与edit1.text值相等?如何返回具体个数?
- 怎样使dbgrid被选中的一行(当前行)改变成绿色?
- delphi 中如何使用sql 存储过程的返回值
- 在Win2000中,如何使用PlaySound播放声音资源。
- quickreport做的报表,怎样可以一次生成,多次预览(或打印)?
- 关于delphi中的winsock
- delphi社区群号:9751676欢迎加入和交流。
- 请教一下如何获取注册表中某个键值下的默认值,谢谢!
newfile:=文件所在的路径\文件名称
ExcelApp.Workbooks.Open(newfile,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,Null,0);