C# Excel导入相关知识总结

开发 后端
Excel只能存储65535行数据,在使用C# Excel导入数据时需要注意这一问题;另外,乱码的问题也值得我们关注。本文向您提供这两种问题的解决方法。

C# Excel导入有以下几点需要我们注意:

1.C# Excel导入只能存储65535行数据,如果你的数据大于65535行,那么就需要将excel分割存放了。

2.C# Excel导入的乱码,这主要是字符设置问题。

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

  1. //加载Excel   
  2. public static DataSet LoadDataFromExcel  
  3. (string filePath)   
  4. {   
  5. try   
  6. {   
  7. string strConn;   
  8. strConn = "Provider=Microsoft.Jet.  
  9. OLEDB.4.0;Data Source=" +   
  10. filePath + ";Extended Properties='Excel   
  11. 8.0;HDR=False;IMEX=1'";   
  12. OleDbConnection OleConn =   
  13. new OleDbConnection(strConn);   
  14. OleConn.Open();   
  15. String sql = "SELECT * FROM    
  16. [Sheet1$]";//可是更改Sheet名称,比如sheet2,等等   
  17.  
  18. OleDbDataAdapter OleDaExcel =   
  19. new OleDbDataAdapter(sql, OleConn);   
  20. DataSet OleDsExcle = new DataSet();   
  21. OleDaExcel.Fill(OleDsExcle, "Sheet1");   
  22. OleConn.Close();   
  23. return OleDsExcle;   
  24. }   
  25. catch (Exception err)   
  26. {   
  27. MessageBox.Show("数据绑定Excel失败!  
  28. 失败原因:" + err.Message, "提示信息",   
  29. MessageBoxButtons.OK, MessageBoxIcon.Information);   
  30. return null;   
  31. }   

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

  1. public static bool SaveDataTableToExcel  
  2. (System.Data.DataTable excelTable,   
  3. string filePath)   
  4. {   
  5. Microsoft.Office.Interop.Excel.Application app =   
  6. new Microsoft.Office.Interop.  
  7. Excel.ApplicationClass();   
  8. try   
  9. {   
  10. app.Visible = false;   
  11. Workbook wBook = app.Workbooks.Add(true);   
  12. Worksheet wSheet =   
  13. wBook.Worksheets[1] as Worksheet;   
  14. if (excelTable.Rows.Count 〉0)   
  15. {   
  16. int row = 0;   
  17. row = excelTable.Rows.Count;   
  18. int col = excelTable.Columns.Count;   
  19. for (int i = 0; i < row; i++)   
  20. {   
  21. for (int j = 0; j < col; j++)   
  22. {   
  23. string str = excelTable.Rows[i][j].ToString();   
  24. wSheet.Cells[i + 2, j + 1] = str;   
  25. }   
  26. }   
  27. }   
  28.  
  29. int size = excelTable.Columns.Count;   
  30. for (int i = 0; i < size; i++)   
  31. {   
  32. wSheet.Cells[1, 1 + i] = excelTable.  
  33. Columns[i].ColumnName;   
  34. }   
  35. //设置禁止弹出保存和覆盖的询问提示框   
  36. app.DisplayAlerts = false;   
  37. app.AlertBeforeOverwriting = false;   
  38. //保存工作簿   
  39. wBook.Save();   
  40. //保存excel文件   
  41. app.Save(filePath);   
  42. app.SaveWorkspace(filePath);   
  43. app.Quit();   
  44. app = null;   
  45. return true;   
  46. }   
  47. catch (Exception err)   
  48. {   
  49. MessageBox.Show("导出Excel出错!  
  50. 错误原因:" + err.Message, "提示信息",   
  51. MessageBoxButtons.OK, MessageBoxIcon.  
  52. Information);   
  53. return false;   
  54. }   
  55. finally   
  56. {   
  57. }  

【编辑推荐】

  1. C#中定义装箱和拆箱详解
  2. 浅谈C#类型系统
  3. 三种不同的C#异常类型
  4. 详细介绍C#编译器
  5. C#异常机制的相关解释
责任编辑:冰荷 来源: hoopchina
相关推荐

2009-08-28 10:22:47

C# DLLImpor

2009-08-21 08:41:44

C#反射

2009-08-05 18:39:54

C#异常类

2009-08-13 12:50:45

C#基础知识

2009-08-27 16:37:06

C#基础知识

2009-08-12 14:13:51

C#读写Excel文件

2009-08-10 14:03:08

C# COM接口

2009-08-06 17:42:32

C#知识点

2009-09-01 16:14:08

C# Socket类

2009-08-13 14:59:00

C#数据访问层

2009-09-01 15:08:07

C#命名规范

2009-08-19 17:13:15

C# 操作符基础知识

2009-06-12 09:22:44

VB.NET类型C#

2009-09-01 15:25:01

C#位域

2009-01-11 09:14:45

Javascript开发总结

2015-11-16 10:34:19

Linux动态库总结

2010-03-18 14:24:31

云计算

2009-08-27 13:38:36

C#线程相关问题

2009-07-30 18:20:21

C#继承

2009-08-27 16:54:59

C#开发技巧
点赞
收藏

51CTO技术栈公众号