亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 辦公 > Excel > 正文

導出數據到Excel的幾種方法

2024-08-23 19:48:01
字體:
來源:轉載
供稿:網友

1.首先聲明,這些方法也都是本人搜集的資料,然后為已所用,程序中不足之處,還請高手指點.  
  2.網上有好多關于用SQL語句導入導出的例子,這里不再重復寫了。  
   
  方法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;  
  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   xlApp=null;  
  xlApp=new   Excel.Application();  
  Excel.Workbooks   workbooks=xlApp.Workbooks;  
  Excel.Workbook   workbook=workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);  
  Excel.Worksheet   worksheet=(Excel.Worksheet)workbook.Worksheets[1];//取得sheet1  
  Excel.Range   range;  
   
  //寫入字段    
  for(int   i=0;i<dt.Columns.Count;i++)  
  {  
  worksheet.Cells[1,i+1]=dt.Columns[i].ColumnName;      
  range=(Excel.Range)worksheet.Cells[1,i+1];    
  }  
  for(int   r=0;r<dt.Rows.Count;r++)  
  {  
  worksheet.Cells[r+2,1]=r+1;  
  for(int   i=0;i<dt.Columns.Count;i++)  
  {  
  // worksheet.Cells[r+2,i+1]=dt.Rows[r][i];  
  if(i+1!=dt.Columns.Count)  
  worksheet.Cells[r+2,i+2]=dt.Rows[r][i+1];  
  }  
  rowRead++;  
  percent=((float)(100*rowRead))/totalCount;        
  // this.FM.CaptionText.Text   =   "正在導出數據,已導出["   +   percent.ToString("0.00")   +   "%]...";  
  System.Windows.Forms   .Application.DoEvents();  
  }  
  range=worksheet.get_Range(worksheet.Cells[2,1],worksheet.Cells[dt.Rows.Count+2,dt.Columns.Count]);  
  workbook.Saved   =true;  
  workbook.SaveCopyAs(FileName);  
  //this.FM.CaptionText.Text   =   "";  
   
  方法5:利用剪貼板   ,有人說此方法很快,但是我用時,這種方法最慢,請高手指點.  
  System.Data.DataTable   dt=new   System.Data.DataTable();  
  string   filePath=@"d:/abc.xls";  
   
  object   oMissing   =   System.Reflection.Missing.Value;  
  Excel.ApplicationClass   xlApp   =   new   Excel.ApplicationClass();  
  try  
  {  
  xlApp.Visible   =   false;  
  xlApp.DisplayAlerts   =   false;  
  Excel.Workbooks   oBooks   =   xlApp.Workbooks;  
  Excel._Workbook   xlWorkbook   =   null;  
  xlWorkbook   =   oBooks.Open(filePath,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,  
  oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing,oMissing);  
   
  Excel.Worksheet   xlWorksheet;  
  //   添加入一個新的Sheet頁。  
  xlWorksheet   =   (Excel.Worksheet)xlWorkbook.Worksheets.Add(oMissing,oMissing,1,oMissing);  
  //   以TableName作為新加的Sheet頁名。  
  xlWorksheet.Name   ="企業名錄";  
  //   取出這個DataTable中的所有值,暫存于stringBuffer中。  
  string   stringBuffer   =   "";  
   
  for(   int   j=0;   j<dt.Rows.Count;   j++   )  
  {  
  for(   int   k=0;   k<dt.Columns.Count;   k++   )  
  {  
  stringBuffer   +=   dt.Rows[j][k].ToString();  
  if(   k   <   dt.Columns.Count   -   1   )  
  stringBuffer   +=   "/t";  
  }  
  stringBuffer   +=   "/n";  
  }  
  //   利用系統剪切板  
  System.Windows.Forms.Clipboard.SetDataObject("");  
  //   將stringBuffer放入剪切板。  
  System.Windows.Forms.Clipboard.SetDataObject(stringBuffer);  
  //   選中這個sheet頁中的第一個單元格  
  ((Excel.Range)xlWorksheet.Cells[1,1]).Select();  
  //   粘貼!  
  xlWorksheet.Paste(oMissing,oMissing);  
  //   清空系統剪切板。  
  System.Windows.Forms.Clipboard.SetDataObject("");  
   
  //   保存并關閉這個工作簿。  
  xlWorkbook.Close(   Excel.XlSaveAction.xlSaveChanges,   oMissing,   oMissing   );  
  System.Runtime.InteropServices.Marshal.ReleaseComObject(xlWorkbook);  
  xlWorkbook   =   null;  
   
  這些方法都沒有關閉Excel進程,這種資料很多,在此不多寫了,希望這些能對一些人帶來方便.


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩免费观看中文| 成人两性免费视频| 日韩精品在线看| 日韩视频免费中文字幕| 亚洲男女性事视频| 国产精品亚洲аv天堂网| 欧美成人自拍视频| 日韩欧美国产网站| 欧美俄罗斯乱妇| 亚洲a在线观看| 欧美—级高清免费播放| 欧美主播福利视频| 九九热这里只有精品6| 国外成人免费在线播放| 欧美成人亚洲成人日韩成人| 九九九久久久久久| 91精品国产综合久久久久久久久| 日韩美女视频免费看| 欧美大成色www永久网站婷| 久久综合网hezyo| 国产成人免费av| 国产精品久久久久久久9999| 97在线免费视频| 性色av一区二区三区免费| 日韩中文在线中文网在线观看| 亚洲精品国产综合区久久久久久久| 中文字幕国产精品久久| 亚洲国产私拍精品国模在线观看| 久久免费精品日本久久中文字幕| 精品动漫一区二区| 国模gogo一区二区大胆私拍| 欧美成人四级hd版| 日韩av在线电影网| 亚洲精品www久久久久久广东| 亚洲国产精品va| 狠狠爱在线视频一区| 久久777国产线看观看精品| 欧美韩日一区二区| 久久99久久99精品免观看粉嫩| 日本成人免费在线| 亚洲国产欧美一区二区丝袜黑人| 日韩av综合中文字幕| 欧美孕妇性xx| 欧美在线一级视频| 国产午夜精品麻豆| 韩国三级日本三级少妇99| 欧美富婆性猛交| 538国产精品一区二区免费视频| 亚洲天堂av高清| 欧美日韩成人精品| 欧美日韩国产区| 国产精品久久久久久五月尺| 久久精品中文字幕| 欧美日韩精品在线视频| 国产日韩欧美黄色| 91精品在线播放| 日韩精品在线第一页| 国产亚洲一级高清| 久久久免费高清电视剧观看| 精品久久久在线观看| 国产精品美女999| 国产精品高潮呻吟久久av黑人| 亚洲永久在线观看| 欧美亚洲国产成人精品| 欧美在线不卡区| 国产精品爽爽ⅴa在线观看| 97精品视频在线观看| 中日韩美女免费视频网站在线观看| 欧美精品在线视频观看| 91精品在线国产| 亚洲国产成人精品一区二区| 亚洲乱码国产乱码精品精| 国产精品免费久久久久久| 一区二区欧美日韩视频| 在线观看成人黄色| 91精品国产九九九久久久亚洲| 在线看福利67194| 亚洲国产精品一区二区久| 成人h片在线播放免费网站| 欧美一区三区三区高中清蜜桃| 亚洲成人亚洲激情| 欧美极品少妇xxxxⅹ免费视频| 国产精品网红福利| xxxx欧美18另类的高清| 午夜剧场成人观在线视频免费观看| 亚洲va欧美va国产综合久久| 一区二区av在线| 97视频人免费观看| 欧美一区三区三区高中清蜜桃| 国产精品露脸av在线| 91视频8mav| 亚洲国产精彩中文乱码av| 最近2019年手机中文字幕| 久久久免费观看视频| 久久综合九色九九| 欧美激情第一页xxx| 一色桃子一区二区| 最新日韩中文字幕| 亚洲人成网7777777国产| 精品国产乱码久久久久久虫虫漫画| 91高清免费在线观看| 亚洲精品videossex少妇| 青青久久aⅴ北条麻妃| 亚洲高清久久久久久| 欧美性xxxx在线播放| 成人午夜两性视频| 亚洲网址你懂得| 搡老女人一区二区三区视频tv| 欧美三级欧美成人高清www| 久久久久久av| 最近日韩中文字幕中文| 日韩欧美亚洲范冰冰与中字| 伊人伊成久久人综合网小说| 97国产精品人人爽人人做| 久久精品视频在线播放| 一区二区三区美女xx视频| 一区二区三欧美| 欧美俄罗斯乱妇| 亚洲精品久久久久中文字幕欢迎你| 日韩美女写真福利在线观看| 亚洲日本成人女熟在线观看| 成人性生交大片免费观看嘿嘿视频| 国产乱肥老妇国产一区二| 亲爱的老师9免费观看全集电视剧| 日韩av日韩在线观看| 亚洲男人天堂视频| 在线不卡国产精品| 精品福利樱桃av导航| 国产精品日韩欧美综合| 亚洲色图25p| 色综合91久久精品中文字幕| 国产高清在线不卡| 成人444kkkk在线观看| 国产精品海角社区在线观看| 日韩在线观看成人| 国产原创欧美精品| 国产v综合v亚洲欧美久久| 性夜试看影院91社区| 亚洲乱码av中文一区二区| 欧洲成人在线视频| 亚洲人成在线播放| 91天堂在线观看| 久久精品国产亚洲一区二区| 中文字幕欧美日韩在线| 久久久视频在线| 成人信息集中地欧美| 一夜七次郎国产精品亚洲| 欧美在线一级视频| 日韩欧美中文字幕在线播放| 久久久久久久网站| 欧美电影免费观看电视剧大全| 色婷婷av一区二区三区在线观看| 亚洲一区二区三区毛片| 成人444kkkk在线观看| 久久久精品国产一区二区| 亚洲欧美另类中文字幕| 欧美最近摘花xxxx摘花| 日韩精品在线免费观看视频| 亚洲第一av网| 亚洲人成电影在线观看天堂色| 亚洲国产一区自拍| 热久久99这里有精品| 日韩电影网在线| 色琪琪综合男人的天堂aⅴ视频|