使用说明
使用说明
导入与下载模板在 [表Service.cs] 中实现
下载导入 Excel 模板
/// <summary>
/// 导入时下载模板
/// </summary>
/// <returns></returns>
public override WebResponseContent DownLoadTemplate()
{
//指定下载模板导入的字段
DownLoadTemplateColumns = x => new { x.字段1, x.字段2};
return base.DownLoadTemplate();
}
下载导入模板(异步async)
异步启用说明
代码生成器勾选[异步接口]后此方法才会执行,默认执行的是上面同步方法
/// <summary>
/// 导入时下载模板异步
/// </summary>
/// <returns></returns>
public override async Task<WebResponseContent> DownLoadTemplateAsync()
{
//指定下载模板导入的字段
DownLoadTemplateColumns = x => new { x.字段1, x.字段2};
return await base.DownLoadTemplateAsync();
}
导入 Excel
/// <summary>
/// 导入
/// </summary>
/// <param name="files"></param>
/// <returns></returns>
public override WebResponseContent Import(List<IFormFile> files)
{
WebResponseContent webResponse = new WebResponseContent();
//指定下载模板导入的字段(注意要与上面DownLoadTemplate的一致)
//DownLoadTemplateColumns = x => new { x.字段1, x.字段2};
//设置忽略下拉框数据源验证(字段绑定了数据源,但不需要验证数据源)
//ImportIgnoreSelectValidationColumns = x => new { x.字段 };
//自定义导入字段名称:导入时右excel表头名称与实际字段名称不一致时,这里配置转换规则
//ExcelHeaderMap = x => new Dictionary<object, string>() {
// { "excel对应的字段标题中文名","实际中文名"},
// { "测试订单编号","订单编号"},
//};
/***************************读取原生excel文件配置***************************/
/// <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<当前表> list) =>
{
//注意:
//1.这里不要list=设置新的值
//2.如果业务复杂,这里可以手动调用数据库保存写入
//为-1时,框架不会保存到数据库,请手动操作保存数据库 repository.AddRange(list,true)
//webResponse.Code = "-1";
//webResponse.Message = "导入成功";
//return webResponse.OK("导入成功");
return webResponse.OK();
};
//导入后处理(已经写入到数据库了)
ImportOnExecuted = (List<当前表> list) =>
{
return webResponse.OK();
};
return base.Import(files);
}
导入(异步async)
异步启用说明
代码生成器勾选[异步接口]后此方法才会执行,默认执行的是上面同步方法
/// <summary>
/// 导入异步
/// </summary>
/// <param name="files"></param>
/// <returns></returns>
public override async Task<WebResponseContent> ImportAsync(List<IFormFile> files)
{
WebResponseContent webResponse = new WebResponseContent();
//指定下载模板导入的字段(注意要与上面DownLoadTemplate的一致)
//DownLoadTemplateColumns = x => new { x.字段1, x.字段2};
//设置忽略下拉框数据源验证(字段绑定了数据源,但不需要验证数据源)
//ImportIgnoreSelectValidationColumns = x => new { x.字段 };
//自定义导入字段名称:导入时右excel表头名称与实际字段名称不一致时,这里配置转换规则
//ExcelHeaderMap = x => new Dictionary<object, string>() {
// { "excel对应的字段标题中文名","实际中文名"},
// { "测试订单编号","订单编号"},
//};
/***************************读取原生excel文件配置***************************/
/// <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<当前表> list) =>
{
//注意:
//1.这里不要list=设置新的值
//2.如果业务复杂,这里可以手动调用数据库保存写入
//为-1时,框架不会保存到数据库,请手动操作保存数据库 repository.AddRange(list,true)
//webResponse.Code = "-1";
//webResponse.Message = "导入成功";
//return webResponse.OK("导入成功");
return webResponse.OK();
};
ImportOnExecutingAsync = async (List<当前表> list) =>
{
//await xxx异步操作
return webResponse.OK();
};
//导入后处理(已经写入到数据库了)
ImportOnExecuted = (List<当前表> list) =>
{
return webResponse.OK();
};
ImportOnExecutingAsync = async (List<当前表> list) =>
{
//await xxx异步操作
return webResponse.OK();
};
return await base.ImportAsync(files);
}
