下载导入excel的模板
可以指定模板的字段
/// <summary>
/// 下载模板(导入时弹出框中的下载模板)(2020.05.07)
/// </summary>
/// <returns></returns>
public override WebResponseContent DownLoadTemplate()
{
//指定导出模板的字段,如果不设置DownLoadTemplateColumns
// 默认导出查所有页面上能看到的列
DownLoadTemplateColumns = x => new { x.SellNo, x.TranNo, x.Remark, x.CreateDate };
return base.DownLoadTemplate();
}
导入excel
可以指定模板的字段
/// <summary>
/// 导入
/// </summary>
/// <param name="files"></param>
/// <returns></returns>
public override WebResponseContent Import(List<IFormFile> files)
{
//设置导入的字段(如果上面DownLoadTemplate指定了导出模板字段,这里配置应该配置的字段一样)
//如果不设置导入的字段DownLoadTemplateColumns,默认显示所有界面上所有可以看到的字段
DownLoadTemplateColumns = x => new { x.SellNo, x.TranNo, x.Remark, x.CreateDate };
/// <summary>
/// string=当前读取的excel单元格的值
/// ExcelWorksheet=excel对象
/// ExcelRange当前excel单元格对象
/// int=当前读取的第几行
/// int=当前读取的第几列
/// string=返回的值
/// </summary>
ImportOnReadCellValue = (string value, ExcelWorksheet worksheet, ExcelRange excelRange, int rowIndex, int columnIndex) =>
{
string 表头列名 = worksheet.Cells[1, columnIndex].Value?.ToString();
//这里可以返回处理后的值,值最终写入到model字段上
return value;
};
//导入保存前处理(可以对list设置新的值)
ImportOnExecuting = (List<SellOrder> list) =>
{
//注意问题:
//1.这里不要list=设置新的值
//2.如果业务复杂,这里可以手动调用数据库保存写入
//手动保存数据库后这里应该返回
//webResponse.Code = "-1";//手动保存的数据库,这里必须设置为-1
//webResponse.Message = "导入成功";
//return webResponse.OK("导入成功");
return webResponse.OK();
};
//导入后处理(已经写入到数据库了)
ImportOnExecuted = (List<SellOrder> list) =>
{
return webResponse.OK();
};
return base.Import(files);
}