// 从运行记录的 tmp_table.json 重建比价表并导出 Excel const ExcelJS = require("exceljs"); const fs = require("fs"); const table = JSON.parse(fs.readFileSync("C:/Users/Administrator/AppData/Roaming/rpa-studio/tmp_table.json", "utf8")); // table[0] 是损坏的表头行(["标题"]),数据行从 index 1 开始:6 列 = 标题/价格/店铺/销量/空/AI const dataRows = table.slice(1).filter((row) => row.length >= 4 && row[0]); const aiText = table.map((row) => (row.length >= 6 ? row[5] : null)).find((c) => c && String(c).trim() && c !== null && String(c) !== "None") || ""; const workbook = new ExcelJS.Workbook(); const sheet = workbook.addWorksheet("比价结果"); sheet.addRow(["标题", "价格", "店铺", "销量"]); for (const row of dataRows) { sheet.addRow([row[0], row[1], row[2], row[3]]); } // AI 分析单独放一个 sheet const aiSheet = workbook.addWorksheet("AI分析"); aiSheet.addRow(["AI 比价分析结论"]); aiSheet.getRow(1).font = { bold: true }; aiSheet.addRow([String(aiText)]); aiSheet.getColumn(1).width = 120; sheet.getColumn(1).width = 60; sheet.getColumn(2).width = 12; sheet.getColumn(3).width = 24; sheet.getColumn(4).width = 14; sheet.getRow(1).font = { bold: true }; const out = "C:/Users/Administrator/Desktop/淘宝手机比价.xlsx"; workbook.xlsx.writeFile(out).then(() => { console.log("written:", out, "dataRows:", dataRows.length, "aiLen:", String(aiText).length); });