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. [转帖]经典的 Fork 炸弹解析

    https://linux.cn/article-5685-1.html Jaromil 在 2002 年设计了最为精简的一个 Linux Fork 炸弹,整行代码只有 13 个字符(包括空格在内,空 ...

  2. [转帖]JMeter 接口测试快速入门

    https://my.oschina.net/choerodon/blog/5289725   JMeter简介 JMeter 的特性: 对于多种协议的功能测试和性能测试 Web - HTTP, HT ...

  3. [转帖]Shell三剑客之awk

    目录 awk简述 awk的工作过程 awk的工作原理 awk的基本格式及其内置变量 getline 文本内容匹配过滤打印 对字段进行处理打印 条件判断打印 awk的三元表达式与精准筛选用法 awk的精 ...

  4. [转帖]Day63_Kafka(一)

    第一讲 Kafka基础操作 课程大纲 课程内容 学习效果 掌握目标 Kafka简介 消息队列 掌握 Kafka简介 Kafka分布式环境 Kafka操作 Kafka shell 掌握 Kafka ap ...

  5. [转帖]ldconfig命令

    https://linux265.com/course/linux-command-ldconfig.html ldconfig命令的作用主要是在默认搜寻目录/lib和/usr/lib以及动态库配置文 ...

  6. 【转帖】MySQL InnoDB存储原理深入剖析与技术分析

    一.MySQL记录存储: MySQL InnoDB的数据由B+树来组织,数据记录存储在B+树数据页(page)中,每个数据页16kb,数据页 包括页头.虚记录.记录堆.自由空间链表.未分配空间.slo ...

  7. [转帖]NVMe 与 AHCI

    https://www.cnblogs.com/zengkefu/p/5634345.html http://elf8848.iteye.com/blog/1731274 AHCI: NCQ技术,60 ...

  8. Oracle数据库无法启动的简单处理

    1. 最近一台测试机器上面的Oracle数据库启动不起来了. 提示信息是UNDOTBS2的表空间找不到. 2. 然后可以使用 startup mount 简单开起来 但是发现还是无法使用. 3.本来想 ...

  9. iframe父页面传递参数给子页面

    父页面通过ifarame传递参数 有些时候,我们需要在嵌套页面. 我们就需要使用iframe了. 通过iframe传递参数给子页面. 需求描述,当我们点击按钮的时候. 传递参数给子页面.子页面接受后展 ...

  10. 【代码分享】使用 avx512 + 查表法,优化凯撒加密

    作者:张富春(ahfuzhang),转载时请注明作者和引用链接,谢谢! cnblogs博客 zhihu Github 公众号:一本正经的瞎扯 关于凯撒加密,具体请看:https://en.wikipe ...