请大侠指点:如何使指定的字段导出到EXCEL表中? 例如T表有a,b,c,d,e,f等字段,现在我想要a,b,c三个字段导出EXCEL,字段是自己选择的,现在的问题是ADOQuery对字段不知道怎么处理(增加,删除),请大家给点思路,多谢!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 procedure TFrmPrintReport.DataToExcel;var I, J, K, Count: integer; S: string;begin Panel2.Visible :=true; Animate1.Active :=true; //创建Ole对象 try ExcelApplication := CreateOleObject('Excel.Application'); except ExcelApplication := Null; Panel2.Visible :=False; Animate1.Active :=False; MSShow('请先安装MicrSoft Office Excel97/2000。'); Exit; end; ExcelApplication.Visible := False; try ExcelName:=ExcelApplication.WorkBooks.Add(ExtractFilePath(Application.ExeName)+'ReportModal\Modal.xls'); ExcelSheet := ExcelName.Worksheets[1]; except Panel2.Visible :=False; Animate1.Active :=False; MSShow('没有找到报表模板,请保证Modal.xls在程序文件的ReportModal文件夹内!'); Abort; end; try J := 11; ADOQuery1.First; while not ADOQuery1.eof do begin ExcelSheet.cells(J,1) := ADOQuery1.RecNo; ExcelSheet.cells(J,2) := ADOQuery1.fieldbyname('OriHB').Value; ExcelSheet.cells(j,3) := Trim(ADOQuery1.FieldByName('Camer').AsString ); ExcelSheet.cells(j,4) := Trim(ADOQuery1.FieldByName('FlightNo').AsString); ExcelSheet.cells(j,5) := Trim(ADOQuery1.FieldByName('SurName').AsString); ExcelSheet.cells(j,6) := Trim(ADOQuery1.FieldByName('GivenName').AsString); ExcelSheet.cells(j,7) := Trim(ADOQuery1.FieldByName('PassportNo').AsString); ExcelSheet.cells(j,14) := Trim(ADOQuery1.FieldByName('Weight').AsString); inc(J); ADOQuery1.next; end; //合并单元格 Ranges:=ExcelSheet.range['A10: P' + inttostr(J -1)]; //画线 Ranges.Borders.LineStyle := 1; except MsShow('在往EXCEL写入数据时出现错误,请重新发送Email!'); Panel2.Visible :=False; Animate1.Active :=False; abort; end; try //保存数据 ExcelName.SaveAs(MDReportDir+'\'+ReportName); except MSShow('无法保存数据'); Panel2.Visible :=False; Animate1.Active :=False; abort; end; //全部释放variant变量 ,否则Excel进程无法关闭 try ExcelName.Close; ExcelApplication.Quit; ExcelSheet :=Unassigned ; ExcelName := Unassigned; ExcelApplication:=Unassigned; Ranges :=Unassigned; except end;end; 多谢楼上的,我的意思是字段自己是可以选择并导出到EXCEL,输出的字段是根据自己的要求变化的 delphi 打开工程提示XXXX class not found 如何用DELPHI 把DBF的数据导入到ACCESS 操作控件的疑问--在线等待 问个VB的~~ delphi里面怎样把一个字符串如“ABC",也许比较长,快速地变成CBA,也就是倒过来 请教:如何禁止局域网中某些计算机上网? 如何处理CustomPanel的重画 TObject和integer之间的转换问题 关于判断用户输入的是不是数字型数据 关于Delphi+Excel获取行号的问题 将15万多条的视图数据每天保存,如何实现好,在线等,TKS! 用摄像头拍A4纸,边缘变形,请问有什么方法解决?
var
I, J, K, Count: integer;
S: string;
begin
Panel2.Visible :=true;
Animate1.Active :=true; //创建Ole对象
try
ExcelApplication := CreateOleObject('Excel.Application');
except
ExcelApplication := Null;
Panel2.Visible :=False;
Animate1.Active :=False;
MSShow('请先安装MicrSoft Office Excel97/2000。');
Exit;
end; ExcelApplication.Visible := False;
try
ExcelName:=ExcelApplication.WorkBooks.Add(ExtractFilePath(Application.ExeName)+'ReportModal\Modal.xls');
ExcelSheet := ExcelName.Worksheets[1];
except
Panel2.Visible :=False;
Animate1.Active :=False;
MSShow('没有找到报表模板,请保证Modal.xls在程序文件的ReportModal文件夹内!');
Abort;
end; try
J := 11; ADOQuery1.First;
while not ADOQuery1.eof do
begin
ExcelSheet.cells(J,1) := ADOQuery1.RecNo;
ExcelSheet.cells(J,2) := ADOQuery1.fieldbyname('OriHB').Value;
ExcelSheet.cells(j,3) := Trim(ADOQuery1.FieldByName('Camer').AsString );
ExcelSheet.cells(j,4) := Trim(ADOQuery1.FieldByName('FlightNo').AsString);
ExcelSheet.cells(j,5) := Trim(ADOQuery1.FieldByName('SurName').AsString);
ExcelSheet.cells(j,6) := Trim(ADOQuery1.FieldByName('GivenName').AsString);
ExcelSheet.cells(j,7) := Trim(ADOQuery1.FieldByName('PassportNo').AsString);
ExcelSheet.cells(j,14) := Trim(ADOQuery1.FieldByName('Weight').AsString);
inc(J);
ADOQuery1.next;
end; //合并单元格
Ranges:=ExcelSheet.range['A10: P' + inttostr(J -1)];
//画线
Ranges.Borders.LineStyle := 1;
except
MsShow('在往EXCEL写入数据时出现错误,请重新发送Email!');
Panel2.Visible :=False;
Animate1.Active :=False;
abort;
end; try
//保存数据
ExcelName.SaveAs(MDReportDir+'\'+ReportName);
except
MSShow('无法保存数据');
Panel2.Visible :=False;
Animate1.Active :=False;
abort;
end; //全部释放variant变量 ,否则Excel进程无法关闭
try
ExcelName.Close;
ExcelApplication.Quit;
ExcelSheet :=Unassigned ;
ExcelName := Unassigned;
ExcelApplication:=Unassigned;
Ranges :=Unassigned;
except end;
end;