xlsx-formula-recalc 0.84.0 → 0.86.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +87 -2
- package/dist/index.js.map +1 -1
- package/package.json +5 -2
package/dist/index.js
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { WorkPaper } from '@bilig/headless';
|
|
2
2
|
import { exportXlsx, importXlsx } from '@bilig/headless/xlsx';
|
|
3
|
+
import { ValueTag } from '@bilig/protocol';
|
|
3
4
|
export { WorkPaper } from '@bilig/headless';
|
|
4
5
|
export { exportXlsx, importXlsx } from '@bilig/headless/xlsx';
|
|
5
6
|
export function recalculateXlsx(input, options = {}) {
|
|
6
7
|
const imported = importXlsx(toUint8Array(input), options.fileName ?? 'workbook.xlsx');
|
|
7
|
-
const
|
|
8
|
+
const originalCalculationSettings = imported.snapshot.workbook.metadata?.calculationSettings;
|
|
9
|
+
const workbook = WorkPaper.buildFromSnapshot(snapshotForFreshFormulaRecalculation(imported.snapshot), {
|
|
8
10
|
evaluationTimeoutMs: 30_000,
|
|
9
11
|
useColumnIndex: true,
|
|
10
12
|
...options.config,
|
|
@@ -14,12 +16,14 @@ export function recalculateXlsx(input, options = {}) {
|
|
|
14
16
|
for (const edit of options.edits ?? []) {
|
|
15
17
|
changes.push(...workbook.setCellContents(parseQualifiedCellTarget(workbook, edit.target), edit.value));
|
|
16
18
|
}
|
|
19
|
+
changes.push(...workbook.rebuildAndRecalculate());
|
|
17
20
|
const reads = {};
|
|
18
21
|
for (const target of options.reads ?? []) {
|
|
19
22
|
reads[target] = workbook.getCellValue(parseQualifiedCellTarget(workbook, target));
|
|
20
23
|
}
|
|
24
|
+
const outputSnapshot = snapshotWithFormulaCachedValues(workbook, workbook.exportSnapshot());
|
|
21
25
|
return {
|
|
22
|
-
xlsx: toUint8Array(exportXlsx(
|
|
26
|
+
xlsx: toUint8Array(exportXlsx(restoreOutputCalculationSettings(outputSnapshot, options.config?.calculationSettings === undefined ? originalCalculationSettings : undefined))),
|
|
23
27
|
warnings: imported.warnings,
|
|
24
28
|
sheetNames: imported.sheetNames,
|
|
25
29
|
reads,
|
|
@@ -31,6 +35,70 @@ export function recalculateXlsx(input, options = {}) {
|
|
|
31
35
|
}
|
|
32
36
|
}
|
|
33
37
|
export const recalculateSheetjsWorkbook = recalculateXlsx;
|
|
38
|
+
function snapshotWithFormulaCachedValues(workbook, snapshot) {
|
|
39
|
+
const next = structuredClone(snapshot);
|
|
40
|
+
for (const sheet of next.sheets) {
|
|
41
|
+
const sheetId = workbook.getSheetId(sheet.name);
|
|
42
|
+
if (sheetId === undefined) {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
for (const cell of sheet.cells) {
|
|
46
|
+
if (typeof cell.formula !== 'string' || cell.formula.trim().length === 0) {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
const address = parseA1CellReference(cell.address);
|
|
50
|
+
const cachedValue = literalInputForFormulaCache(workbook.getCellValue({ sheet: sheetId, row: address.row, col: address.col }));
|
|
51
|
+
if (cachedValue !== undefined) {
|
|
52
|
+
cell.value = cachedValue;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return next;
|
|
57
|
+
}
|
|
58
|
+
function literalInputForFormulaCache(value) {
|
|
59
|
+
if (typeof value !== 'object' || value === null || !('tag' in value)) {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
if (value.tag === ValueTag.Empty) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
if (value.tag === ValueTag.Number && 'value' in value && typeof value.value === 'number' && Number.isFinite(value.value)) {
|
|
66
|
+
return value.value;
|
|
67
|
+
}
|
|
68
|
+
if (value.tag === ValueTag.Boolean && 'value' in value && typeof value.value === 'boolean') {
|
|
69
|
+
return value.value;
|
|
70
|
+
}
|
|
71
|
+
if (value.tag === ValueTag.String && 'value' in value && typeof value.value === 'string') {
|
|
72
|
+
return value.value;
|
|
73
|
+
}
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
function snapshotForFreshFormulaRecalculation(snapshot) {
|
|
77
|
+
const next = structuredClone(snapshot);
|
|
78
|
+
const calculationSettings = next.workbook.metadata?.calculationSettings;
|
|
79
|
+
if (calculationSettings === undefined) {
|
|
80
|
+
return next;
|
|
81
|
+
}
|
|
82
|
+
if (calculationSettings.mode !== 'manual' && calculationSettings.fullCalcOnLoad !== false) {
|
|
83
|
+
return next;
|
|
84
|
+
}
|
|
85
|
+
next.workbook.metadata ??= {};
|
|
86
|
+
next.workbook.metadata.calculationSettings = {
|
|
87
|
+
...calculationSettings,
|
|
88
|
+
mode: 'automatic',
|
|
89
|
+
fullCalcOnLoad: true,
|
|
90
|
+
};
|
|
91
|
+
return next;
|
|
92
|
+
}
|
|
93
|
+
function restoreOutputCalculationSettings(snapshot, originalCalculationSettings) {
|
|
94
|
+
if (originalCalculationSettings === undefined) {
|
|
95
|
+
return snapshot;
|
|
96
|
+
}
|
|
97
|
+
const next = structuredClone(snapshot);
|
|
98
|
+
next.workbook.metadata ??= {};
|
|
99
|
+
next.workbook.metadata.calculationSettings = structuredClone(originalCalculationSettings);
|
|
100
|
+
return next;
|
|
101
|
+
}
|
|
34
102
|
export function parseQualifiedCellTarget(workbook, target) {
|
|
35
103
|
const parsed = parseQualifiedA1(target);
|
|
36
104
|
const sheet = workbook.getSheetId(parsed.sheetName);
|
|
@@ -65,6 +133,23 @@ export function parseQualifiedA1(target) {
|
|
|
65
133
|
}
|
|
66
134
|
return {
|
|
67
135
|
sheetName,
|
|
136
|
+
...parseA1Parts(row, col),
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
function parseA1CellReference(address) {
|
|
140
|
+
const match = /^\$?(?<col>[A-Z]+)\$?(?<row>[1-9][0-9]*)$/u.exec(address.trim().toUpperCase());
|
|
141
|
+
if (!match?.groups) {
|
|
142
|
+
throw new Error(`Expected a single A1 cell reference, received: ${address}`);
|
|
143
|
+
}
|
|
144
|
+
const row = match.groups['row'];
|
|
145
|
+
const col = match.groups['col'];
|
|
146
|
+
if (!row || !col) {
|
|
147
|
+
throw new Error(`Expected a single A1 cell reference, received: ${address}`);
|
|
148
|
+
}
|
|
149
|
+
return parseA1Parts(row, col);
|
|
150
|
+
}
|
|
151
|
+
function parseA1Parts(row, col) {
|
|
152
|
+
return {
|
|
68
153
|
row: Number.parseInt(row, 10) - 1,
|
|
69
154
|
col: columnLettersToIndex(col),
|
|
70
155
|
};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAA8F,MAAM,iBAAiB,CAAA;AACvI,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "xlsx-formula-recalc",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.86.0",
|
|
4
4
|
"description": "Recalculate XLSX formulas in Node.js without Excel, LibreOffice, or browser automation.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"excel",
|
|
@@ -64,10 +64,13 @@
|
|
|
64
64
|
},
|
|
65
65
|
"scripts": {
|
|
66
66
|
"build": "pnpm --dir ../.. --filter @bilig/headless build && rm -rf dist tsconfig.tsbuildinfo && tsc -p tsconfig.json",
|
|
67
|
+
"test:excel-oracle": "vitest run --root ../.. src/__tests__/macos-desktop-excel-*.test.ts --maxWorkers=1",
|
|
68
|
+
"test:excel-oracle:live": "BILIG_EXCEL_ORACLE_RUN=1 vitest run --root ../.. src/__tests__/macos-desktop-excel-*.test.ts --maxWorkers=1",
|
|
67
69
|
"smoke": "node ./dist/cli.js --help"
|
|
68
70
|
},
|
|
69
71
|
"dependencies": {
|
|
70
|
-
"@bilig/headless": "0.
|
|
72
|
+
"@bilig/headless": "0.86.0",
|
|
73
|
+
"@bilig/protocol": "0.86.0"
|
|
71
74
|
},
|
|
72
75
|
"engines": {
|
|
73
76
|
"node": ">=22.0.0"
|