procedure TFrmMain.WriteExcel(AdsData: TADODataSet; sName, Title: string); var ExcelApplication1: TExcelApplication; ExcelWorksheet1: TExcelWorksheet; ExcelWorkbook1: TExcelWorkbook; i, j: integer; filename: string; begin filename := concat(extractfilepath(application.exename), sName, ’.xls’); try ExcelApplication1 := TExcelApplication.Create(Application); ExcelWorksheet1 := TExcelWorksheet.Create(Application); ExcelWorkbook1 := TExcelWorkbook.Create(Application); ExcelApplication1.Connect; except Application.Messagebox(’Excel 没有安装!’, ’Hello’, MB_ICONERROR + mb_Ok); Abort; end; try ExcelApplication1.Workbooks.Add(EmptyParam, 0); ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]); ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _worksheet); AdsData.First; for j := 0 to AdsData.Fields.Count - 1 do begin ExcelWorksheet1.Cells.item[3, j + 1] := AdsData.Fields[j].DisplayLabel; ExcelWorksheet1.Cells.item[3, j + 1].font.size := ’10’; end; for i := 4 to AdsData.RecordCount + 3 do begin for j := 0 to AdsData.Fields.Count - 1 do begin ExcelWorksheet1.Cells.item[i, j + 1] := AdsData.Fields[j].Asstring; ExcelWorksheet1.Cells.item[i, j + 1].font.size := ’10’; end; AdsData.Next; end; ExcelWorksheet1.Columns.AutoFit; ExcelWorksheet1.Cells.item[1, 2] := Title; ExcelWorksheet1.Cells.Item[1, 2].font.size := ’14’; ExcelWorksheet1.SaveAs(filename); Application.Messagebox(pchar(’数据成功导出’ + filename), ’Hello’, mb_Ok); finally ExcelApplication1.Disconnect; ExcelApplication1.Quit; ExcelApplication1.Free; ExcelWorksheet1.Free; ExcelWorkbook1.Free; end; end;
我给你一段我的程序阿!! procedure TForm7.Button5Click(Sender: TObject); var Range:excelrange; i,j,k:integer; letter:char; begin if datasource1.DataSet=nil then showmessage('没有内容可以导入Excel!') else begin try try excelapplication1.Connect; except showmessage('您的机器没有安装Excel!'); abort; end; excelapplication1.Visible[0]:=true; excelapplication1.Caption:='送修内容'; excelapplication1.Workbooks.Add(NUll,0); k:=datasource1.DataSet.FieldCount-4; if datasource1.DataSet.Fields[k].DisplayLabel='COUNT OF 局名' then k:=4 else k:=0; i:=65+datasource1.DataSet.FieldCount-1-k; letter:=char(i); range:=excelapplication1.Range['A1',letter+'1']; for i:=0 to datasource1.DataSet.FieldCount-1-k do begin range.Value:=datasource1.DataSet.Fields[i].DisplayLabel; range:=range.Next; end; if k=4 then begin range.Value:='数量'; dec(k); end; datasource1.DataSet.First; for i:=1 to datasource1.DataSet.RecordCount do begin range:=excelapplication1.Range['A'+inttostr(i+1),letter+inttostr(i+1)]; for j:=0 to datasource1.DataSet.FieldCount-1-k do begin range.Value:=datasource1.DataSet.Fields[j].AsString ; range:=range.Next; end; datasource1.DataSet.Next; end; except excelapplication1.Disconnect; end; end; end;
怎么定位那个专题啊?
var
ExcelApplication1: TExcelApplication;
ExcelWorksheet1: TExcelWorksheet;
ExcelWorkbook1: TExcelWorkbook;
i, j: integer;
filename: string;
begin
filename := concat(extractfilepath(application.exename), sName, ’.xls’);
try
ExcelApplication1 := TExcelApplication.Create(Application);
ExcelWorksheet1 := TExcelWorksheet.Create(Application);
ExcelWorkbook1 := TExcelWorkbook.Create(Application);
ExcelApplication1.Connect;
except
Application.Messagebox(’Excel 没有安装!’, ’Hello’, MB_ICONERROR + mb_Ok);
Abort;
end;
try
ExcelApplication1.Workbooks.Add(EmptyParam, 0);
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _worksheet);
AdsData.First;
for j := 0 to AdsData.Fields.Count - 1 do
begin
ExcelWorksheet1.Cells.item[3, j + 1] := AdsData.Fields[j].DisplayLabel;
ExcelWorksheet1.Cells.item[3, j + 1].font.size := ’10’;
end;
for i := 4 to AdsData.RecordCount + 3 do
begin
for j := 0 to AdsData.Fields.Count - 1 do
begin
ExcelWorksheet1.Cells.item[i, j + 1] :=
AdsData.Fields[j].Asstring;
ExcelWorksheet1.Cells.item[i, j + 1].font.size := ’10’;
end;
AdsData.Next;
end;
ExcelWorksheet1.Columns.AutoFit;
ExcelWorksheet1.Cells.item[1, 2] := Title;
ExcelWorksheet1.Cells.Item[1, 2].font.size := ’14’;
ExcelWorksheet1.SaveAs(filename);
Application.Messagebox(pchar(’数据成功导出’ + filename), ’Hello’,
mb_Ok);
finally
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
ExcelApplication1.Free;
ExcelWorksheet1.Free;
ExcelWorkbook1.Free;
end;
end;
procedure TForm7.Button5Click(Sender: TObject);
var
Range:excelrange;
i,j,k:integer;
letter:char;
begin
if datasource1.DataSet=nil then showmessage('没有内容可以导入Excel!')
else begin
try
try
excelapplication1.Connect;
except
showmessage('您的机器没有安装Excel!');
abort;
end;
excelapplication1.Visible[0]:=true;
excelapplication1.Caption:='送修内容';
excelapplication1.Workbooks.Add(NUll,0); k:=datasource1.DataSet.FieldCount-4; if datasource1.DataSet.Fields[k].DisplayLabel='COUNT OF 局名' then
k:=4
else k:=0; i:=65+datasource1.DataSet.FieldCount-1-k;
letter:=char(i); range:=excelapplication1.Range['A1',letter+'1']; for i:=0 to datasource1.DataSet.FieldCount-1-k do
begin
range.Value:=datasource1.DataSet.Fields[i].DisplayLabel;
range:=range.Next;
end;
if k=4 then begin
range.Value:='数量';
dec(k);
end;
datasource1.DataSet.First; for i:=1 to datasource1.DataSet.RecordCount do begin
range:=excelapplication1.Range['A'+inttostr(i+1),letter+inttostr(i+1)];
for j:=0 to datasource1.DataSet.FieldCount-1-k do begin
range.Value:=datasource1.DataSet.Fields[j].AsString ;
range:=range.Next;
end;
datasource1.DataSet.Next;
end; except
excelapplication1.Disconnect;
end; end;
end;