导入 并读取 excel 表格数据 并作为 json 输出
// html
<button onClick={() => {$("#importFile").trigger("click")}}>导入</button>
{/* 不显示在界面中的部分,即备用项 */}
<input id="importFile" type='file' accept='.xlsx, .xls' onChange={this.onHandelImport} />
// js
import * as XLSX from 'xlsx';
onHandelImport(file) {
document.getElementById("cx_loading").style.display = 'block';
// 获取上传的文件对象
const { files } = file.target;
// 通过FileReader对象读取文件
const fileReader = new FileReader();
fileReader.onload = event => {
try {
const { result } = event.target;
// 以二进制流方式读取得到整份excel表格对象
const workbook = XLSX.read(result, { type: 'binary' });
let data = []; // 存储获取到的数据
// 遍历每张工作表进行读取(这里默认只读取第一张表)
for (const sheet in workbook.Sheets) {
if (workbook.Sheets.hasOwnProperty(sheet)) {
// 利用 sheet_to_json 方法将 excel 转成 json 数据
data = data.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));
// break; // 如果只取第一张表,就取消注释这行
}
}
document.getElementById("importFile").value = "";
// regien *** 在这里写读取后的代码 *********
// 打印数据查看
console.log(data)
} catch (e) {
message.error(e.message);
// 这里可以抛出文件类型错误不正确的相关提示
document.getElementById("importFile").value = "";
console.log(e);
}
};
// 以二进制方式打开文件
fileReader.readAsBinaryString(files[0]);
}
导出为 excel 表格
import ExportJsonExcel from 'js-export-excel';
const data = {
keys: { '啊': 'a', '泵': 'b', '次': 'c', '嘚': 'd' },
rows: [{ a: 1, b: 2, c: 3, d: 4 }, { a: 4, b: 3, c: 2, d: 1 }, { a: 'a', b: 'b', c: 'c', d: 'd' }]
}
let dataTable = []; //excel文件中的数据内容
let option = {}; //option代表的就是excel文件
dataTable = data.rows; //数据源
option.fileName = "下载文件"; //excel文件名称
option.datas = [
{
sheetData: dataTable, //excel文件中的数据源
sheetName: 'Sheet1', //excel文件中sheet页名称
sheetFilter: Object.values(data.keys), //excel文件中需显示的列数据
sheetHeader: Object.keys(data.keys), //excel文件中每列的表头名称
}
]
let toExcel = new ExportJsonExcel(option); //生成excel文件
toExcel.saveExcel(); //下载excel文件