ExportHelper.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Data;
  4. using System.IO;
  5. using System.Text;
  6. namespace Toolkits
  7. {
  8. public class ExportHelper
  9. {
  10. //获取列名委托方法
  11. public delegate string GetColumnName(string columnName);
  12. //#region 导入导出Excel相关
  13. ///// <summary>
  14. ///// 将泛类型集合List类转换成DataTable
  15. ///// </summary>
  16. ///// <param name="list">泛类型集合</param>
  17. ///// <returns>返回转换后的DataTable</returns>
  18. //public static DataTable ListToDataTable<T>(List<T> entitys)
  19. //{
  20. // //生成DataTable的structure
  21. // var dt = new DataTable();
  22. // try
  23. // {
  24. // //检查泛型实体是否为空
  25. // if (entitys == null || entitys.Count < 1)
  26. // {
  27. // return dt;
  28. // }
  29. // //取出第一个实体的所有Propertie
  30. // var entityType = entitys[0].GetType();
  31. // var entityProperties = entityType.GetProperties();
  32. // for (var i = 0; i < entityProperties.Length; i++)
  33. // {
  34. // dt.Columns.Add(entityProperties[i].Name);
  35. // }
  36. // //将所有entity添加到DataTable中
  37. // foreach (object entity in entitys)
  38. // {
  39. // //检查所有的的实体都为同一类型
  40. // if (entity.GetType() != entityType)
  41. // {
  42. // throw new Exception("要转换的集合元素类型不一致");
  43. // }
  44. // var entityValues = new object[entityProperties.Length];
  45. // for (var i = 0; i < entityProperties.Length; i++)
  46. // {
  47. // entityValues[i] = entityProperties[i].GetValue(entity, null);
  48. // }
  49. // dt.Rows.Add(entityValues);
  50. // }
  51. // }
  52. // catch (Exception e)
  53. // {
  54. // Console.WriteLine(e);
  55. // }
  56. // return dt;
  57. //}
  58. ///// <summary>
  59. ///// 将dataTable转换为Excel字节流
  60. ///// </summary>
  61. ///// <param name="dt"></param>
  62. ///// <param name="getColumnName"></param>
  63. ///// <returns></returns>
  64. //public static byte[] GetExcelForXLSX(DataTable dt, GetColumnName getColumnName)
  65. //{
  66. // var xssfworkbook = new XSSFWorkbook();
  67. // var sheet = xssfworkbook.CreateSheet("Sheet");
  68. // //表头
  69. // var row = sheet.CreateRow(0);
  70. // for (var i = 0; i < dt.Columns.Count; i++)
  71. // {
  72. // var cell = row.CreateCell(i);
  73. // //列名称,数据库中字段
  74. // var columnName = dt.Columns[i].ColumnName;
  75. // var convertColumnName = getColumnName(columnName);
  76. // cell.SetCellValue(convertColumnName);
  77. // }
  78. // //数据
  79. // for (var i = 0; i < dt.Rows.Count; i++)
  80. // {
  81. // var row1 = sheet.CreateRow(i + 1);
  82. // for (var j = 0; j < dt.Columns.Count; j++)
  83. // {
  84. // var cell = row1.CreateCell(j);
  85. // cell.SetCellValue(dt.Rows[i][j].ToString());
  86. // }
  87. // }
  88. // //转为字节数组
  89. // var stream = new MemoryStream();
  90. // xssfworkbook.Write(stream);
  91. // var buf = stream.ToArray();
  92. // return buf;
  93. //}
  94. //#endregion
  95. }
  96. }