开发工具与关键技术:后端
作者:汪利燕
撰写时间:2019年5月2日
哎呀呀,今天给大家写一个Excel表格数据的导入和导出他们是怎么实现的,下面你们要睁大眼睛看了喔。
(导入、导出的按钮效果图如下)
第一个:批量导出考生数据
第一步:先给批量导出考生按钮写一个点击事件
(批量导出考生按钮onclick:ImportStuExcel)
function ImportStuExcel() {
var AcademeID = $("#sltAcademe").val();
var GradeID = $("#sltGrade").val();
var ClassID = $("#sltClass").val();
if ((GradeID == "" || GradeID == null)) {GradeID = 0;}
if ((ClassID == "" || ClassID == null)) {ClassID = 0;}
if (AcademeID == 0) {
layer.confirm("是否导出全校数据?若不需要请筛选数据", { icon: 3, title: '提示' }, function (index) {
layer.close(index);
window.open("ExportExamineeByID?AcademeID=" + AcademeID + "&GradeID=" + GradeID + "&ClassID=" + ClassID);
});
} else {
window.open("ExportExamineeByID?AcademeID=" + AcademeID + "&GradeID=" + GradeID + "&ClassID=" + ClassID);
}
}
如果没有选择学院、年级、班级信息的话,它会弹出提示框:是否要导出全校的数据,如果是就导出全校数据出来,取消就没有。
如果有选择学院、班级、年级信息,按批量导出考生按钮直接导出到Excel表格里面了,左下角那里有个考生信息就是导出的数据,点击下面那里它就可以看到数据(数据图如***:有些人的是直接弹出Excel表格的,我的是在左下角。
第二个:批量导入考生数据
第一步:先给批量导入考生按钮写一个点击事件
(批量导出考生按钮onclick:openExcelModel)
function openExcelModel() {
$("#frmExcelData input[type='reset']").click();
$("#modExcelData").modal();
}
点击事件写完了(效果图如下)
没有看图片是不是觉得代码有点问题怎么那么少(哈哈)。
只是按钮的一个点击事件,重点是点开之后,选择文件、下载Excel导入模板、导入到数据库
第二步:选择Excel文件按钮值改变事件
(选择Excel文件按钮onchange:upExcel)
function upExcel() {
var formData = new
FormData(document.getElementById("frmExcelData"));
var xhr;
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xhr = new XMLHttpRequest();
} else {
// code for IE6, IE5
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
xhr.open("POST", "ImportExcel");
xhr.send(formData);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
if (xhr.responseText) {
TabStuExcel = layuiTable.reload("tabStuExcel", {
url: "SelectImportStudent"
});
}
}
}
}
刚开始是无数据的,点击选择文件弹出一个文件夹,点击文件夹打开数据就会有数据出现。(数据出现如下图)
数据出来可以点击下载Excel导入模板或者导入到数据库。
第三步:下载Excel导入模板按钮值改变事件
(下载Excel导入模板按钮id:ImportDemo)
$("#ImportDemo").click(function () { window.open(“DownloadTemplet?”); });
数据直接就导入过来了。
第三步:导入到数据库中
(导入到数据库中id:ImportDatabase)
$("#ImportDatabase").click(function () {
var trs = $(".modal-content .layui-table-body tr");
console.log(trs);
if (trs.length > 0) {
var layerIndex = layer.load(0);//显示加载层
$.ajax({
type: "POST",
url: "InsertImportStudent",
dataType: "json",
success: function (message) {
layer.close(layerIndex);//关闭加载层
layer.msg(message.Text, { icon: 0, skin: "layui-layer-molv" });
tabStudentSearch();
$("#modExcelData").modal('hide');
}
});
} else {
layer.msg("没有符合要求的数据。", { icon: 0, skin: "layui-layer-molv" });
}
console.log(trs);
});
我之前已经导入过这4条数据到数据库里面去了,所以弹出提示框显示:导入4条数据,存在的数据有4条,成功保存0条数据到数据库。
如果是导入新数据库到数据库,弹出提示框:导入n条数据,存在的数据有n条,成功保存n条数据到数据库。控制器的内容太多了所以删减,如有需要可以留言私发。