Bạn có thể tham khảo tool viết bằng delphi XE6 như file đính kèm,
Dùng thư viện: XLSSpreadSheet
Code:
procedure TForm2.Button1Click(Sender: TObject);
var
c,r,r1,l:Integer;
Loaitokhai,Mau,Ky,songaynopquahan,_sFileName:string;
begin
XLSSpreadSheet1.Clear;
if OpenDialog1.Execute then
begin
_sFileName:=OpenDialog1.FileName;
end
else Exit;
XLSSpreadSheet1.Filename := _sFileName;
XLSSpreadSheet1.Read;
Application.ProcessMessages;
c:=0;
r:=1;
_sFileName:='';
while r<=XLSSpreadSheet1.XLS.Sheets[0].LastRow do
begin
c:=0;
Loaitokhai:=XLSSpreadSheet1.XLS.Sheets[0].AsString[4,r];
Mau:=XLSSpreadSheet1.XLS.Sheets[0].AsString[5,r];
Ky:=XLSSpreadSheet1.XLS.Sheets[0].AsString[6,r];
songaynopquahan:=XLSSpreadSheet1.XLS.Sheets[0].AsString[9,r];
if (Loaitokhai<>'')and(Mau<>'')and(Ky<>'')and(songaynopquahan<>'') then
begin
_sFileName:=_sFileName+' Tờ khai '+Loaitokhai+' (Mẫu '+Mau+') kỳ '+Ky+' chậm '+songaynopquahan+' ngày, ';
for r1 := r+1 to XLSSpreadSheet1.XLS.Sheets[0].LastRow do
begin
if (Loaitokhai=XLSSpreadSheet1.XLS.Sheets[0].AsString[4,r1]) then
begin
Ky:=XLSSpreadSheet1.XLS.Sheets[0].AsString[6,r1];
songaynopquahan:=XLSSpreadSheet1.XLS.Sheets[0].AsString[9,r1];
_sFileName:=_sFileName+' kỳ '+Ky+' chậm '+songaynopquahan+'ngày, ';
end
else if Loaitokhai<>XLSSpreadSheet1.XLS.Sheets[0].AsString[4,r1] then
begin
r:=r1-1;
Break;
end;
end;
end;
Inc(r);
end;
Memo1.Lines.Add(_sFileName);
XLSSpreadSheet1.InvalidateSheet;
Application.ProcessMessages;
end;