reader.readAsArrayBuffer(f);
} else {
reader.readAsBinaryString(f);
}
// 这里补个时间问题,excel的时间格式是序列号,如果用的上需要转化
// 需要在这个位置加上调用方法
// outdata.map(v => {
// let obj = {};
// obj.time= ExcelDateToJSDate(v.时间);
// arr.push(obj);
// });
// 这个方法暂时是目前找的比较好,日期不是很精确,精确不到秒(暂未查出小时和分钟出问题),excel日期序列号装换成时间格式,
// function ExcelDateToJSDate(serial) {
// let utc_days = Math.floor(serial - 25569);
// let utc_value = utc_days * 86400;
// let date_info = new Date(utc_value * 1000);
// let fractional_day = serial - Math.floor(serial) + 0.0000001;
// let total_seconds = Math.floor(86400 * fractional_day);
// let seconds = total_seconds % 60;
// total_seconds -= seconds;
// let hours = Math.floor(total_seconds / (60 * 60));
// let minutes = Math.floor(total_seconds / 60) % 60;
// let ctime=new Date(date_info.getFullYear(), date_info.getMonth(), date_info.getDate(), hours, minutes, seconds);
// 这是时间拼接,需要什么格式可以自行拼接
// return (ctime.getFullYear()+'-'+(ctime.getMonth()+1)+'-'+ctime.getDate());
// }
},
// 上传按钮
fileBtn() {
//上传这里可以分两种,一种是直接获取input的文件上传给后端,一种是我们已经解析了excel所以只要把listTable数组传给后端
//两种方法都可行,看自己需求
}
}
}
下面是excel上传文件模板

table内容下载到excel文件中
因为方式不一样,需要在安装
npm i file-saver在vue的script中引入
import XLSX from "xlsx";
import FileSaver from "file-saver";内容导出,写在vue的methods中
downBtn() {
// 获取table的dom元素
let vv = XLSX.utils.table_to_book(document.getElementById("tableExcel"));
let vbouts = XLSX.write(vv, {
bookType: "xlsx",
bookSST: true,
type: "array"
});
try {
FileSaver.saveAs(
// 这是下载的excel文件名
new Blob([vbouts], { type: "application/octet-stream" }),
"员工表.xlsx"
);
} catch (e) {
if (typeof console !== "undefined") console.log(e, vbouts);
}
return vbouts;
}总结
以上所述是小编给大家介绍的vue excel上传预览和table内容下载到excel文件中,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对软件开发网网站的支持!










