网站首页 > 技术文章 正文
1. 前言
本章是完善用户管理的一个小功能---导入数据,本章将使用第三方库
Magicodes.IE.Excel.AspNetCore。
2. 类库简介
Magicodes.IE.Excel.AspNetCore库是心莱科技麦扣出品的一个支持Excel导入导出的功能。有兴趣的同学可以去搜索一下。类库是支持Dto导入导出以及动态导出,支持Excel、Word、Pdf和Html功能较多。不过作者维护的Github上的仓库。但是该库有个缺点是Excel导入不支持“.xls”文件,即不支持Excel97-2003。也许未来可以支持。
3. 代码示例
3.1 安装库Magicodes.IE.Excel.AspNetCore
我们仅演示使用Excel来完成学生数据的导入。我们需要在已准备好的工程中安装以下包,参考如下所示:
3.2 创建导入Student
创建导入类Student.ts并设置必要的属性
如上述代码所示,我们定义了以上学生数据类,主要注意事项如下
- ExcelImporter特性可以设置一些导入的全局设置,比如是否标注错误、导入Sheet名称(如不设置则自动获取第一个)、截止读取的列数、表头位置。
- 支持常用的数据验证设置,比如必填、最大长度。
- 支持数据重复校验,比如身份证号码。见ImporterHeader特性的IsAllowRepeat设置。
- 支持列头设置,将ImporterHeader的Name属性。除此之外,ImporterHeader还支持自动过滤空格(默认启用)、处理掉所有的空格、列索引等。
- 对数据列启用了忽略设置,见SchoolId的”[ImporterHeader(IsIgnore = true)]”。
- 使用了值映射,见“Gender”属性。启用值映射之后,将不会从枚举定义中获取值映射。
- 支持枚举,支持从枚举的Display、Description特性中获取值映射。
3.3 注册导入接口
创建在项目FlyingHat.Extensions中创建OfficeService.cs类并单例注册IExcelImporter
打开Program.cs中写入
builder.Services.AddOfficeService();
builder.Services.AddOfficeService();
3.4 生成导入模板并填充数据
通过构造函数注入 IExcelImporter ,然后开始编写导入功能,在导入之前是不是得准备一份模板?对于我们,手写模板?这是不存在的。
Magicodes.IE.Excel.AspNetCore封装了根据DTO自动生成Excel导入模板的方法,我们可以直接调用。这里我们来看下导入的相关方法。
通过导出的文件完成数据填充后导入到数据库
3.5 前端代码
界面展示:
JS代码展示:
注意:
popup.panelWebBtn是我封装的一个方法,您可以下载源码并查看。关于数据错误提示,我是返回前5项,这样前端页面也容易展示,这个上传后的逻辑可以根据实际情况而修改。
结语
本章实现了Excel文件的导入导出,仅仅是类库的简单使用介绍,当然导入的方式也有其他类库例如NPOI等。详细功能请获取源码查看。各位同学在阅读实践过程中有看不懂或有其他想法的可以在评论区留言或者私信。教程有帮助的话请各位同学帮忙评论点赞关注三连,感谢大家!
----------------------------------------------------
私信: 校园图书管理系统 可以获取Gitee的链接
猜你喜欢
- 2025-05-03 java轻松玩转Excel之EasyExcel(java到处excel)
- 2025-05-03 SQL查询Excel结果数据还可这样输出到窗体控件ListBox和ListView
- 2025-05-03 一文带你搞懂Vue3 底层源码(vue3 原理)
- 2025-05-03 超级实用的NPM包!Excel 转 JSON 很简单
- 2025-05-03 在.net core中导出word和excel(.net core 文件上传下载)
- 2025-05-03 【access开发】导入excel 并生成表
- 2025-05-03 前端必读:如何在 JavaScript 中使用SpreadJS导入和导出 Excel 文件
- 2024-09-14 Layui 项目前端导出Excel文件总结
- 2024-09-14 前端导出Excel在线指北
- 2024-09-14 使用JavaScript实现前端导入和导出excel文件?(H5编辑器实战)
你 发表评论:
欢迎- 06-24发现一款开源宝藏级工作流低代码快速开发平台
- 06-24程序员危险了,这是一个 无代码平台+AI+code做项目的案例
- 06-24一款全新的工作流,低代码快速开发平台
- 06-24如何用好AI,改造自己的设计工作流?
- 06-24濮阳网站开发(濮阳网站建设)
- 06-24AI 如何重塑前端开发,我们该如何适应
- 06-24应届生靠这个Java简历模板拿下了5个offer
- 06-24服务端性能测试实战3-性能测试脚本开发
- 570℃几个Oracle空值处理函数 oracle处理null值的函数
- 568℃Oracle分析函数之Lag和Lead()使用
- 553℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 548℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 548℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 539℃【数据统计分析】详解Oracle分组函数之CUBE
- 528℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 522℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)