liyugang
3 天以前 8c24730e9a52dc2c8933e8d41d2f9651de48a231
src/parse-isbn-log.mjs
@@ -3,7 +3,9 @@
const books = [];
function main() {
function parseBooks() {
  try {
  // 获取所有日志文件
  const logFiles = fs.readdirSync('./book-isbn-logs', { withFileTypes: true });
  // 遍历日志文件
@@ -32,21 +34,43 @@
    }
  }
}
try {
  main();
} catch (e) {
  console.error(e);
} finally {
  const EXCEL_FILE = "fiction-noisbn.xlsx";
  const workSheets = xlsx.parse(EXCEL_FILE);
  const sheet = workSheets[0];
    const result = [books[0]];
  for (const book of books) {
    const row=sheet.data.find(row => row[0] == book.id);
    row[5] = book.isbn;
      result.push(row);
  }
  const buffer = xlsx.build([sheet]);
  fs.writeFileSync(EXCEL_FILE, buffer, (err) => { });
    const buffer = xlsx.build([{ name: "Sheet1", data: result }]);
    fs.writeFileSync("archive-books.xlsx", buffer, (err) => { });
  console.log("保存完成: ", EXCEL_FILE);
}
}
function parseArchiveBooks() {
  const logText = fs.readFileSync(`./book-list-logs/book-list-logs.log`, 'utf8');
  const logs = logText.split('\n');
  for (const log of logs) {
    if (log.includes('|')) {
      const [id, title, author] = log.split(" | ");
      const book = { id, title, author };
      books.push(book);
    }
  }
  const result = [["id", "title", "author"]];
  for (const book of books) {
    result.push([book.id.substr(19), book.title, book.author]);
  }
  const buffer = xlsx.build([{ name: "Sheet1", data: result }]);
  fs.writeFileSync("archive-books.xlsx", buffer, (err) => { });
  console.log("保存完成:" + books.length);
}
parseArchiveBooks();
// parseBooks();