找回密码
 会员注册
查看: 181|回复: 0

Asp.Net Core Excel导入导出

[复制链接]

1389

主题

5

回帖

496万

积分

管理员

积分
4962990
发表于 2024-2-29 08:42:50 | 显示全部楼层 |阅读模式

Excel 导入导出使用开源项目 NPOI 进行处理,以下把用户导入和用户导出作为示例。 Excel 导入 Excel 导入分两步,第一步把需要导入的文件通过 FileController 上传到后台,第二步把第一步返回 的文件相对地址传给导入处理方法。

Excel导入

  1.前端写法

  1. <script type="text/javascript">
  2. var filePath = undefined;
  3. $(document).ready(function () {
  4. $("#isOverride").ysCheckBox({
  5. data: [{ Key: '1', Value: '是否更新已经存在的用户数据' }]
  6. });
  7. $("#importFile").fileinput({
  8. language: 'zh',
  9. 'uploadUrl': '@Url.Content("~/File/UploadFile")' + '?fileModule=@UploadFileType.Import.ParseToInt()',
  10. showPreview: false,
  11. allowedFileExtensions: ['xls', 'xlsx']
  12. }).on("fileuploaded", function (event, data) {
  13. var obj = data.response;
  14. if (obj.Tag == 1) {
  15. filePath = obj.Data;
  16. }
  17. else {
  18. filePath = '';
  19. }
  20. });
  21. });
  22. function saveForm(index) {
  23. if (!filePath) {
  24. ys.alertError('文件未上传或者上传失败');
  25. return;
  26. }
  27. var postData =$("#form").getWebControls();
  28. postData.FilePath = filePath;
  29. ys.ajax({
  30. url: '@Url.Content("~/OrganizationManage/User/ImportUserJson")',
  31. type: "post",
  32. data: postData,
  33. success: function (obj) {
  34. if (obj.Tag == 1) {
  35. ys.msgSuccess('导入成功');
  36. parent.searchGrid();
  37. parent.layer.close(index);
  38. }
  39. else {
  40. ys.msgError(obj.Message);
  41. }
  42. }
  43. });
  44. }
  45. </script>
复制代码

   2.后端写法

  1. [HttpPost]
  2. public async Task<IActionResult> ImportUserJson(ImportParam param)
  3. {
  4. List<UserEntity> list = new ExcelHelper<UserEntity>().ImportFromExcel(param.FilePath);
  5. TData obj = await userBLL.ImportUser(param, list);
  6. return Json(obj);
  7. }
复制代码

方法ImportFromExcel 会根据传入的 Excel 文件相对路径,找到文件的绝对路径。Excel 的第一行是标题, 第二行是列名,列名可以是实体类的属性名称或者实体类属性名称的Description 描述。

Excel导出

Excel 导出可以根据界面的搜索条件,后台设置需要导出的列,导出所有符合条件的记录。

  1.前端写法

  1. <a id="btnExport" class="btn btn-warning" onclick="exportForm()"><i class="fa fa-download"></i> 导出</a>
  2. function exportForm() {
  3. var url = '@Url.Content("~/OrganizationManage/User/ExportUserJson")';
  4. var postData = $("#searchDiv").getWebControls();
  5. ys.exportExcel(url, postData);
  6. }
复制代码

   2.后端写法

  1. [HttpPost]
  2. public async Task<IActionResult> ExportUserJson(UserListParam param)
  3. {
  4. TData<string> obj = new();
  5. TData<List<UserEntity>> userObj = await userBLL.GetList(param);
  6. if (userObj.Tag == 1)
  7. {
  8. string file = new ExcelHelper<UserEntity>().ExportToExcel("用户列表.xls",
  9. "用户列表",
  10. userObj.Data,
  11. new string[] { "UserName", "RealName", "Gender", "Mobile", "Email" });
  12. obj.Data = file;
  13. obj.Tag = 1;
  14. }
  15. return Json(obj);
  16. }
复制代码


来源:https://blog.csdn.net/sakenc/article/details/118291631
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-26 12:45 , Processed in 0.359313 second(s), 25 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表