using System;
using System.Collections.Generic;
using System.Data;
using System.IO;
using System.Text;
namespace Toolkits
{
public class ExportHelper
{
//获取列名委托方法
public delegate string GetColumnName(string columnName);
//#region 导入导出Excel相关
/////
///// 将泛类型集合List类转换成DataTable
/////
///// 泛类型集合
///// 返回转换后的DataTable
//public static DataTable ListToDataTable(List entitys)
//{
// //生成DataTable的structure
// var dt = new DataTable();
// try
// {
// //检查泛型实体是否为空
// if (entitys == null || entitys.Count < 1)
// {
// return dt;
// }
// //取出第一个实体的所有Propertie
// var entityType = entitys[0].GetType();
// var entityProperties = entityType.GetProperties();
// for (var i = 0; i < entityProperties.Length; i++)
// {
// dt.Columns.Add(entityProperties[i].Name);
// }
// //将所有entity添加到DataTable中
// foreach (object entity in entitys)
// {
// //检查所有的的实体都为同一类型
// if (entity.GetType() != entityType)
// {
// throw new Exception("要转换的集合元素类型不一致");
// }
// var entityValues = new object[entityProperties.Length];
// for (var i = 0; i < entityProperties.Length; i++)
// {
// entityValues[i] = entityProperties[i].GetValue(entity, null);
// }
// dt.Rows.Add(entityValues);
// }
// }
// catch (Exception e)
// {
// Console.WriteLine(e);
// }
// return dt;
//}
/////
///// 将dataTable转换为Excel字节流
/////
/////
/////
/////
//public static byte[] GetExcelForXLSX(DataTable dt, GetColumnName getColumnName)
//{
// var xssfworkbook = new XSSFWorkbook();
// var sheet = xssfworkbook.CreateSheet("Sheet");
// //表头
// var row = sheet.CreateRow(0);
// for (var i = 0; i < dt.Columns.Count; i++)
// {
// var cell = row.CreateCell(i);
// //列名称,数据库中字段
// var columnName = dt.Columns[i].ColumnName;
// var convertColumnName = getColumnName(columnName);
// cell.SetCellValue(convertColumnName);
// }
// //数据
// for (var i = 0; i < dt.Rows.Count; i++)
// {
// var row1 = sheet.CreateRow(i + 1);
// for (var j = 0; j < dt.Columns.Count; j++)
// {
// var cell = row1.CreateCell(j);
// cell.SetCellValue(dt.Rows[i][j].ToString());
// }
// }
// //转为字节数组
// var stream = new MemoryStream();
// xssfworkbook.Write(stream);
// var buf = stream.ToArray();
// return buf;
//}
//#endregion
}
}