下面的程序是把DBGRID的内容转到EXCEL中,你的要求都可以实现procedure Tfrmsunycodeuser.BitBtn1Click(Sender: TObject);
var
MsExcel: oleVariant;
ExcelSheet1: Variant;
i:integer;
Bm: TBookStr;
row: integer; //Excel行
begin
  try
  MsExcel:=CreateOleObject('Excel.Application');
  except
  MessageBox(Handle,'初始化Excel错误。可能没有安装EXCEL',
          'error',MB_OK +MB_ICONERROR);
  exit;
  end;  Screen.Cursor:=crHourGlass;
  MsExcel.Visible:=False;
  MsExcel.WorkBooks.Add;
  ExcelSheet1:= MsExcel.WorkBooks[1].WorkSheets[1];
  Bm := dbgrid1.DataSource.DataSet.Book;
  dbgrid1.DataSource.DataSet.first;
  dbgrid1.DataSource.DataSet.DisableControls;
  try
  for i:=0 to dbgrid1.Columns.Count -1 do
  begin
    if dbGrid1.Columns[I].Visible then
    ExcelSheet1.Cells.Item[1,i+1]:=dbgrid1.Columns[i].Title.Caption;  //标题
  end;
  row:=2;
  while not dbgrid1.DataSource.DataSet.Eof do
  begin
    for I := 0 to dbGrid1.Columns.Count - 1 do
          begin
              if dbGrid1.Columns[I].Visible then
                ExcelSheet1.Cells[Row, i+1] := dbGrid1.Columns[I].Field.DisplayText;
      end;
      row:=row+1;
      dbgrid1.DataSource.DataSet.Next;
  end;
  
  MsExcel.Visible:=True;
  Screen.Cursor:=crDefault;
  finally
      dbgrid1.DataSource.DataSet.enableControls;
      dbgrid1.DataSource.DataSet.Book:=bm;
  end;
end;   
--------------------------------------------------------------------------------
 

解决方案 »

  1.   

    1.启动Excel   在Uses中加入Comobj; var 
     v:Variant; 
    begin 
     v:=CreateOleobject(‘Excel.Application’); 
     v.Visible:=true; 
    end;   其中,Comobj中包含了用来检索OLE的对象和向其传发命令的例程,第一行代码启动Excel,执行后Excel会在内存中出现,因此第二行代码使之可见。 2.关闭Excel   在创建了Excel Application对象后,调用它的Quit方法完成关闭事件。 If not varIsEmpty(v) then v.quit;   如果需要在关闭前确定是否存盘,加入: v.DiaplayAlert:=true; //确定存盘 
    v.DiaplayAlert:=false;//不存盘,直接退出 3.加入工作表及对其表格内容的操作 var 
     Sheet: Variant; 
    begin 
     v.workbook.add; 
     v.Workbooks.Add; 
     v.Workbooks[1].WorkSheets[1].Name := '数据录入'; 
     Sheet:= v.Workbooks[1].WorkSheets['数据录入']; 
     Sheet.Cells[1,1] :='试验'; Label1.Caption:=Sheet.Cells[1,1]; 
    End;   Sheet对象是很多页的集合,其他的Workbooks是工作薄的集合,WorkSheets对象是工作表的集合,Charts对象是图表的集合。 4.格式的设置 var 
     Range: Variant; 
    begin 
     Range := v.Workbooks[1].WorkSheets['数据录入'].Range['A2:M2’]; //单元格从A2到M2 Range.Merge; //合并单元格 
     Range.Rows.RowHeight := 20; //设置行高 
     Range.Borders.LineStyle := 1; //加边框 
     Range.Columns[2].ColumnWidth := 12; // 设置列宽 
     Range.FormulaR1C1 := '标题'; 
     Range.HorizontalAlignment := xlCenter; //水平对齐方式  
     Range.VerticalAlignment := xlCenter; //垂直对齐方式 
     Range.Characters.Font.Name := '宋体'; //字体 
     Range.Characters.Font.FontStyle := '加粗'; 
     Range.Characters.Font.Size := 12; 
     Range.Characters.Font.OutlineFont := False; //是否有下划线 
     Range.Characters.Font.ColorIndex := xlAutomatic; //颜色 
    end;   其他的属性可以察看MSDN或者其他资料。   试试吧。提醒你,你的机子装了Excel没有……