首页 > 编程 > C# > 正文

C#操作Excel文件(读取Excel,写入Excel)

2019-10-29 21:38:59
字体:
来源:转载
供稿:网友

看到论坛里面不断有人提问关于读取excel和导入excel的相关问题。闲暇时间将我所知道的对excel的操作加以总结,现在共享大家,希望给大家能够给大家带了一定的帮助。

另外我们还要注意一些简单的问题1.excel文件只能存储65535行数据,如果你的数据大于65535行,那么就需要将excel分割存放了。2.关于乱码,这主要是字符设置问题。

1.加载Excel(读取excel内容)返回值是一个DataSet

 

  1. //加载Excel 
  2.  
  3. publicstaticDataSetLoadDataFromExcel(stringfilePath) 
  4.  
  5.  
  6. try 
  7.  
  8.  
  9. stringstrConn; 
  10.  
  11. strConn="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+filePath+";ExtendedProperties='Excel8.0;HDR=False;IMEX=1'"
  12.  
  13. OleDbConnectionOleConn=newOleDbConnection(strConn); 
  14.  
  15. OleConn.Open(); 
  16.  
  17. Stringsql="SELECT*FROM[Sheet1$]";//可是更改Sheet名称,比如sheet2,等等 
  18.  
  19. OleDbDataAdapterOleDaExcel=newOleDbDataAdapter(sql,OleConn); 
  20.  
  21. DataSetOleDsExcle=newDataSet(); 
  22.  
  23. OleDaExcel.Fill(OleDsExcle,"Sheet1"); 
  24.  
  25. OleConn.Close(); 
  26.  
  27. returnOleDsExcle; 
  28.  
  29.  
  30. catch(Exceptionerr) 
  31.  
  32.  
  33. MessageBox.Show("数据绑定Excel失败!失败原因:"+err.Message,"提示信息"
  34.  
  35. MessageBoxButtons.OK,MessageBoxIcon.Information); 
  36.  
  37. returnnull; 
  38.  
  39.  

2.写入Excel内容,参数:excelTable是要导入excel的一个table表

 

  1. publicstaticboolSaveDataTableToExcel(System.Data.DataTableexcelTable,stringfilePath) 
  2.  
  3.  
  4. Microsoft.Office.Interop.Excel.Applicationapp= 
  5.  
  6. newMicrosoft.Office.Interop.Excel.ApplicationClass(); 
  7.  
  8. try 
  9.  
  10.  
  11. app.Visible=false
  12.  
  13. WorkbookwBook=app.Workbooks.Add(true); 
  14.  
  15. WorksheetwSheet=wBook.Worksheets[1]asWorksheet; 
  16.  
  17. if(excelTable.Rows.Count>0) 
  18.  
  19.  
  20. introw=0; 
  21.  
  22. row=excelTable.Rows.Count; 
  23.  
  24. intcol=excelTable.Columns.Count; 
  25.  
  26. for(inti=0;i 
  27.  
  28.  
  29. for(intj=0;j 
  30.  
  31.  
  32. stringstr=excelTable.Rows[i][j].ToString(); 
  33.  
  34. wSheet.Cells[i+2,j+1]=str; 
  35.  
  36.  
  37.  
  38.  
  39. intsize=excelTable.Columns.Count; 
  40.  
  41. for(inti=0;i 
  42.  
  43.  
  44. wSheet.Cells[1,1+i]=excelTable.Columns[i].ColumnName; 
  45.  
  46.  
  47. //设置禁止弹出保存和覆盖的询问提示框 
  48.  
  49. app.DisplayAlerts=false
  50.  
  51. app.AlertBeforeOverwriting=false
  52.  
  53. //保存工作簿 
  54.  
  55. wBook.Save(); 
  56.  
  57. //保存excel文件 
  58.  
  59. app.Save(filePath); 
  60.  
  61. app.SaveWorkspace(filePath); 
  62.  
  63. app.Quit(); 
  64.  
  65. app=null
  66.  
  67. returntrue; 
  68.  
  69.  
  70. catch(Exceptionerr) 
  71.  
  72.  
  73. MessageBox.Show("导出Excel出错!错误原因:"+err.Message,"提示信息"
  74.  
  75. MessageBoxButtons.OK,MessageBoxIcon.Information); 
  76.  
  77. returnfalse; 
  78.  
  79.  
  80. finally 
  81.  
  82.  
  83.  

转载的朋友请一定注明出处谢谢!http://blog.csdn.net/gisfarmer/

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表