delphi 与 excel 编程!(急!!!!!!!!!!!)
我用delphi编程,将excel的数据写入到delphi的stringgrid中,代码如下:
form1.OpenDialog1.Execute;
try
form1.ExcelApplication1.Connect;
except
showmessage('no excel');
abort;
end;
form1.ExcelApplication1.Visible[0]:=true;
form1.ExcelApplication1.Caption:='weilig';
try
form1.ExcelApplication1.Workbooks.Open(form1.OpenDialog1.FileName,null,null,null,null,null,null,null,null,null,null,null,null,0);
except
form1.ExcelApplication1.Disconnect;
form1.ExcelApplication1.Quit;
exit;
end;
form1.ExcelWorkbook1.ConnectTo(form1.ExcelApplication1.Workbooks[1]);
form1.ExcelWorksheet1.ConnectTo(form1.ExcelApplication1.Worksheets[1]as _worksheet);
for i:=1 to 1000 do//最大取值1000
for j:=1 to 6 do
begin
* if trim(form1.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
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
我是用星号的那一行来控制是否退出程序的,但是如果excel表中的那行没有时就是if语句为false时,却会发生错误,系统会因为类型转换出错而报错!到底是什么问题,怎样解决呀?各位大哥help!
问题点数:20、回复次数:3Top
1 楼netlib(河外孤星)回复于 2002-05-27 21:37:48 得分 0
用Try可以完成。
要么你找找form1.excelworksheet1.cells下有没有count或itemcount类似的属性。Top
2 楼lxpbuaa(桂枝香在故国晚秋)回复于 2002-05-27 21:54:13 得分 20
将你最后一段改为:
var Col,Row: Integer;
begin
for Row := 1 to ExcelWorksheet1.Cells.Row do
for Col := 1 to ExcelWorksheet1.Cells.Column do
begin
if Trim(ExcelWorksheet1.Cells.Item[i+1,1])<>'' then
begin
stringgrid1.rowCount:=i+1;
stringgrid1.Cells[j,i]:3DExcelWorksheet1.Cells.Item[i2B1,j];
end else
begin
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;0D
end;
end;
end;
—————————————————————————————————
MaximStr := '宠辱不惊,看庭前花开花落,去留无意;
毁誉由人,望天上云卷云舒,聚散任风。';
if Not Assigned(I) then
I := TI.Create(Nil);
I.Maxim := MaximStr;
I.Explain := '假如上述代码中出现“OA”、“3D”等字样,改为“=”或者去掉';
I.Desire := '加不加分随你';
—————————————————————————————————
Top
3 楼candy_wang(阳光)回复于 2002-05-28 21:44:11 得分 0
没有itemcount,colcount这些普遍属性,而且如果用上面的ExcelWorksheet1.Cells.Row 的方法,会因为row属性返回的是range值,无法和integer值变换而出错!到底怎办呀?高手们帮忙呀!Top




