javascript 前端excel操作数据导入导出,读取、操作、重组

导入 并读取 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文件
上一篇:Python之pandas:将dataframe数据写入到xls表格的多个sheet内(防止写入数据循环覆盖sheet表)


下一篇:java读取excel文件