Delphi7读取Excel文件问题(100分)

  • 主题发起人 主题发起人 PLWang
  • 开始时间 开始时间
P

PLWang

Unregistered / Unconfirmed
GUEST, unregistred user!
http://www.delphibbs.com/delphibbs/dispq.asp?lid=759711
主要看了上面的帖子 但是自己做的时候还是问题多多
程序使用控件
ExcelApplication1.Connect;
ExcelApplication1.Visible[0]:=True;
// ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));
// Temp_Worksheet:=ExcelWorkbook1.WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet;
// ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);
ExcelApplication1.Workbooks.Open ('E:/文档/汇总表20070320.xls',
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);
ExcelApplication1.WorkSheets[ 'Sheet1' ].Activate;
str := VarToStr(ExcelApplication1.Cells[1,4].Value);
ExcelApplication1.WorkBooks.Close;
ExcelApplication1.Quit;
ExcelApplication1.Disconnect;
showmessage(str);

[Error] Unit1.pas(45): Not enough actual parameters
[Error] Unit1.pas(47): Undeclared identifier: 'Activate'
open函数找原型或帮助找不到 但是看自动提示信息参数是全的
 
觉得不用控件好些,用
var ExcelApp: Variant;
ExcelApp := CreateOleObject( 'Excel.Application' );
生成Excel对象,然后根据在EXCEL里面录制的宏来改成DELPHI语法的程序,应该就OK了
 
也试过 CreateOleObject时报一个EOleSysError 无效的类别字符串 的错误
 
CreateOleObject错误的原因可能是机器上没装office
 
给你一段代码:
try
v:=CreateOleObject('Excel.Application');
v.visible:=true;
WorkBook:=CreateOleobject('Excel.Sheet');
except
application.Messagebox('无法打开Xls文件,请确认已经安装EXCEL.','翰通软件',
mb_OK+mb_IconStop);
Exit;
end;

if not fileexists(lj+'/'+wjm+'.xls') then
try
copyfile(PChar(Path + 'excel' + '/' +'技术科资料'+'.xls'), PChar(lj+'/'+wjm+'.xls'), false);
V.WorkBooks.Open(lj+'/'+wjm+'.xls');
v.Worksheets['基本信息'].Activate;
sheet:=v.Worksheets['基本信息'];
v.Visible:=True;
except
application.Messagebox('EXCEL模板文件不存在,请更新.','翰通软件',
mb_OK+mb_IconStop);
Exit;
end
else
begin
application.Messagebox('EXCEL文件已存在.','翰通软件',
mb_OK+mb_IconStop);
exit;
end;
 
WorkBooks.Open的参数只留文件名一个 仍然是
[Error] Unit1.pas(45): Not enough actual parameters
 
你的机器要装office才能提供访问引擎,另外注意工作表的名字要一致
 
不是扫大家的兴, 我试了好多次,用Delphi所带的控件,实在是不好用,我相信大家不会
过分在意codeinsight吧,建议大家最好用olevariant吧,也有可能是我的水平不够,不知道
太多,但我建议微软的标准最好还是用微软的东西,除非是中国人自己开发的自己的东西
否则还是不要逆水行舟,否则实在是太麻烦了
 
而且你够建的参数也不够,应该是15个吧,但愿别抄,呵呵
你在你DELPHI的BROWSE路径加上
EXCELXP,
按提示参数输入参数,你试试用vb OLEVARIANT cREATE 
毛病会少很多。我喝多了,不过,你在大富翁上找一下,OLEVariat 很多,不要
局限在Delphi 控件上,其实delphi好用,但BUG也很多,像大家一直提的HELP
DELPHI 每次改进了多少,还不是老样子,
 
后退
顶部