把stringgrid中的数据输入到excel,怎样初始化stringgrid

解决方案 »

  1.   

    stringgrild中的数据应该是来自于数据库把,那就是操作数据库中的数据导入到excel!
      

  2.   

    呵呵,我到是做了个吧dbgrid中的数据导入excel 
    不过原理一样啊 
    呵呵,我做过的
    前面的创建excel对象就不用说了
    a_field:多少列  先求出dbgrid
    a_recordno:多少列;
    for i;=1 to a_field do  
      begin 
           ecl.cells(1,i) ;=DBGrid1.fields.fields[i-1].fieldname;  //写字段名
      end;
    for   i ;=2 to  a_record+1  do  
      begin 
            Dbgrid1.datasource.dataset.first;  //保证首先到第一条记录 
            for j :=1 to  a_field do 
               begin 
                        ecl.cells(i,j) ;=DBgrid1.fields.fields[j].asstring;
               end;
           dbgrid1.datasource.dataset.next;//自动到下一条记录
      end;
    然后 后面的就是保存等等操作,相信不用我多说吧,我还有一段代码:
    由那个excel 导入sql数据库已经 paradox的db格式的数据库 
    如果你需要,那就告诉我你的e,我给你 
      

  3.   

    谢谢你!小鱼儿,我立刻就试一下。我的E-mail :[email protected]
    欢迎你给我发邮件,我需要你的帮助。
      

  4.   

    for i:=1 to a_record do
      begin
        for j :=1 to  a_field do
        begin
          Ecl.cells[j,i] := StringGrid1.Cells[j,i];
        end;
      end;
    程序不能执行这些代码,数据还是不能进入excel, 各位高手帮一下忙吧!
      

  5.   

    procedure Tregister.EXCEL1Click(Sender: TObject);
    var       xlsFilename :string;
              eclApp,WorkBook :variant ;
              a_filedNo,i,j :integer;
    begin
             a_filedNo :=register.DBGrid1.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) :=register.DBGrid1.Fields[i-1].FieldName ;  
                         end;                    register.DBGrid1.DataSource.DataSet.First ; 
                        for i :=1 to  register.a_recordno do
                          begin
                                for j :=1 to  a_filedNo do  //转化一个记录
                                  begin
                                          eclApp.cells(i+1,j) :=DbGrid1.Fields[j-1].Value ; 
                                  end;
                                register.DBGrid1.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;
      

  6.   

    以上就是我把db 格式的数据库转换为excel 
    其实什么数据库都无所谓了
    因为我主要是在dbgrid 中进行转换,所以只要 能够在 dbgrid中显示,
    那都能够转换!~~~说明:register是窗体的名称;你如果不懂,给我留言的时候,最好能够把这篇帖子的网址一起发过去好吗!~~~
    谢谢!~~~