/// <summary>
/// return File(bs, "application/vnd.ms-excel");
/// </summary>
/// <param name="tb"></param>
/// <returns></returns>
public static byte[] DataTableToExcel(DataTable tb)
{
tb = tb ?? throw new Exception($"无法把空{nameof(DataTable)}转成Excel");
using (var ms = new MemoryStream())
{
var workbook = new NPOI.XSSF.UserModel.XSSFWorkbook();
var sheet = workbook.CreateSheet(ValidateHelper.IsPlumpString(tb.TableName) ? tb.TableName : "sheet");
var style = GetStyle(workbook,
NPOI.HSSF.Util.HSSFColor.White.Index, NPOI.HSSF.Util.HSSFColor.Black.Index);
for (int i = 0; i < tb.Rows.Count; ++i)
{
var row = sheet.CreateRow(i);
for (int j = 0; j < tb.Columns.Count; ++j)
{
var cell = row.CreateCell(j);
var data = tb.Rows[i][j];
cell.SetCellValue(ConvertHelper.GetString(data));
cell.CellStyle = style;
}
}
workbook.Write(ms);
workbook.Clear();
tb.Clear();
var bs = ms.ToArray();
return(bs);
}
}