Files
PRA-only-demo/scripts/export-last-run.js
T

31 lines
1.4 KiB
JavaScript
Raw Normal View History

// 从运行记录的 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);
});