CompetitionAPI_dotnet/CompetitionAPI/Controllers/back/system/ExportUserController.cs

143 lines
6.4 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Competition.Common.Util;
using CompetitionAPI.api.back;
using CompetitionAPI.Util;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using System.Data;
using System.Text.RegularExpressions;
namespace CompetitionAPI.Controllers.back.system
{
[Route("api/[controller]")]
[ApiController]
public class ExportUserController : Controller
{
Competition.Mysql.BLL.admin_user user_bll = new Competition.Mysql.BLL.admin_user();
public ExportUserController()
{
}
/// <summary>
/// 导出用户接口
/// </summary>
/// <returns></returns>
[Authorize]
[HttpPost]
[APIFilter]
public ActionResult Index([FromBody] ExportUserRequest req)
{
try
{
if (req != null)
{
if (req.UserIdList.Count <= 0)
{
return Json(Tool.GetJsonWithCode(APICode.Fail, "用户id集合不能为空"));
}
var workbook = new NPOI.HSSF.UserModel.HSSFWorkbook();
var sheet = workbook.CreateSheet("sheet1");
var row1 = sheet.CreateRow(0);//第1行
var cell1_1 = row1.CreateCell(0);//第1列
cell1_1.SetCellValue("所属市");
var cell1_2 = row1.CreateCell(1);//第2列
cell1_2.SetCellValue("姓名");
var cell1_3 = row1.CreateCell(2);//第3列
cell1_3.SetCellValue("ERP编码");
var cell1_4 = row1.CreateCell(3);//第4列
cell1_4.SetCellValue("性别");
var cell1_5 = row1.CreateCell(4);//第5列
cell1_5.SetCellValue("员工编码");
var cell1_6 = row1.CreateCell(5);//第6列
cell1_6.SetCellValue("工作单位");
var cell1_7 = row1.CreateCell(6);//第7列
cell1_7.SetCellValue("所在部门");
var cell1_8 = row1.CreateCell(7);//第8列
cell1_8.SetCellValue("工作岗位");
var cell1_9 = row1.CreateCell(8);//第9列
cell1_9.SetCellValue("身份证号");
var cell1_10 = row1.CreateCell(9);//第9列
cell1_10.SetCellValue("参加工作时间");
var cell1_11 = row1.CreateCell(10);//第9列
cell1_11.SetCellValue("文化程度");
var cell1_12 = row1.CreateCell(11);//第9列
cell1_12.SetCellValue("现有专业资格等级");
var cell1_13 = row1.CreateCell(12);//第9列
cell1_13.SetCellValue("现有职业技能等级");
var cell1_14 = row1.CreateCell(13);//第9列
cell1_14.SetCellValue("联系电话");
var cell1_15 = row1.CreateCell(14);//第9列
cell1_15.SetCellValue("密码");
var cell1_16 = row1.CreateCell(15);//第9列
cell1_16.SetCellValue("备注");
var data = user_bll.GetModelList(" user_id in ('" + string.Join("','", req.UserIdList.ToArray()) + "') ");
for (var i = 0; i < data.Count; i++)
{
var model = data[i];
var row = sheet.CreateRow(i + 1);
var cell1 = row.CreateCell(0);
var cell2 = row.CreateCell(1);
var cell3 = row.CreateCell(2);
var cell4 = row.CreateCell(3);
var cell5 = row.CreateCell(4);
var cell6 = row.CreateCell(5);
var cell7 = row.CreateCell(6);
var cell8 = row.CreateCell(7);
var cell9 = row.CreateCell(8);
var cell10 = row.CreateCell(9);
var cell11 = row.CreateCell(10);
var cell12 = row.CreateCell(11);
var cell13 = row.CreateCell(12);
var cell14 = row.CreateCell(13);
var cell15 = row.CreateCell(14);
var cell16 = row.CreateCell(15);
cell1.SetCellValue(model.OwnCity);
cell2.SetCellValue(model.real_name);
cell3.SetCellValue(model.ErpCode);
cell4.SetCellValue(model.sex);
cell5.SetCellValue(model.login_name);
cell6.SetCellValue(model.unit_name);
cell7.SetCellValue(model.dep_name);
cell8.SetCellValue(model.GZGW);
cell9.SetCellValue(model.id_card);
cell10.SetCellValue(model.WorkDate.HasValue ? model.WorkDate.Value.ToString("yyyy年MM月") : "");
cell11.SetCellValue(model.Education);
cell12.SetCellValue(model.NowMajorGrade);
cell13.SetCellValue(model.NowJobGrade);
cell14.SetCellValue(model.mobile);
cell15.SetCellValue(EncryptionAndDecryption.DecryptByLgzn(EncryptionAndDecryption.DecryptByLgzn(model.password)));
cell16.SetCellValue(model.r1);
}
//保存Workbook方式二 保存到内存流中
var stream = new MemoryStream();
workbook.Write(stream);
stream.Flush();
stream.Position = 0;
sheet = null;
workbook = null;
string ExcelName = string.Format("{0}.xls", "用户管理_" + DateTime.Now.ToString("yyyyMMddHHmmss"));
return File(stream, "application/vnd.ms-excel", ExcelName);
}
else
{
return Json(Tool.GetJsonWithCode(APICode.Fail, "请求参数不能为空"));
}
}
catch (Exception ex)
{
LogHelper.WriteLog(ex.Message + ",行号:" + ex.StackTrace);
return Json(Tool.GetJsonWithCode(APICode.Fail, "发生错误,请联系管理员。"));
}
}
}
}