delphi 把数据导入Excel中,高手伸伸手1.设列宽语句:ExcelWorksheetDN.Columns[1].ColumnsWidth:= 8.5;
  时出错:
[Error] DataNetCTangImpl.pas(2453): Class does not have a  default property。
 2.单元格怎么 居中,
 3.怎么实现对齐方式为 自动分行?
 4.合并单元格。

解决方案 »

  1.   

    1、xlapp.Columns("C:C").ColumnWidth = 10.75
    2、xlapp.Range("E1").Select
       xlapp.Selection.HorizontalAlignment := xlCenter
    3、   xlapp.Range("D5").Select
        xlapp.Selection.HorizontalAlignment = xlRight
          xlapp.Selection.VerticalAlignment = xlCenter
    xlapp.Selection.WrapText = True  //自动换行
    4、xlapp.Range("E8:E9").Select;
    xlapp.Selection.MergeCells = True;
      

  2.   

    楼上的老大,("C:C"),("E1"),还有("E8:E9")都是什么意思呀?
    对Excel 的操作有什么什么资料参考的,比如函数库什么的?
      

  3.   

    sheet.cells[1,5].horizontalalignment:=5;
    以上是当前单元格居中。左对齐是3,右是4
      

  4.   

    对区域操作做不到,老提示Class does not have a  default property。错误1.设列宽语句
    4.合并单元格。
    还没解决,大家帮帮忙啊
      

  5.   

    excel帮助中有vba的详细文档,可以参考
      

  6.   

    目前最好的控件
    ftp://202.117.210.28/file/qexportfull.zip
      

  7.   

    在EXCEL使用宏,察看宏源码,不就知道了
      

  8.   

    帮你转一下:
    全面控制 Excel
    首先创建 Excel 对象,使用ComObj:
    var ExcelID: Variant;
     ExcelID := CreateOleObject( 'Excel.Application' );
    1) 显示当前窗口:
    ExcelID.Visible := True;
    2) 更改 Excel 标题栏:
    ExcelID.Caption := '应用程序调用 Microsoft Excel';
    3) 添加新工作簿:
      ExcelID.WorkBooks.Add;
    4) 打开已存在的工作簿:
      ExcelID.WorkBooks.Open( 'C:\Excel\Demo.xls' );
    5) 设置第2个工作表为活动工作表:
      ExcelID.WorkSheets[2].Activate;  
     或 ExcelID.WorkSheets[ 'Sheet2' ].Activate;
    6) 给单元格赋值:
     ExcelID.Cells[1,4].Value := '第一行第四列';
    7) 设置指定列的宽度(单位:字符个数),以第一列为例:
     ExcelID.ActiveSheet.Columns[1].ColumnsWidth := 5;
    8) 设置指定行的高度(单位:磅)(1磅=0.035厘米),以第二行为例:
      ExcelID.ActiveSheet.Rows[2].RowHeight := 1/0.035; // 1厘米
    9) 在第8行之前插入分页符:
      ExcelID.WorkSheets[1].Rows[8].PageBreak := 1;
    10) 在第8列之前删除分页符:
      ExcelID.ActiveSheet.Columns[4].PageBreak := 0;
    11) 指定边框线宽度:
     ExcelID.ActiveSheet.Range[ 'B3:D4' ].Borders[2].Weight := 3;
       1-左    2-右   3-顶    4-底   5-斜( \ )     6-斜( / )
    12) 清除第一行第四列单元格公式:
     ExcelID.ActiveSheet.Cells[1,4].ClearContents;
    13) 设置第一行字体属性:
    ExcelID.ActiveSheet.Rows[1].Font.Name := '隶书';
    ExcelID.ActiveSheet.Rows[1].Font.Color  := clBlue;
    ExcelID.ActiveSheet.Rows[1].Font.Bold   := True;
    ExcelID.ActiveSheet.Rows[1].Font.UnderLine := True;
    14) 进行页面设置:
      a.页眉:
        ExcelID.ActiveSheet.PageSetup.CenterHeader := '报表演示';
      b.页脚:
        ExcelID.ActiveSheet.PageSetup.CenterFooter := '第&P页';
      c.页眉到顶端边距2cm:
        ExcelID.ActiveSheet.PageSetup.HeaderMargin := 2/0.035;
      d.页脚到底端边距3cm:
        ExcelID.ActiveSheet.PageSetup.HeaderMargin := 3/0.035;
      e.顶边距2cm:
        ExcelID.ActiveSheet.PageSetup.TopMargin := 2/0.035;
      f.底边距2cm:
        ExcelID.ActiveSheet.PageSetup.BottomMargin := 2/0.035;
      g.左边距2cm:
        ExcelID.ActiveSheet.PageSetup.LeftMargin := 2/0.035;
      h.右边距2cm:
        ExcelID.ActiveSheet.PageSetup.RightMargin := 2/0.035;
      i.页面水平居中:
        ExcelID.ActiveSheet.PageSetup.CenterHorizontally := 2/0.035;
      j.页面垂直居中:
        ExcelID.ActiveSheet.PageSetup.CenterVertically := 2/0.035;
      k.打印单元格网线:
        ExcelID.ActiveSheet.PageSetup.PrintGridLines := True;
    15) 拷贝操作:
      a.拷贝整个工作表:
        ExcelID.ActiveSheet.Used.Range.Copy;
      b.拷贝指定区域:
        ExcelID.ActiveSheet.Range[ 'A1:E2' ].Copy;
      c.从A1位置开始粘贴:
        ExcelID.ActiveSheet.Range.[ 'A1' ].PasteSpecial;
      d.从文件尾部开始粘贴:
        ExcelID.ActiveSheet.Range.PasteSpecial;
     16) 插入一行或一列:
       a. ExcelID.ActiveSheet.Rows[2].Insert;
       b. ExcelID.ActiveSheet.Columns[1].Insert;
     17) 删除一行或一列:
      a. ExcelID.ActiveSheet.Rows[2].Delete;
      b. ExcelID.ActiveSheet.Columns[1].Delete;
     18) 打印预览工作表:
      ExcelID.ActiveSheet.PrintPreview;
     19) 打印输出工作表:
      ExcelID.ActiveSheet.PrintOut;
     20) 工作表保存:
     if not ExcelID.ActiveWorkBook.Saved then
       ExcelID.ActiveSheet.PrintPreview;
     21) 工作表另存为:
      ExcelID.SaveAs( 'C:\Excel\Demo1.xls' );
     22) 放弃存盘:
     ExcelID.ActiveWorkBook.Saved := True;
     23) 关闭工作簿:
     ExcelID.WorkBooks.Close;
     24) 退出 Excel:
    ExcelID.Quit;如何在Delphi中操作Excel
    在数据库应用软件的开发过程中,经常需要把数据转换成Excel文件,让用户作进一步的数据处理。而Delphi是开发数据库应用系统的常用工具,那么,如何在Delphi中操作Excel呢? 
    我们知道,在Microsoft Office软件中有一种内嵌的编程语言VBA,它是一种宏语言,利用它,你可以编写出功能强大的代码,如打开文件、修改数据、保存数据和设置字体等。另一方
    面,Microsoft Office软件中的宏能以VBA代码的形式记录下你的操作过程。因此借助宏操作,可以很轻松地实现某一功能,并把这些代码稍作修改嵌入到你的软件中。但是VBA也存在
    一个缺点,它必须有Microsoft Office作平台,在哪里编写,必须在哪里执行。例如在Excel下编写的一段VBA代码,则它只有在Excel下才能运行。因此,笔者的方法就是把VBA代码嵌入
    到Delphi中,从而实现用Delphi操作Excel。 
      下面,我们以Delphi程序为例,说明这种调用方法: 
      Unit excel; 
      interface 
      uses 
      Windows,Messages,SysUtils,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,ComObj; 
      //ComObj是操作OLE对象的函数集 
      type TForm1 =class(TForm) 
      Button1: TButton; 
      procedure Button1Click(Sender: TObject); 
      private 
      { Private declarations } 
      public 
      { Public declarations } 
      end; 
      var 
      Form1: TForm1; 
      implementation 
      {$R *.DFM} 
      procedure TForm1.Button1Click(Sender: TObject); 
      var 
      eclApp,WorkBook:Variant; 
      //声明为OLE Automation 对象 
      xlsFileName:string;begin 
      xlsFileName:='ex.xls'; 
      try 
      //创建OLE对象Excel Application与 WorkBook 
      eclApp:=CreateOleObject('Excel.Application'); 
      WorkBook:=CreateOleobject('Excel.Sheet'); 
      except 
      ShowMessage('您的机器里未安装Microsoft Excel。'); 
      Exit; 
      end; 
      try 
      ShowMessage('下面演示:新建一个XLS文件,并写入数据,最后关闭它。'); 
      workBook:=eclApp.workBooks.Add; 
      eclApp.Cells(1 , 1):='字符型'; 
      eclApp.Cells(2 , 1):='Excel文件'; 
      eclApp.Cells(1 , 2):='Money型'; 
      eclApp.Cells(2 , 2):=10.01; 
      eclApp.Cells(1 , 3):='日期型';eclApp.Cells(2 , 3):=Date; 
      WorkBook.saveas(xlsFileName); 
      WorkBook.close; 
      ShowMessage('下面演示:打开刚创建的XLS文件,并修改其中的内容,然后,由用户决定是否保存。'); 
      WorkBook:=eclApp.workBooks.Open(xlsFileName); 
      eclApp.Cells(2 , 1):='Excel文件类型'; 
      if MessageDlg(xlsFileName+'文件已被修改,是否保存?',mtConfirmation, [mbYes, mbNo], 0) = mrYes then 
      WorkBook.save 
      else 
      workBook.Saved := True; //放弃修改 
      WorkBook.Close; 
      eclApp.Quit; 
      //退出Excel Application 
      //释放VARIANT变量 
      eclApp:=Unassigned; 
      except 
      ShowMessage('不能正确操作Excel文件。可能是该文件已被其他程序打开,或系统错误。'); 
      WorkBook.close; 
      eclApp.Quit; 
      //释放VARIANT变量 
      eclApp:=Unassigned; 
      end; 
      end; 
      end. 
      经过上述操作过程后,我们就可以很放心地将数据库中的数据转换成Excel文件了
      

  9.   

    看了上面的回复,还是有一个问题没有解决。我需要把一个column设置成右对齐,应该如何解决?
    Sheet.Columns[1].HorizontalAlignment似乎赋值不了
      

  10.   

    Sheet.Columns[2].horizontalalignment:=4;右
            Sheet.Cells[1,1].horizontalalignment:=3;居中
    5好象是填充测试过,可以使用
      

  11.   

    第N次回答:
    procedure TForm3.Excel4Click(Sender: TObject);   //将联合查询的结构转为excel表
    var       xlsFilename :string;
              eclApp,WorkBook :variant ;
              a_filedNo,i,j :integer;
    begin
              a_filedNo :=Form3.DBGrid4.FieldCount  ;
              xlsFileName :='关于学生成绩基本信息.xls';          try
                      eclApp :=CreateOleObject('Excel.Application');
                      WorkBook :=CreateOleObject('Excel.Sheet');
              except
                      showmessage('您的系统没有安装MS EXCEL');
                      exit;
              end;          try
                        WorkBook :=eclApp.workBooks.add ;
                        for i :=1 to  a_FiledNo do      //转化字段名;
                         begin
                                //eclApp.cells(1,i) :=Form3.DBGrid4.Columns[i-1].Title.caption ;
                                eclApp.cells(1,i) :=Form3.DBGrid4.Fields[i-1].FieldName ;
                         end;                    Form3.DBGrid4.DataSource.DataSet.First ;
                        for i :=1 to  Form3.a_recno   do    //Form3.a_recno                       begin
                                for j :=1 to  a_filedNo do  //转化一个记录
                                  begin
                                          eclApp.cells(i+1,j) :=Form3.DbGrid4.Fields[j-1].Value ;
                                  end;
                                Form3.DBGrid4.DataSource.DataSet.Next ;
                          end;
                    try
                         WorkBook.saveas(ExtractFilePath(Application.ExeName )+xlsFileName);
                         WorkBook.close;
                         showmessage('保存EXECL文件成功,路径为:'+ExtractFilePath(Application.ExeName )+xlsFileName);
                      except
                               showmessage('保存文件出错');
                      end;
                   except
                     showmessage('不能正确操作EXECL文件,可能该文件已经被其他程序占用或系统错误');
                     WorkBook.close;
                     eclApp.quit;
                     eclApp :=Unassigned;
             end;
    end;
      

  12.   

    Sheet.Range[Sheet.Cells[1, 1], Sheet.Cells[1, Col - 1]].Merge;将第1行第1列到第1行第Col-1列,合并成一个单元格