有关DELPHI中读取EXCEL文件的问题:谁能帮我吗(70分)

  • 主题发起人 主题发起人 helpmehelpme
  • 开始时间 开始时间
H

helpmehelpme

Unregistered / Unconfirmed
GUEST, unregistred user!
var ExcelApp,Workbook,WorkSheet:Variant;
begin
try
ExcelApp := CreateOleObject('Excel.Application');
except
DispErr('Could not Create Excel Application!');
abort;
end;
try
ExcelApp := CreateOleObject('Excel.Application');
except
DispErr('PPMS010-02 Could not Create Excel Application!');
abort;
end;
try
try
ExcelApp.WorkBooks.Open(edtDir.text,,True);
except
ExcelApp.Quit;
end;
WorkBook:=ExcelApp.ActiveWorkbook;
WorkSheet:=WorkBook.ActiveSheet;
// get Excel row counts
rows:=0;
i:=0;
sTemp:=string(WorkSheet.Cells[i,1]);
while not (VarIsNull(sTemp)) and (sTemp='') do
begin
rows:=rows+1;
i:=i+1;
sTemp:=string(WorkSheet.Cells[i,1]);
end;
finally
ExcelApp.Free;
end;
end;
end;

那位大侠帮我看看,为什么
ExcelApp := CreateOleObject('Excel.Application');
出错,错误提示:
...raise exception class EOleSysError with message '拒绝访问'!
我的机器上装有office200;为什么不能呢?

后来我想改用Servers控件页的TExcelApplication,TExcelWorkbook,TExcelworkSheet;
可是却没有连机帮助!
有谁能告诉我这三个空间的用法吗?
 
为什么没有人肯帮我呢?
 
对不起,前面多拷贝了几行!
第一个Try ..Except ..end;重复了。
 
很容易的,这样写:
Try
ExcelApplication1.Connect;{连接}

//调用EXCEL程序,新建一个电子表格文件
ExcelApplication1.Visible[0]:=True;
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));

//生成一个新的sheet
Temp_Worksheet:=ExcelWorkbook1.WorkSheets.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam,0) as _WorkSheet;
ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);

//或者连接已有的sheet
ExcelWorkSheet1.ConnectTo(ExcelWorkbook1.Worksheets.Item[i+1] as _WorkSheet);
Except
ShowMessage('Failure');
End;


//向电子表格文件中写入数据
ExcelWorksheet1.Cells.Item[1,1]:='数据';
等等,其他操作可以查MSDN
 
前面的方法可能是你OFFICE出了问题,建议从新安装OFFICE再试试!我也碰到过!
 
多人接受答案了。
 
后退
顶部