使用XLSReadWriteII5---导出XLS表

1、uses 加上Xc12DataStyleSheet5,便于后续加表格线:XLS.Sheets[0].Range.Items[C,R,C,R].BorderOutlineStyle:=cbsThin;
2、导出过程:

SaveDialog1.Filter:='*.xlsx';
SaveDialog1.Execute;
fn:=lowerCase(Trim(SaveDialog1.FileName));
if AnsiEndsStr('.xlsx',fn)=False then  fn:=fn+'.xlsx';
XLS:=TXLSReadWriteII5.Create(nil);
XLS.Filename:=ExtractFilePath(Application.ExeName)+'Report\表样.xlsx';
XLS.Read;
XLS.Filename:=fn;
XLS.Write;

i:=3;
while not dm.QcxB.Eof do
begin
    XLS.Sheets[0].AsString[0,i]:=IntToStr(i-2);
    XLS.Sheets[0].asstring[1,i]:=dm.QcxB.FieldByName('FNO').AsString;
    XLS.Sheets[0].asstring[2,i]:=dm.QcxB.FieldByName('Fsort').AsString;
    XLS.Sheets[0].asstring[3,i]:=dm.QcxB.FieldByName('Fname').AsString;
    XLS.Sheets[0].asstring[4,i]:=formatdateTime('YYYY-MM-DD',dm.QcxB.FieldByName('Foptime').AsDateTime);
    XLS.Sheets[0].asstring[5,i]:=formatdateTime('YYYY-MM-DD',dm.QcxB.FieldByName('Foptime5').AsDateTime);
    XLS.Sheets[0].AsString[6,i]:=dm.QcxB.FieldByName('Fdep').AsString;
    XLS.Sheets[0].AsFloat[7,i]:=dm.QcxB.FieldByName('Foval').AsCurrency;
    XLS.Sheets[0].AsString[8,i]:=dm.QcxB.FieldByName('Fndep').AsString;
    XLS.Sheets[0].AsFloat[9,i]:=dm.QcxB.FieldByName('FiVal').AsCurrency;
    dm.QcxB.Next;
    Inc(i);
end;
IC:=trim(IntToStr(i));
XLS.Sheets[0].AsString[1,i]:='合计';
XLS.Sheets[0].AsFormula[7,i]:='SUM(H3:H'+IC+')';
XLS.Sheets[0].AsFormula[9,i]:='SUM(J3:J'+IC+')';
XLS.Calculate;

for R := 3 to i do
    for C := 0 to 9 do XLS.Sheets[0].Range.Items[C,R,C,R].BorderOutlineStyle:=cbsThin;
XLS.Write;
XLS.Free;
Screen.Cursor:=crDefault;
showMEssage('---导出完毕!---');
posted @ 2024-03-12 17:01  阳光山色_码农  阅读(244)  评论(0)    收藏  举报