procedure TForm1.Button2Click(Sender: TObject);
var
str,temp:string;
rows,columns,count,i,j:Integer;
begin
if FileExists(Edit1.Text)=false then
begin
showmessage('文件不存在!');
exit;
end;
Memo1.Clear;
//ExcelApplication1.Visible[0]:=True;
ExcelApplication1.Workbooks.Open(
Edit1.Text,EmptyParam,true,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.ActiveWorkbook as _WorkBook);
ExcelWorkSheet1.ConnectTo(ExcelWorkBook1.Activesheet as _Worksheet);
rows:=ExcelWorkSheet1.UsedRange[0].Rows.count;
columns:=ExcelWorkSheet1.UsedRange[0].Columns.Count;
for i:=1 to rows do
begin
str:='';
for j:=1 to columns do
begin
temp:=ExcelWorkSheet1.Cells.Item[i,j];
str:=str+' '+temp;
end;
Memo1.Lines.Add(str);
end;
if ExcelApplication1.Visible[0]<>true then
ExcelApplication1.Quit;
ExcelWorksheet1.Disconnect;
ExcelWorkbook1.Disconnect;
ExcelApplication1.Disconnect;
end;可是这样的速度有点慢,不知道该怎样改进,是否不应该用
ExcelApplication1.Workbooks.Open(...);呢?我只需要取数据,并不用打开Excel。另外问一下:OleContainer有什么用?是怎样用的?谢谢
var
str,temp:string;
rows,columns,count,i,j:Integer;
begin
if FileExists(Edit1.Text)=false then
begin
showmessage('文件不存在!');
exit;
end;
Memo1.Clear;
//ExcelApplication1.Visible[0]:=True;
ExcelApplication1.Workbooks.Open(
Edit1.Text,EmptyParam,true,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.ActiveWorkbook as _WorkBook);
ExcelWorkSheet1.ConnectTo(ExcelWorkBook1.Activesheet as _Worksheet);
rows:=ExcelWorkSheet1.UsedRange[0].Rows.count;
columns:=ExcelWorkSheet1.UsedRange[0].Columns.Count;
for i:=1 to rows do
begin
str:='';
for j:=1 to columns do
begin
temp:=ExcelWorkSheet1.Cells.Item[i,j];
str:=str+' '+temp;
end;
Memo1.Lines.Add(str);
end;
if ExcelApplication1.Visible[0]<>true then
ExcelApplication1.Quit;
ExcelWorksheet1.Disconnect;
ExcelWorkbook1.Disconnect;
ExcelApplication1.Disconnect;
end;可是这样的速度有点慢,不知道该怎样改进,是否不应该用
ExcelApplication1.Workbooks.Open(...);呢?我只需要取数据,并不用打开Excel。另外问一下:OleContainer有什么用?是怎样用的?谢谢
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货