看到论坛里面不断有人提问关于读取excel和导入excel的相关问题。闲暇时间将我所知道的对excel的操作加以总结,现在共享大家,希望给大家能够给大家带了一定的帮助。
另外我们还要注意一些简单的问题1.excel文件只能存储65535行数据,如果你的数据大于65535行,那么就需要将excel分割存放了。2.关于乱码,这主要是字符设置问题。
1.加载Excel(读取excel内容)返回值是一个DataSet
01.//加载Excel
02.public static DataSet LoadDataFromExcel(string filePath)
03.{
04. try
05. {
06. string strConn;
07. strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
08. OleDbConnection OleConn = new OleDbConnection(strConn);
09. OleConn.Open();
10. String sql = "SELECT * FROM [Sheet1$]";//可是更改Sheet名称,比如sheet2,等等
11.
12. OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
13. DataSet OleDsExcle = new DataSet();
14. OleDaExcel.Fill(OleDsExcle, "Sheet1");
15. OleConn.Close();
16. return OleDsExcle;
17. }
18. catch (Exception err)
19. {
20. MessageBox.Show("数据绑定Excel失败!失败原因:" + err.Message, "提示信息",
21. MessageBoxButtons.OK, MessageBoxIcon.Information);
22. return null;
23. }
24.}
2.写入Excel内容,参数:excelTable是要导入excel的一个table表
01.public static bool SaveDataTableToExcel(System.Data.DataTable excelTable, string filePath)
02. {
03. Microsoft.Office.Interop.Excel.Application app =
04. new Microsoft.Office.Interop.Excel.ApplicationClass();
05. try
06. {
07. app.Visible = false;
08. Workbook wBook = app.Workbooks.Add(true);
09. Worksheet wSheet = wBook.Worksheets[1] as Worksheet;
10. if (excelTable.Rows.Count > 0)
11. {
12. int row = 0;
13. row = excelTable.Rows.Count;
14. int col = excelTable.Columns.Count;
15. for (int i = 0; i < row; i++)
16. {
17. for (int j = 0; j < col; j++)
18. {
19. string str = excelTable.Rows[i][j].ToString();
20. wSheet.Cells[i + 2, j + 1] = str;
21. }
22. }
23. }
24.
25. int size = excelTable.Columns.Count;
26. for (int i = 0; i < size; i++)
27. {
28. wSheet.Cells[1, 1 + i] = excelTable.Columns[i].ColumnName;
29. }
30. //设置禁止弹出保存和覆盖的询问提示框
31. app.DisplayAlerts = false;
32. app.AlertBeforeOverwriting = false;
33. //保存工作簿
34. wBook.Save();
35. //保存excel文件
36. app.Save(filePath);
37. app.SaveWorkspace(filePath);
38. app.Quit();
39. app = null;
40. return true;
41. }
42. catch (Exception err)
43. {
44. MessageBox.Show("导出Excel出错!错误原因:" + err.Message, "提示信息",
45. MessageBoxButtons.OK, MessageBoxIcon.Information);
46. return false;
47. }
48. finally
49. {
50. }
51. }