网站首页 > 技术文章 正文
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编辑器实战)
你 发表评论:
欢迎- 05-10如何优化数据库和前端之间的交互?
- 05-10前端代码优化小秘籍(前端优化24条建议)
- 05-10VS Code当中的15个神仙插件,值得收藏
- 05-10如何自己开发一个Google浏览器插件?
- 05-10前端流行框架Vue3教程:14. 组件传递Props效验
- 05-10吃了一年的SU,最好用的插件都在这了
- 05-10前端必看!这款神器让网站界面告别千篇一律
- 05-10程序员请收好:10个非常有用的 Visual Studio Code 插件
- 最近发表
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端md5加密 (49)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- 前端懒加载 (45)
- 前端接口 (46)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle查询数据库 (45)
- oracle约束 (46)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- mac oracle (47)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)