因为是老项目,所以我用的是jquery,css库是bootsharp。
需求是点击按钮实现上传excel转换成表格,代码如下
html
导入Excel
复制代码
js
$(".btn-express").on("click", function (e) {//将input[file]隐藏,点击按钮才触发上传文件
$(".btn-file").trigger("click")
})
$(".btn-file").on("change", function (ev) {//当文件上传
// console.log(ev.target.files)
var reader = new FileReader();
reader.onload = function (e) {
try {
var data = e.target.result;
var workbook = XLSX.read(data, { type: 'binary' });
var sheetNames = workbook.SheetNames; // 工作表名称集合
var worksheet = workbook.Sheets[sheetNames[0]]; // 只读取第一张sheet
var html = XLSX.utils.sheet_to_html(worksheet);//解析成html
console.log(html)
$("#demo").html(html)//将解析的html放入表格
} catch (err) {
console.log(err)
Anim.msg("文件类型不正确");
return false;
}
};
reader.readAsBinaryString(ev.target.files[0]);
})
复制代码
解析
读取excel需要通过XLSX.read(data, {type: type})方法来实现,返回一个叫WorkBook的对象,type主要取值如下:
base64: 以base64方式读取;
binary: BinaryString格式(byte n is data.charCodeAt(n))
string: UTF8编码的字符串;