Assessor_2.0/outputs/01a089e9-f688-7f21-87c9-db2.../validate_export.mjs

48 lines
2.1 KiB
JavaScript

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()));
}