<%--将excel数据显示到页面--%>
<script type="text/javascript">
//原创来自 www.luofenming.com
//首先监听input框的变动,选中一个新的文件会触发change事件
document.querySelector("#testFile").addEventListener("change", function () {
//获取到选中的文件
var file = document.querySelector("#testFile").files[0];
//判断文件大小
//if (file.size > 1024 * 1024) {
// alert('当前文件大小:' + Math.floor(file.size / 1024) + 'KB,上传文件不能大于1024KB');
// return false;
//}
//判断文件类型
var type = file.name.split('.');
if (type[type.length - 1] !== 'xlsx' && type[type.length - 1] !== 'xls' && type[type.length - 1] !== 'XLS' && type[type.length - 1] !== 'XLSX') {
alert('只能选择excel文件导入');
return false;
}
//新建一个对象_读取文件
const reader = new FileReader();
//读取二进制字符串
reader.readAsBinaryString(file);
//文件读取完时触发一个方法
reader.onload = function (e) {
const data1 = e.target.result; //把读出来的二进制字符串赋值给data1变量
const zzexcel = window.XLSX.read(data1, { //从XLS文件中读取
type: 'binary', //数据类型_二进制数据
cellDates: true, //将 12/13/22 变为 2022/12/13 追加无效 。。。重要、重要
dateNF: 'yyyy/mm/dd' //指定日期格式为四位数的年份 。。。重要、重要
});
//申明变量result
const result = [];
//从EXCEL中取值,放入变量result
for (let i = 0; i < zzexcel.SheetNames.length; i++) {
const newData = window.XLSX.utils.sheet_to_json(zzexcel.Sheets[zzexcel.SheetNames[i]]); //xlsx.core.min.js插件 将excel数据取出
//console.log(newData); //F12 控制台中_确认
result.push(...newData)
}
var data2 = JSON.stringify(result) //用变量接收JSON数据,JSON.stringify(result)将对象变为字符串
var excel_data = JSON.parse(data2); //JSON.parse()将字符串变为对象 。。。重要、重要
//console.log(excel_data); //F12 控制台中_确认
jspreadsheet(document.getElementById('spreadsheet'), {
//往jexcel中装入数据
data: excel_data,
});
////逐条提取数据
for (var i = 0; i < result.length; i++) {
//console.log(JSON.stringify(result[i])); //EXCEL中每一行数据 F12的控制台中_确认
var strJsonData = JSON.stringify(result[i]);
//alert(strJsonData); //弹窗_确认
//}
//将excel_data传给后台,写入数据库
$.ajax({
url: "/jexcel_数据表_excel导入到页面.ashx",
datatype: "json",
data: { "RequestType": "inserted_excel_data", "excel_data": strJsonData },
success: function (data) {
//alert("excel导入成功")
document.getElementById('spreadsheet').jexcel.refresh(); //刷新表格
},
error: function (error) {
alert("excel导入不成功,格式、字段名与网页中的表格不一致");
//var falg = true;
}
});
//如果出现错误,马上停止????开启后只能处理一条数据
//if (falg = true) {
// return;
//}
}
//刷新表格 ????没成功???
document.getElementById('spreadsheet').jexcel.refresh();
}
});
</script>