部分代码参考优快云网站上的帖子!
procedure TForm1.BitBtn1Click(Sender: TObject);
var
ExcelWorksheet: TExcelWorksheet;
ExcelApplication: TExcelApplication;
ExcelWorkbook: TExcelWorkbook;
i, row, column: integer;
x1,x2,y1,y2 : integer;
begin
x1 := 1;
y1 := 2;
column := 1;
ExcelApplication := TExcelApplication.Create(Application);
ExcelWorksheet := TExcelWorksheet.Create(Application);
ExcelWorkbook := TExcelWorkbook.Create(Application);
Try
ExcelApplication.Connect;
Except
ShowMessage('Error!');
End;
ExcelApplication.Visible[0] := True;
ExcelApplication.Caption := 'Excel Application';
ExcelApplication.Workbooks.Add(Null, 0);
ExcelWorkbook.ConnectTo(ExcelApplication.Workbooks[1]);
ExcelWorksheet.ConnectTo(ExcelWorkbook.Worksheets[1] as _Worksheet);
row := 3;
ExcelWorksheet.Cells.Item[1, 1] := 'XXXXX'; //标题设置
ExcelWorksheet.Range[ExcelWorksheet.Cells.Item[1,1],
ExcelWorksheet.Cells.Item[1,2]].Merge(0);
ExcelWorksheet.Cells.Item[1,1].HorizontalAlignment:=xlCenter;
for i:=1 to DBGrid1.Columns.Count do
begin
ExcelWorksheet.Cells.Item[2, i] := DBGrid1.Columns.Items[i-1].FieldName;
end;
While Not (DBGrid1.DataSource.DataSet.Eof) do
begin
column := 1;
for i := 1 to DBGrid1.Columns.Count do
begin
ExcelWorksheet.Cells.Item[row, column] := DBGrid1.DataSource.DataSet.fields[i - 1].AsString;
column := column + 1;
end;
DBGrid1.DataSource.DataSet.Next;
row := row + 1;
end;
y2 := row-1;
x2 := column-1;
//数据内容设置
ExcelWorksheet.Range[ExcelWorksheet.Cells.Item[y1,x1],
ExcelWorksheet.Cells.Item[y2,x2]].Font.Name := '宋体';
ExcelWorksheet.Range[ExcelWorksheet.Cells.Item[y1,x1],
ExcelWorksheet.Cells.Item[y2,x2]].Font.Size := 10;
ExcelWorksheet.Range[ExcelWorksheet.Cells.Item[y1-1,x1],
ExcelWorksheet.Cells.Item[y2,x2]].Borders.Color := clBlack;
ExcelWorksheet.Range[ExcelWorksheet.Cells.Item[y1-1,x1],
ExcelWorksheet.Cells.Item[y2,x2]].Borders.LineStyle := xlContinuous;
ExcelWorksheet.Cells.Item[1,1].Font.Name := '宋体'; //标题字体设置
ExcelWorksheet.Cells.Item[1,1].Font.Size := 12;
ExcelWorksheet.Cells.Item[1,1].Font.Bold := True;
ExcelApplication.Disconnect;
ExcelApplication.Free;
ExcelWorksheet.Free;
ExcelWorkbook.Free;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
var
ExcelWorksheet: TExcelWorksheet;
ExcelApplication: TExcelApplication;
ExcelWorkbook: TExcelWorkbook;
i, row, column: integer;
x1,x2,y1,y2 : integer;
begin
x1 := 1;
y1 := 2;
column := 1;
ExcelApplication := TExcelApplication.Create(Application);
ExcelWorksheet := TExcelWorksheet.Create(Application);
ExcelWorkbook := TExcelWorkbook.Create(Application);
Try
ExcelApplication.Connect;
Except
ShowMessage('Error!');
End;
ExcelApplication.Visible[0] := True;
ExcelApplication.Caption := 'Excel Application';
ExcelApplication.Workbooks.Add(Null, 0);
ExcelWorkbook.ConnectTo(ExcelApplication.Workbooks[1]);
ExcelWorksheet.ConnectTo(ExcelWorkbook.Worksheets[1] as _Worksheet);
row := 3;
ExcelWorksheet.Cells.Item[1, 1] := 'XXXXX'; //标题设置
ExcelWorksheet.Range[ExcelWorksheet.Cells.Item[1,1],
ExcelWorksheet.Cells.Item[1,2]].Merge(0);
ExcelWorksheet.Cells.Item[1,1].HorizontalAlignment:=xlCenter;
for i:=1 to DBGrid1.Columns.Count do
begin
ExcelWorksheet.Cells.Item[2, i] := DBGrid1.Columns.Items[i-1].FieldName;
end;
While Not (DBGrid1.DataSource.DataSet.Eof) do
begin
column := 1;
for i := 1 to DBGrid1.Columns.Count do
begin
ExcelWorksheet.Cells.Item[row, column] := DBGrid1.DataSource.DataSet.fields[i - 1].AsString;
column := column + 1;
end;
DBGrid1.DataSource.DataSet.Next;
row := row + 1;
end;
y2 := row-1;
x2 := column-1;
//数据内容设置
ExcelWorksheet.Range[ExcelWorksheet.Cells.Item[y1,x1],
ExcelWorksheet.Cells.Item[y2,x2]].Font.Name := '宋体';
ExcelWorksheet.Range[ExcelWorksheet.Cells.Item[y1,x1],
ExcelWorksheet.Cells.Item[y2,x2]].Font.Size := 10;
ExcelWorksheet.Range[ExcelWorksheet.Cells.Item[y1-1,x1],
ExcelWorksheet.Cells.Item[y2,x2]].Borders.Color := clBlack;
ExcelWorksheet.Range[ExcelWorksheet.Cells.Item[y1-1,x1],
ExcelWorksheet.Cells.Item[y2,x2]].Borders.LineStyle := xlContinuous;
ExcelWorksheet.Cells.Item[1,1].Font.Name := '宋体'; //标题字体设置
ExcelWorksheet.Cells.Item[1,1].Font.Size := 12;
ExcelWorksheet.Cells.Item[1,1].Font.Bold := True;
ExcelApplication.Disconnect;
ExcelApplication.Free;
ExcelWorksheet.Free;
ExcelWorkbook.Free;
end;