xlsx的使用。vue导入Excel表单,并转成JSON字符串。
3月9日 周三import XLSX from 'xlsx'; //import * as XLSX from 'xlsx'; // 数据导出导入所需要的依赖,新建一个XLSX对象,将xlsx文件里的所有方法添加到XLSX中。+++xlsx的使用,先安装 XLSX 插件npm install xlsx --savehtml部分<inputtype="file"ref="fileTemp"ac
·
3月9日 周三
import XLSX from 'xlsx'; //
import * as XLSX from 'xlsx'; // 数据导出导入所需要的依赖,
新建一个XLSX对象,将xlsx文件里的所有方法添加到XLSX中。+++
xlsx的使用,
先安装 XLSX 插件
npm install xlsx --save
html部分
<input
type="file"
ref="fileTemp"
accept=".xlsx,.xls"
@change="getImportFile"
/>
在所需要的文件中引用,
import * as XLSX from 'xlsx'; // 数据导出导入所需要的依赖,
新建一个XLSX对象,将xlsx文件里的所有方法添加到XLSX中。+++
import XLSX from 'xlsx'; // 会引不进去,原因未知。
// 获取文件
getImportFile() {
if (this.$refs.fileTemp && !this.$refs.fileTemp.files[0]) return false;
const selectedFile = this.$refs.fileTemp.files[0];
console.log(selectedFile);
console.log(XLSX);
this.readFile(selectedFile);
},
//将文件转换成 JSON
readFile(file) {
let that = this;
let reader = new FileReader();
reader.onload = function (e) {
let wb = XLSX.read(e.target.result, { type: "binary" }); // 读取文件
let wbSheetName = wb.SheetNames[0];
const wbSheet = wb.Sheets[wbSheetName];
// 解析文件 {defval: ''}=>防止单元格为空的时解析出来的结果缺少相应的key
let selectFileData = XLSX.utils.sheet_to_json(wbSheet, { defval: "" });
if (!selectFileData.length) {
console.log(`上传的文件数据为空!`);
return false;
} else {
console.log(selectFileData);
}
console.log(selectFileData);
//对获取到的对象数组进行操作
for (let i = 0; i < selectFileData.length; i++) {
delete selectFileData[i].__EMPTY;
//操作时间,Excel会将时间类型转换成 文本类型,需要反相转成时间
selectFileData[i].JZSJ = that.formatDate(selectFileData[i].JZSJ , '/')
}
console.log(selectFileData);
//将对象数组 转换成 JSON类型
let data = JSON.stringify(selectFileData);
console.log(data);
// that.$set(that.textarea3, '', data)
that.textarea3 = data;
console.log(that.textarea3);
};
reader.readAsBinaryString(file);
},
//转换时间
formatDate(numb, format) {
//第二种写法,上一种写法会导致时间 +-1天
let time = new Date(
(numb - 25567) * 24 * 3600000 -
5 * 60 * 1000 -
43 * 1000 -
24 * 3600000 -
8 * 3600000
);
let year = time.getFullYear() + "";
let month = time.getMonth() + 1 + "";
let date = time.getDate() + "";
if (format && format.length === 1) {
return year + format + month + format + date;
}
return (
year +
(month < 10 ? "0" + month : month) +
(date < 10 ? "0" + date : date)
);
},
原文链接:https://blog.csdn.net/Wangyuan_wo/article/details/121424346
原文链接:https://blog.csdn.net/qq_41646249/article/details/103031603?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1.pc_relevant_default&utm_relevant_index=2
更多推荐
已为社区贡献4条内容
所有评论(0)