自定义个函数读取excel文档工作表5放到listbox中,通过读取的数据再找对对应0-4工作表的数放到label中,在设置函数变量时不知输出变量要怎么设,如想取fpas,fpbeg,fpend,fdan....等数,excel表5好下:
function Tmain.XlsRandValue1(const lblsc: TLabel;const list:TListBox; shetidx, p, pct,sz: Integer): Integer ; pascal;
var
i:Integer;
temp:string;
begin
xls.Filename:='E:\data\数据.xlsx';
xls := TXLSReadWriteII5.Create(nil);
try
xls.Clear;
xls.Read;
fpas:=StrToInt(xls.Sheets[5].AsString[1, pct]);
fpbeg:=StrToInt(xls.Sheets[5].AsString[2, pct]);
fpend:=StrToInt(xls.Sheets[5].AsString[3, pct]);
// fdan:=StrToInt(xls.Sheets[5].AsString[4, pct]);
// fdan1:=StrToInt(xls.Sheets[5].AsString[5, pct]);
// fdan2:=StrToInt(xls.Sheets[5].AsString[6, pct]);
// fdan3:=StrToInt(xls.Sheets[5].AsString[7, pct]);
// fdan4:=StrToInt(xls.Sheets[5].AsString[8, pct]);
for yr := 0 to sz - 1 do
begin
temp := '第' + IntToStr(yr + 1) + '组 ' + '第' + xls.Sheets[5].AsString[1, yr + 1] + '排,' + ' 开始页码:' + xls.Sheets[5].AsString[2, yr + 1] + ', 结束页码:' + xls.Sheets[5].AsString[3, yr + 1];
list.Items.Add(temp);
end;
p:=fpbeg;
for i := 1 to 5 do
begin
TLabel(main.FindComponent('lblsc' + inttostr(i))).Caption := xls.Sheets[shetidx].AsFmtString[i - 1, p];
end;
finally
xls.Free;
end;
end;
procedure Tmain.btn1Click(Sender: TObject);
begin
if lbledt1.Text='' then
begin
showMessage('请设置组数!');
lbledt1.SetFocus;
Abort;
end;
if rg1.ItemIndex=-1 then
begin
showMessage('请设置册数!');
lbledt2.SetFocus;
Abort;
end;
sz:=StrToInt(lbledt1.Text);
shetidx:=StrTOInt(STR2);
pct:=1;
XlsRandValue1(lblsc1,lst1,shetidx,p,pct,sz);
lbl6.Caption:='第'+fpas+'组,'+'当前页码:'+fpbeg;
end;