读取的部分已经测试成功type myrec = record s: string; i: integer; d: double; end; tmyarray = array[0..200] of myrec; var Starttime: tTime; myarray: tmyarray; i, : integer; s: string; begin with xls1 do begin Filename := xls.xls'; Read; while not (Sheets[0].AsfmtString[0, row] = '99999') do begin //用99999作为结尾 for i := 0 to 200 do if myarray[i].s = Sheets[0].AsfmtString[2, row] then begin myarray[i].i := myarray[i].i + 1; myarray[i].d := myarray[i].d + Sheets[0].Asfloat[3, row]; break; end else if myarray[i].s = '' then begin myarray[i].s := Sheets[0].AsfmtString[2, row]; myarray[i].i := 1; myarray[i].d := xls1.Sheets[0].Asfloat[3, row]; break; end; row := row + 1; end; end; end;文件格式为20030626 000 61130104 1358.87 20030626 001 66666666 2462.42 20030626 002 61140807 2345.24 20030626 003 61130104 2000.87 99999
comobj;
var
pc_i:integer;
xlapp,sheet: variant;
WBK: OleVariant;
begin
xlapp := createoleobject('excel.application');
if Trim(Edit1.Text)='' then
begin
Application.MessageBox('文件名不能为空','警告',MB_OK);
Exit;
end;
WBK := xlapp.workbooks.Open(Edit1.Text);
sheet := xlapp.workbooks[1].worksheets['sheet1'];
pc_i:=1;
Edit2.Text := sheet.cells[pc_i,1];
WBK.Close(SaveChanges := True);
xlapp.Quit;
end;
s: string;
i: integer;
d: double;
end;
var A: array[0..200] of integer;用这样的方法不知道行不行,刚起床,还没试
有个:将数据直接送入Excel的控件
看能否解决你的问题。
s: string;
i: integer;
d: double;
end;
tmyarray = array[0..200] of myrec;
var Starttime: tTime;
myarray: tmyarray;
i, : integer;
s: string;
begin
with xls1 do begin
Filename := xls.xls';
Read;
while not (Sheets[0].AsfmtString[0, row] = '99999') do begin //用99999作为结尾
for i := 0 to 200 do
if myarray[i].s = Sheets[0].AsfmtString[2, row] then begin
myarray[i].i := myarray[i].i + 1;
myarray[i].d := myarray[i].d + Sheets[0].Asfloat[3, row];
break;
end
else if myarray[i].s = '' then begin
myarray[i].s := Sheets[0].AsfmtString[2, row];
myarray[i].i := 1;
myarray[i].d := xls1.Sheets[0].Asfloat[3, row];
break;
end;
row := row + 1;
end;
end;
end;文件格式为20030626 000 61130104 1358.87
20030626 001 66666666 2462.42
20030626 002 61140807 2345.24
20030626 003 61130104 2000.87
99999