下载导入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);
    }
Last Updated 2025/4/15 16:19:10