1.获取源码

源码是捐赠方式获取,详细请QQ联系我 :)

2.实现效果

2.1 导出导入模板

2.2 导入学生数据

3.项目源码

只挑重点讲,详细请看源码。

学生管理包含了学生信息的增删改查,这里我只讲最重要的根据模板导入和导出。

  • 前端代码
<div>
<div class="search-div">
<div class="">
<div class="layui-inline">
<label class="search-label">学号:</label>
<div class="layui-input-inline">
<input class="layui-input search-input" id="sno" name="sno" autocomplete="off">
</div>
</div>
<div class="layui-inline">
<label class="search-label">姓名:</label>
<div class="layui-input-inline">
<input class="layui-input search-input" id="sname" name="sname" autocomplete="off">
</div>
</div>
<div class="layui-inline">
<label class="search-label">班级:</label>
<div class="layui-input-inline">
<input class="layui-input search-input" id="className" name="className" autocomplete="off">
</div>
</div> <button class="layui-btn layui-btn-sm" data-type="reload" id="search">搜索</button> </div> </div> <table id="tb-student" lay-filter="tb-student"></table> </div>
case 'exportAll':
// 导出文件
document.getElementById('exportForm').reset();
$("#exportForm").attr("action",ctx+'api/student/export');//改变表单的提交地址为下载的地址
$("#exportForm").attr("method","post");
$("#ids").val("");
$("#contentType").val('学生信息');
$("#exportForm").submit();//提交表单
break;
case 'export':
if (checkData.length == 0) {
layer.alert('请选择要导出的行');
} else {
for (var i = 0; i < checkData.length; i++) {
ids.push(checkData[i].id);
}
// 导出文件
document.getElementById('exportForm').reset();
$("#exportForm").attr("action",ctx+'api/student/export');//改变表单的提交地址为下载的地址
$("#exportForm").attr("method","post");
$("#ids").val(JSON.stringify(ids));
$("#contentType").val('学生信息');
$("#exportForm").submit();//提交表单 $("#ids").val("");
} break;
case 'exportTemplate':
// 导出文件
document.getElementById('exportForm').reset();
$("#exportForm").attr("action",ctx+'api/student/exportTemplate');//改变表单的提交地址为下载的地址
$("#exportForm").attr("method","post");
$("#contentType").val('学生信息');
$("#exportForm").submit();//提交表单
break;
function renderUploadExcel(){
upload.render({
elem: '#uploadExcel' //绑定元素
,url: 'api/student/upload' //上传接口
,accept: 'file' //普通文件
,acceptMime:'application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
,exts: 'xls|xlsx' //只允许上传xls文件
,before:function (obj) {
layer.load(); //上传处理loading
}
,done: function(res){
// 上传完毕回调
layer.closeAll('loading'); //关闭loading
if(res.code==200){
userTable.reload();
layer.msg("导入成功!");
}else {
layer.msg(res.message);
}
}
,error: function(){
//请求异常回调
layer.closeAll('loading'); //关闭loading
layer.msg("导入失败!");
}
});
}
  • 后端代码
/**
* 导出
* @param response
* @throws Exception
*/
@PostMapping("/export")
public void export(String contentType, String ids, HttpServletResponse response) throws Exception{
// 创建模板
HSSFWorkbook workbook = templateUtil.createWorkBook(contentType);
HSSFSheet sheet = workbook.getSheetAt(0);
JSONArray array = JSON.parseArray(ids);
Long[] ids1 = null;
// 转换ids
if(array!=null && array.size()>0){
ids1 = new Long[array.size()];
for (int i = 0; i < array.size(); i++) {
ids1[i] = array.getLong(i);
}
} // 获取数据集合
List<Student> list = studentService.getByIds(ids1);
// 在表中存放查询到的数据放入对应的列
Student entity=null;
HSSFRow row;
for (int i = 0; i < list.size(); i++) {
entity = list.get(i);
row = sheet.createRow(i+1);
// 填充一行
templateUtil.fillStudentColValues(row,entity);
} String fileName = contentType.replace("模板","")+".xls";
templateUtil.writeFile(fileName, workbook, response);
} /**
* 导出导入模板
* @param response
* @throws Exception
*/
@PostMapping("/exportTemplate")
public void exportTemplate(@RequestParam String contentType, HttpServletResponse response) throws Exception{
HSSFWorkbook workbook = templateUtil.createWorkBook(contentType);
String fileName = contentType.replace("模板","")+"模板.xls";
templateUtil.writeFile(fileName, workbook, response);
}

源码是捐赠方式获取,详细请QQ联系我 :)

Spring Boot学生信息管理系统项目实战-4.学生管理的更多相关文章

  1. 一步一步学Spring Boot 2 微服务项目实战 - 黄文毅-2018年8月第一次印刷

    properties 配置文件的优先级高于.yml .在properties文件中配置了server.port=8080 同时在.yml中配置了server.port=8090  Spring Boo ...

  2. C语言学生信息管理系统项目源码

    #include   //包含printf().scanf().gets().puts().getchar()函数 #include   //包含malloc()函数 #include   //包含s ...

  3. 【Python毕业设计】基于Python+Flask+MySQL的学生信息管理系统(附完整源码)

    1.项目说明基于python+Flask+mysql的学生信息管理系统项目实战 项目需要安装pycharm专业版,mysql数据库以及项目所需的所有模块创建数据库名称db_online_notes,然 ...

  4. 基于Spring MVC + Spring + MyBatis的【学生信息管理系统】

    资源下载:https://download.csdn.net/download/weixin_44893902/45603211 练习点设计: 模糊查询.删除.新增 一.语言和环境 实现语言:JAVA ...

  5. [项目分享]JSP+Servlet+JDBC实现的学生信息管理系统

    本文存在视频版本,请知悉 项目简介 项目来源于:https://gitee.com/liu_xu111/JavaWeb01 这次分享一个学生管理系统,我感觉这是程序员在大学时期的毕设和课程设计选择最多 ...

  6. Node.js小项目——学生信息管理系统

    这是迄今为止第一次接触后端的东西,是一个很小的项目,但是对于前端学习入门很好.我是先学了VUE框架再学的Node,学起来比较轻松,不过每个人都有自己的学习方法️ 一.项目描述 学生信息管理系统,可以实 ...

  7. Spring Boot构建的Web项目如何在服务端校验表单输入

    本文首发于个人网站:Spring Boot构建的Web项目如何在服务端校验表单输入 这个例子用于演示在Spring Boot应用中如何验证Web 应用的输入,我们将会建立一个简单的Spring MVC ...

  8. spring boot 和shiro的代码实战demo

    spring boot和shiro的代码实战 首先说明一下,这里不是基础教程,需要有一定的shiro知识,随便百度一下,都能找到很多的博客叫你基础,所以这里我只给出代码. 官方文档:http://sh ...

  9. Python基础案例练习:制作学生信息管理系统

    一.前言 学生信息管理系统,相信大家或多或少都有做过 最近看很多学生作业都是制作一个学生信息管理系统 于是,今天带大家做一个简单的学生信息管理系统 二.开发环境: 我用到的开发环境 Python 3. ...

  10. struts2学生信息管理系统篇章①

    最近在看java1234分享的一个Struts2的学生信息管理系统的知识.因为本身java没什么底子.所以就没有什么好的技术去解决问题.一直在百度,不懂就百度.这样子下来其实也能学到一些东西,过阵子等 ...

随机推荐

  1. 【面试题精讲】JVM中有哪些垃圾收集器

    有时博客内容会有变动,首发博客是最新的,其他博客地址可能未同步,请认准https://blog.zysicyj.top 首发博客地址 系列文章地址 在Java虚拟机(JVM)中,有以下几种常见的垃圾收 ...

  2. [转帖]JDK8使用G1 垃圾回收器能解决大问题吗?

    https://zhuanlan.zhihu.com/p/458098236 G1 垃圾回收器真的不行吗? 本文想突出两个问题: 解决问题的思路:从最原始的角度去思考,问题的本身是因为缓存数据导致的G ...

  3. [转帖]46岁加入谷歌,51岁发明Go,他的编程原则影响了一大批程序员!

    https://www.zhihu.com/tardis/zm/art/551945410?source_id=1005 今年3月,万众瞩目的Go 1.18版本发布,Go终于开始支持泛型了!该版本不仅 ...

  4. SkyWalking的学习之三

    SkyWalking的学习之三 持续优化 SkyWalking 默认可以使用h2,但是感觉容量和性能都可能不太好 所以我想使用一下elasticSearch进行替换. 自己其实一直想心想去学习, 但是 ...

  5. 【转帖】26.Java本地方法的理解(native方法)

    目录 1.什么是本地方法? 2. 为什么要使用Native method? 1.什么是本地方法? 本地方法就是java代码里面写的native方法,它没有方法体.是为了调用C/C++代码而写的.在JN ...

  6. 使用 inotifywait的方式监控文件夹发生变化后自动执行脚本的方法

    0. 先安装inotify 最简单的方法为: yum install epel-release 安装扩展包源 yum install inotify-tools 1. 从网上抄了一下脚本 简单记录一下 ...

  7. ESXi6.7安装Win11的方法

    背景 公司里面要进行新的操作系统验证了. 之前Win10 Win7 Win8 都比较简单. 就是现在Win11有了TPM非常繁琐. 今天必须得搞一把了,就简单搜索了下. 发现还是可以解决的. 然后记录 ...

  8. NOI Linux 下 Geany 配置教程

    没有括号补全? 现在有自动括号补全了! 红色的 a.cpp 的意思是 a.cpp 没有保存. 现在来设置编译运行的快捷键. 不难推测 "%e" 是可执行文件的意思,"%f ...

  9. 结论&定理大全

    定理 1:包含 \(0\) 与 \(2^k-1\) 的按位与或空间和 \(k\) 个点的有传递性的有向图形成双射 证明: 空间->传递闭包:对于任意两个位 \(i,j\),若某个数包含 \(i\ ...

  10. 【JS 逆向百例】DOM事件断点调试,某商盟登录逆向

    声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 逆向目标 目标:某商盟登录 ...