如何導(dǎo)入導(dǎo)出數(shù)據(jù)到 Excel 文件
更新時(shí)間:
導(dǎo)入導(dǎo)出 Excel 數(shù)據(jù)
基礎(chǔ)依賴
推薦方案:前端導(dǎo)出,使用 xlsx 庫(kù)(https://g.alicdn.com/code/lib/xlsx/0.18.5/xlsx.mini.min.js)
添加第三方庫(kù)
導(dǎo)出數(shù)據(jù)
var sheet = XLSX.utils.json_to_sheet({json數(shù)據(jù)});
var b = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(b,sheet,"sheet名稱");
XLSX.writeFile(b, "文件名稱.xlsx");
導(dǎo)入數(shù)據(jù)
借用上傳組件獲取插入的 SQL 語(yǔ)句,在集成中插入執(zhí)行。
1. 創(chuàng)建集成
創(chuàng)建動(dòng)態(tài) SQL 語(yǔ)句執(zhí)行集成sql_run
2. 使用上傳組件
限定上傳組件選擇文件的格式為表格
.xlsx
配置上傳動(dòng)作為默認(rèn)
配置上傳改變( change )事件執(zhí)行自定義腳本
// 解碼 Base64 數(shù)據(jù) 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 庫(kù)解析 Excel 數(shù)據(jù)并轉(zhuǎn)換為對(duì)象數(shù)組 function parseExcel(base64Data) { const arrayBuffer = base64ToArrayBuffer(base64Data); const workbook = XLSX.read(arrayBuffer, { type: 'array' }); // 假設(shè)你的數(shù)據(jù)在第一個(gè)工作表 const firstSheetName = workbook.SheetNames[0]; const worksheet = workbook.Sheets[firstSheetName]; // 將工作表數(shù)據(jù)轉(zhuǎn)換為 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 數(shù)據(jù)轉(zhuǎn)換為對(duì)象數(shù)組 const objectArray = parseExcel(upload.values[0].base64Data); const sql = convertJSON2SQL(objectArray); sql_run.trigger({ "sql": sql });
根據(jù)自身需求修改
convertJSON2SQL
中column1,column2,column3
為自己數(shù)據(jù)結(jié)構(gòu)
3. 修改集成回調(diào),為刷新數(shù)據(jù)列表
這里的集成操作為列表的數(shù)據(jù)的刷新操作,如果不需要刷新列表,可以忽略這一步。
文檔內(nèi)容是否對(duì)您有幫助?