导入导出 Excel 数据
基础依赖
推荐方案:前端导出,使用 xlsx 库(https://g.alicdn.com/code/lib/xlsx/0.18.5/xlsx.mini.min.js)
添加第三方库
导出数据
var sheet = XLSX.utils.json_to_sheet({json数据});
var b = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(b,sheet,"sheet名称");
XLSX.writeFile(b, "文件名称.xlsx");
导入数据
借用上传组件获取插入的 SQL 语句,在集成中插入执行。
1. 创建集成
创建动态 SQL 语句执行集成sql_run
2. 使用上传组件
限定上传组件选择文件的格式为表格
.xlsx
配置上传动作为默认
配置上传改变( change )事件执行自定义脚本
- JavaScript
// 解码 Base64 数据 function base64ToArrayBuffer(base64) { const binaryString = window.atob(base64); const len = binaryString.length; const bytes = new Uint8Array(len); for (let i = 0; i < len; i++) { bytes[i] = binaryString.charCodeAt(i); } return bytes.buffer; } // 使用 xlsx 库解析 Excel 数据并转换为对象数组 function parseExcel(base64Data) { const arrayBuffer = base64ToArrayBuffer(base64Data); const workbook = XLSX.read(arrayBuffer, { type: 'array' }); // 假设你的数据在第一个工作表 const firstSheetName = workbook.SheetNames[0]; const worksheet = workbook.Sheets[firstSheetName]; // 将工作表数据转换为 JSON const jsonData = XLSX.utils.sheet_to_json(worksheet); return jsonData; } function convertJSON2SQL(jsonData) { let sql = "INSERT INTO table_name (column1, column2, column3) VALUES "; let values = []; for (const data of jsonData) { values.push(`('${data.column1}', '${data.column2}', '${data.column3}')`); } return sql + values.join(", ") + ";"; } // 将 Base64 编码的 Excel 数据转换为对象数组 const objectArray = parseExcel(upload.values[0].base64Data); const sql = convertJSON2SQL(objectArray); sql_run.trigger({ "sql": sql });
根据自身需求修改
convertJSON2SQL
中column1,column2,column3
为自己数据结构
3. 修改集成回调,为刷新数据列表
这里的集成操作为列表的数据的刷新操作,如果不需要刷新列表,可以忽略这一步。
文档内容是否对您有帮助?