本文参照于使用xlsx.full.min.js读取excel表格数据
数据源
车牌号 | 联系人 | 联系电话 |
---|---|---|
001 | 李四 | 10086 |
002 | 张三 | 1008611 |
003 | 王五 | 10010 |
004 | 穆六 | 65656 |
ClickBindExcel方法说明
Setting
el:元素id
col:行配置
col.属性:数据源第一行的值
col.属性.name:转化的dto属性
col.属性.template:格式化导入的属性值
suessF
成功之后回调函数
html代码
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="jquery-3.1.1.min.js"></script>
<script src="xlsx.full.min.js"></script>
<script src="BenDaoXls.js"></script>
</head>
<body>
<button οnclick="TestClick()">点击上传</button>
<p><input type="file" id="benli" value="test" style="display: none;"></p>
<script>
$(function(){
ClickBindExcel({
el:'benli',
col:{
车牌号:{
name:'code',
template:function(d){
return d;
}
},
联系人:{
name:'name',
},
联系电话:{
name:'phone',
template:function(d){
return "电话号:"+d
}
}
}
},function(data){
console.log(data);
})
})
function TestClick(){
$('#benli').click();
}
</script>
</body>
</html>
参照并且改进的js代码
function LoadUploadExecl(dom, LoadDto, suessF = (data)=> {
console.log(data);
}) {
if (!(dom.indexOf('#') > -1)) {
dom = "#" + dom;
}
$(dom).change(function() {
getExlDtoS = [];
var file = $(dom)[0].files[0];
const reader = new FileReader();
reader.readAsBinaryString(file);
reader.onload = (e) => {
const data = e.target.result;
const zzexcel = window.XLS.read(data, {
type: 'binary'
});
var getdata = window.XLS.utils.sheet_to_json(zzexcel.Sheets[zzexcel.SheetNames[0]])
console.log(getdata)
$.each(getdata, function(index, item) {
var obj = {}
$.each(item, function(e, f) {
if (LoadDto.hasOwnProperty(e)) {
obj[LoadDto[e].name] = f///==>name 为导出名字的属性
if(LoadDto[e].hasOwnProperty("template")){
obj[LoadDto[e].name] =LoadDto[e].template(f);
}
}
})
getExlDtoS.push(obj)
})
suessF(getExlDtoS)
// $(dom).unbind('change').val('');
$(dom).val('');
}
})
}
///配置
//读出数据之后回调
function ClickBindExcel(Setting, suessF = (data)=> {///=>{el:"id",col:{name:"",template:""}}
console.log(data);
}){
LoadUploadExecl(Setting.el,Setting.col,suessF);
}