将数据导成EXCEL有三个问题 不知道如何处理:
1:如何合并一行的单元格
2:如何合并一行的某几个单元格
3:如何把EXCEL的格子显示成黑色(默认是灰色的)

解决方案 »

  1.   

    http://topic.csdn.net/t/20030123/21/1388062.html以前社区的一个帖子
      

  2.   


    var  
      asheet,range:variant;  
      i,K,M,N,y   :integer;  
      ls_FileName:string;  
      tsList     :TStringList;  
      s               :string;  
      begin  
      ExcelApplication1.Visible[0]:=True;  
      ExcelApplication1.Workbooks.Add(xlWBATWorksheet,0);  
      asheet:=ExcelApplication1.Worksheets.Item[1];  
      i:=DBGrid1.DataSource.DataSet.FieldCount;  
      range:=asheet.range[asheet.cells[1,1],asheet.cells[1,i]];  
      range.merge;//合并单元格  
      range.HorizontalAlignment:=xlCenter;//居中  
      range.Font.Size:=14;//设置字体大小  
      range.value:=Trim(EdtTiTle.Text);//赋值  
      for   i:=0   to   DBGrid1.Columns.Count-1   do  
      asheet.cells[2,i+1].value:=Trim(DBGrid1.Columns.Items[i].Title.Caption);  
      K:=1;  
      N:=DBGrid1.Columns.count;  
      I:=DBGrid1.DataSource.DataSet.RecordCount;  
      tsList:=TStringList.Create;  
      try  
      DBGrid1.DataSource.DataSet.first;  
      while   not   DBGrid1.DataSource.DataSet.Eof   do  
      begin  
                                              s:='';  
                                              for   y:=0   to   n-1   do  
                                              begin  
                                                      s:=s+Trim(DBGrid1.DataSource.DataSet.Fields[y].AsString)+#9;  
                                                      Application.ProcessMessages;  
                                              end;  
                                              tsList.Add(s);//读取到STRINGLIST  
                                              DBGrid1.DataSource.DataSet.next;  
                                      end;  
                              Clipboard.AsText:=tsList.Text;//复制到剪贴板  
              finally  
                      tsList.Free;  
              end;  
              ExcelApplication1.Disconnect;  
              asheet.cells[3,1].select;  
              aSheet.Paste;//粘贴  
              range:=asheet.range[asheet.cells[2,1],asheet.cells[DBGrid1.DataSource.DataSet.RecordCount+2,DBGrid1.DataSource.DataSet.FieldCount]];  
              range.select;//选择列  
              range.borders.linestyle:=1;//画线  
              for   i:=1   to   DBGrid1.DataSource.DataSet.FieldCount   do   begin  
              range:=asheet.range[asheet.cells[1,i],asheet.cells[DBGrid1.DataSource.DataSet.RecordCount,i]];  
              range.EntireColumn.AutoFit;//自适应  
              end;  
              Screen.Cursor:=crDefault;  
              ExcelApplication1.Disconnect;  
              aSheet:=Unassigned;    
              DBGrid1.DataSource.DataSet.First;  
      end;