谢谢!给段代码,非常感谢!

解决方案 »

  1.   

    还有在Delphi中,对Excel常用的有哪些操作?
    能有针对性的给段代码吗?
      

  2.   

    http://community.csdn.net/Expert/topic/3568/3568549.xml?temp=.9757654
      

  3.   

    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;
      

  4.   

    回复人: gg961681(Cashier.cn) ( ) 信誉:100  2004-11-19 15:23:00  得分: 0  
     
     
       真是非常感谢两位高人的指点。
    还是好心人多啊!
    大家快来帮帮我啊!
      
     
    ==============================
    不可以吗?这个是我以前程序写的,
    发了多少次了
    呵呵,
    range:=asheet.range[asheet.cells[1,1],asheet.cells[1,10]];就是说选择第一行的,第一列到第10列
    range.merge;//合并单元格
    range.HorizontalAlignment:=xlCenter;//居中