快速业务通道

导出数据到Excel的五种方法

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-04-12
bsp; string   Name="测试";  
  string   FileName="d:\\abc.xls";  
  System.Data.DataTable   dt=new   System.Data.DataTable();  
  long   totalCount=dt.Rows.Count;  
  long   rowRead=0;  
  float   percent=0;  
  OleDbParameter[]   parm=new   OleDbParameter[dt.Columns.Count];  
  string   connString   =   "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source="   +   FileName   +";Extended   Properties=Excel   8.0;";  
  OleDbConnection   objConn   =   new   OleDbConnection(connString);  
  OleDbCommand   objCmd   =   new   OleDbCommand();  
  objCmd.Connection   =   objConn;  
  objConn.Open();  
  //建立表结构  
  objCmd.CommandText   =   @"CREATE   TABLE   Sheet1(序号   Integer,名称   varchar)";  
  objCmd.ExecuteNonQuery();  
  //建立插入动作的Command  
  objCmd.CommandText   =   "INSERT   INTO   Sheet1("+Id+","+Name+")";  
  parm[0]=new   OleDbParameter("@Id",   OleDbType.Integer);  
  objCmd.Parameters.Add(parm[0]);  
  parm[1]=new   OleDbParameter("@Company",   OleDbType.VarChar);  
  objCmd.Parameters.Add(parm[1]);  
  //遍历DataTable将数据插入新建的Excel文件中  
  for(int   i=0;i<dt.Rows.Count;i++)  
  {        
  parm[0].Value=i+1;  
  for(int   j=1;j<parm.Length;j++)  
  {  
  parm[j].Value   =dt.Rows[i][j];  
  }  
  objCmd.ExecuteNonQuery();  
  rowRead++;  
  percent=((float)(100*rowRead))/totalCount;        
  // this.FM.CaptionText.Text   =   "正在导出数据,已导出["   +   percent.ToString("0.00")   +   "%]...";  
  if(i==dt.Rows.Count-1)  
  // this.FM.CaptionText.Text   =   "请稍后......";  
  System.Windows.Forms   .Application.DoEvents();  
  }  
  objConn.Close();  
  //this.FM.CaptionText.Text   =   "";   
    
  方法4:此方法调用com组件,速度都慢于以上3个方法  
  using   Excel;  
   
  System.Data.DataTable   dt=new   System.Data.DataTable();  
  string   FileName="d:\\abc.xls";  
   
  long   totalCount=dt.Rows.Count;  
  long   rowRead=0;  
  float   percent=0;  
  Excel.Application

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号