如何导入导出数据到 Excel 文件

更新时间:2024-12-19 10:01:19

导入导出 Excel 数据

基础依赖

推荐方案:前端导出,使用 xlsx 库(https://g.alicdn.com/code/lib/xlsx/0.18.5/xlsx.mini.min.js

添加第三方库

image.png

导出数据

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_runimage

2. 使用上传组件

image

  1. 限定上传组件选择文件的格式为表格.xlsx

  2. 配置上传动作为默认

  3. 配置上传改变( change )事件执行自定义脚本

  4. 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
    });

  5. 根据自身需求修改convertJSON2SQLcolumn1,column2,column3为自己数据结构

3. 修改集成回调,为刷新数据列表

image

这里的集成操作为列表的数据的刷新操作,如果不需要刷新列表,可以忽略这一步。