经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C# » 查看文章
NPOI读取Excel文件
来源:cnblogs  作者:比这个鱼  时间:2018/12/12 9:58:35  对本文有异议
  1. 1 public class ExcelOperator
  2. 2 {
  3. 3 public static List<DataTable> Read(string fileName)
  4. 4 {
  5. 5 List<DataTable> tables = new List<DataTable>();
  6. 6 if (!File.Exists(fileName))
  7. 7 return tables;
  8. 8 var fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
  9. 9 IWorkbook workbook = null;
  10. 10 if (fileName.IndexOf(".xlsx") > 0)
  11. 11 {
  12. 12 // 2007版本
  13. 13 workbook = new XSSFWorkbook(fs);
  14. 14 }
  15. 15 else if (fileName.IndexOf(".xls") > 0)
  16. 16 {
  17. 17 // 2003版本
  18. 18 workbook = new HSSFWorkbook(fs);
  19. 19 }
  20. 20
  21. 21 var workbooks = workbook.GetEnumerator();
  22. 22 while (workbooks.MoveNext())
  23. 23 {
  24. 24 ISheet sheet = workbooks.Current as ISheet;
  25. 25 DataTable dt = new DataTable(sheet.SheetName);
  26. 26 var rows = sheet.GetRowEnumerator();
  27. 27 while (rows.MoveNext())
  28. 28 {
  29. 29 IRow row = rows.Current as IRow;
  30. 30 if (row.RowNum == 0)
  31. 31 {
  32. 32 row.Cells.ForEach(cell =>
  33. 33 {
  34. 34 dt.Columns.Add(cell.StringCellValue);
  35. 35 });
  36. 36 }
  37. 37 else
  38. 38 {
  39. 39 var dr = dt.NewRow();
  40. 40 for (int i = 0; i < row.Cells.Count; i++)
  41. 41 {
  42. 42 dr[i] = row.Cells[i].ToString();
  43. 43 }
  44. 44 dt.Rows.Add(dr);
  45. 45 }
  46. 46 }
  47. 47
  48. 48 tables.Add(dt);
  49. 49 }
  50. 50 return tables;
  51. 51 }
  52. 52 }
读取方法

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号