import fs from "node:fs/promises"; import { FileBlob, SpreadsheetFile } from "@oai/artifact-tool"; const sourcePath = "C:/Users/milu/OneDrive - Exxeta/Dokumente/Assessor Zeiterfassung/ASSESSOR_Zeiterfassung_Sep2026_Jul2027_Form_wie_vorher.xlsx"; const outputPath = "C:/Users/milu/OneDrive - Exxeta/Dokumente/VS CODE/ASSESSOR-2-5/outputs/01a089e9-f688-7f21-87c9-db223e98841f/ASSESSOR_Zeiterfassung_Aug2026_Jul2027_aktualisiert.xlsx"; const outputDir = "C:/Users/milu/OneDrive - Exxeta/Dokumente/VS CODE/ASSESSOR-2-5/outputs/01a089e9-f688-7f21-87c9-db223e98841f"; const source = await SpreadsheetFile.importXlsx(await FileBlob.load(sourcePath)); const result = await SpreadsheetFile.importXlsx(await FileBlob.load(outputPath)); const unchanged = []; for (const sheet of source.worksheets.items) { if (sheet.name === "September 2026") continue; const sourceUsed = sheet.getUsedRange(); const resultSheet = result.worksheets.getItem(sheet.name); const resultUsed = resultSheet.getUsedRange(); unchanged.push({ sheet: sheet.name, address: sourceUsed?.address ?? null, sameAddress: sourceUsed?.address === resultUsed?.address, sameValues: JSON.stringify(sourceUsed?.values ?? []) === JSON.stringify(resultUsed?.values ?? []), sameFormulas: JSON.stringify(sourceUsed?.formulas ?? []) === JSON.stringify(resultUsed?.formulas ?? []), }); } console.log(JSON.stringify({ unchanged }, null, 2)); const summary = await result.inspect({ kind: "sheet,table,formula", maxChars: 14000, tableMaxRows: 5, tableMaxCols: 40, options: { maxResults: 100 }, }); console.log(summary.ndjson); const errors = await result.inspect({ kind: "match", searchTerm: "#REF!|#DIV/0!|#VALUE!|#NAME\\?|#N/A|#NUM!|#NULL!|#SPILL!|#CALC!", options: { useRegex: true, maxResults: 300 }, summary: "saved-file formula error scan", }); console.log(errors.ndjson); for (const sheetName of ["August 2026", "September 2026"]) { const preview = await result.render({ sheetName, autoCrop: "all", scale: 1, format: "png" }); await fs.writeFile(`${outputDir}/saved_${sheetName.replace(/[^a-z0-9_-]+/gi, "_")}.png`, new Uint8Array(await preview.arrayBuffer())); }