31 lines
1.4 KiB
JavaScript
31 lines
1.4 KiB
JavaScript
// 从运行记录的 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);
|
||
|
|
});
|