快速业务通道

导出数据到Excel的五种方法

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-04-12

 方法1:调用com组件,导出access数据到Excel,就是直接调用access的导出功能,此方法速度超级快  
  using   Access;   
  Access.ApplicationClass   oAccess   =   new   Access.ApplicationClass();  
  oAccess.Visible   =   false;  
  try  
  {  
  //ACCESS9:  
  oAccess.OpenCurrentDatabase("d:\\wcf.mdb",false,"");  
  //导出到excel  
  oAccess.DoCmd.TransferSpreadsheet(Access.AcDataTransferType.acExport,Access.AcSpreadSheetType.acSpreadsheetTypeExcel9,"工作表名","d:\\wcf.xls",true,null,null);  
  //导入txt  
  // oAccess.DoCmd.TransferText(Access.AcTextTransferType.acExportDelim,"","Enterprise","d:\\wcf.txt",true,"",0);  
  oAccess.CloseCurrentDatabase();  
  oAccess.DoCmd.Quit(Access.AcQuitOption.acQuitSaveNone);  
  System.Runtime.InteropServices.Marshal.ReleaseComObject   (oAccess);  
  oAccess   =   null;  
  MessageBox.Show("导入成功");  
  }  
  catch(Exception   ex)  
  {  
  MessageBox.Show(ex.ToString());  
  }  
  finally  
  {  
  GC.Collect();  
  }   


  方法2:此方法速度也是超级快,只不过导出的格式非标准的Excel格式,默认工作表名与文件名相同  
  string   FileName="d:\\abc.xls";  
  System.Data.DataTable   dt=new   System.Data.DataTable();  
  FileStream   objFileStream;  
  StreamWriter   objStreamWriter;  
  string   strLine="";  
  objFileStream   =   new   FileStream(FileName,FileMode.OpenOrCreate,FileAccess.Write);  
  objStreamWriter   =   new   StreamWriter(objFileStream,System.Text.Encoding.Unicode);  
   
  for(int   i=0;i<dt.Columns.Count;i++)  
  {  
  strLine=strLine+dt.Columns[i].ColumnName.ToString()+Convert.ToChar(9);  
  }  
  objStreamWriter.WriteLine(strLine);  
  strLine="";  
   
  for(int   i=0;i<dt.Rows.Count;i++)  
  {  
  strLine=strLine+(i+1)+Convert.ToChar(9);  
  for(int   j=1;j<dt.Columns.Count;j++)  
  {  
  strLine=strLine+dt.Rows[i][j].ToString()+Convert.ToChar(9);  
  }  
  objStreamWriter.WriteLine(strLine);  
  strLine="";  
  }  
  objStreamWriter.Close();  
  objFileStream.Close();   
    
  方法3:用Ado.net   此方法速度较以上两个显得慢了一些,数据量越大越明显  
  int   Id=0;  
&n

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号