An import I wrote before, suddenly turned to today, record it here, if you have any questions, please feel free to communicate and correct.
1. js introduction
<script th:src="@{/js/xlsx.full.min.js}"></script> <script th:src="@{/js/xlsx.core.min.js}"></script>
var wb;//读取完成的数据
var rABS = false; //是否将文件读取为二进制字符串
//EXCEL导入
function importFun(){
var f=$("#file")[0].files[0];
var reader = new FileReader();
reader.onload = function(e) {
var data = e.target.result;
if(rABS) {
wb = XLSX.read(btoa(fixdata(data)), {//手动转化
type: 'base64'
});
} else {
wb = XLSX.read(data, {
type: 'binary',
codepage: 936
});
}
//wb.SheetNames[0]是获取Sheets中第一个Sheet的名字
//wb.Sheets[Sheet名]获取第一个Sheet的数据
document.getElementById("divContent").innerHTML= JSON.stringify(
XLSX.utils.sheet_to_json(wb.Sheets[wb.SheetNames[0]]) );
var res=$("#divContent").html();
appendTable(res);
};
if(rABS) {
reader.readAsArrayBuffer(f);
} else {
reader.readAsBinaryString(f);
}
}
//导入(我是把读到的ecxel中的数据追加到表格)
function appendTable(res) {
res=JSON.parse(res);
var htmlR="";
for (var i=0;i<res.length;i++){
// htmlR+="<tr><td><input type='checkbox'></td>"
// trTotal=trTotal+i+1;
// htmlR+="<tr><td>"+i+1+"</td> <input type='button' value='删除'
onclick='delRow(this)' class='btn btn-danger'>";
htmlR+="<tr><td><input type='text' name='content'
value="+res[i].content+" readonly></td>";
htmlR+="<td><input type='text' name='money' value="+res[i].money+"
readonly></td>";
htmlR+="<td><input type='text' name='docNumber'
value="+res[i].docNumber+" readonly></td>";
htmlR+="<td><input type='text' name='ownerUnit'
value="+res[i].ownerUnit+" readonly></td>";
htmlR+="<td><input type='text' name='remark1' value="+res[i].remark+"
readonly></td>";
htmlR+="<td><a onclick='delRow(this)' class='btn btn-danger'>删除</a>
</td></tr>";
}
$("#tb").append(htmlR);
//追加完table后清空file
$("#file").val('');
}