@rowsncolumns/toolkit 24.4.3 → 24.4.4
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/cjs/excel-parser/interface.d.ts +5 -1
- package/dist/cjs/excel-parser/interface.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/base/index.d.ts +2 -0
- package/dist/cjs/excel-parser/plugins/base/index.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/base/index.js +3 -0
- package/dist/cjs/excel-parser/plugins/xls/index.d.ts +55 -9
- package/dist/cjs/excel-parser/plugins/xls/index.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xls/index.js +487 -24
- package/dist/cjs/excel-parser/plugins/xlsb/index.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsb/index.js +12 -5
- package/dist/cjs/excel-parser/plugins/xlsx/chartex.d.ts +37 -0
- package/dist/cjs/excel-parser/plugins/xlsx/chartex.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/xlsx/chartex.js +244 -0
- package/dist/cjs/excel-parser/plugins/xlsx/form-controls.d.ts +70 -0
- package/dist/cjs/excel-parser/plugins/xlsx/form-controls.d.ts.map +1 -0
- package/dist/cjs/excel-parser/plugins/xlsx/form-controls.js +295 -0
- package/dist/cjs/excel-parser/plugins/xlsx/index.d.ts +9 -1
- package/dist/cjs/excel-parser/plugins/xlsx/index.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/index.js +251 -104
- package/dist/cjs/excel-parser/plugins/xlsx/styles.d.ts +15 -1
- package/dist/cjs/excel-parser/plugins/xlsx/styles.d.ts.map +1 -1
- package/dist/cjs/excel-parser/plugins/xlsx/styles.js +90 -4
- package/dist/cjs/excel-parser/registry.d.ts +7 -0
- package/dist/cjs/excel-parser/registry.d.ts.map +1 -1
- package/dist/cjs/excel-parser/registry.js +28 -1
- package/dist/cjs/excel-parser/types.d.ts +10 -1
- package/dist/cjs/excel-parser/types.d.ts.map +1 -1
- package/dist/cjs/excel-parser/workbook.d.ts +2 -0
- package/dist/cjs/excel-parser/workbook.d.ts.map +1 -1
- package/dist/cjs/excel-parser/workbook.js +20 -14
- package/dist/cjs/excel-parser/worker.js +128 -130
- package/dist/cjs/exporter/xlsx/chart-builder.d.ts.map +1 -1
- package/dist/cjs/exporter/xlsx/chart-builder.js +5 -33
- package/dist/cjs/exporter/xlsx/chartex-builder.d.ts +36 -0
- package/dist/cjs/exporter/xlsx/chartex-builder.d.ts.map +1 -0
- package/dist/cjs/exporter/xlsx/chartex-builder.js +109 -0
- package/dist/cjs/exporter/xlsx/form-controls-builder.d.ts +61 -0
- package/dist/cjs/exporter/xlsx/form-controls-builder.d.ts.map +1 -0
- package/dist/cjs/exporter/xlsx/form-controls-builder.js +197 -0
- package/dist/cjs/exporter/xlsx/xlsx-export.d.ts.map +1 -1
- package/dist/cjs/exporter/xlsx/xlsx-export.js +431 -193
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/excel-parser/interface.d.ts +5 -1
- package/dist/esm/excel-parser/interface.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/base/index.d.ts +2 -0
- package/dist/esm/excel-parser/plugins/base/index.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/base/index.js +3 -0
- package/dist/esm/excel-parser/plugins/xls/index.d.ts +55 -9
- package/dist/esm/excel-parser/plugins/xls/index.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xls/index.js +429 -23
- package/dist/esm/excel-parser/plugins/xlsb/index.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsb/index.js +10 -3
- package/dist/esm/excel-parser/plugins/xlsx/chartex.d.ts +37 -0
- package/dist/esm/excel-parser/plugins/xlsx/chartex.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/xlsx/chartex.js +199 -0
- package/dist/esm/excel-parser/plugins/xlsx/form-controls.d.ts +70 -0
- package/dist/esm/excel-parser/plugins/xlsx/form-controls.d.ts.map +1 -0
- package/dist/esm/excel-parser/plugins/xlsx/form-controls.js +246 -0
- package/dist/esm/excel-parser/plugins/xlsx/index.d.ts +9 -1
- package/dist/esm/excel-parser/plugins/xlsx/index.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/index.js +92 -6
- package/dist/esm/excel-parser/plugins/xlsx/styles.d.ts +15 -1
- package/dist/esm/excel-parser/plugins/xlsx/styles.d.ts.map +1 -1
- package/dist/esm/excel-parser/plugins/xlsx/styles.js +80 -0
- package/dist/esm/excel-parser/registry.d.ts +7 -0
- package/dist/esm/excel-parser/registry.d.ts.map +1 -1
- package/dist/esm/excel-parser/registry.js +18 -1
- package/dist/esm/excel-parser/types.d.ts +10 -1
- package/dist/esm/excel-parser/types.d.ts.map +1 -1
- package/dist/esm/excel-parser/workbook.d.ts +2 -0
- package/dist/esm/excel-parser/workbook.d.ts.map +1 -1
- package/dist/esm/excel-parser/workbook.js +16 -10
- package/dist/esm/excel-parser/worker.js +10 -18
- package/dist/esm/exporter/xlsx/chart-builder.d.ts.map +1 -1
- package/dist/esm/exporter/xlsx/chart-builder.js +0 -28
- package/dist/esm/exporter/xlsx/chartex-builder.d.ts +36 -0
- package/dist/esm/exporter/xlsx/chartex-builder.d.ts.map +1 -0
- package/dist/esm/exporter/xlsx/chartex-builder.js +97 -0
- package/dist/esm/exporter/xlsx/form-controls-builder.d.ts +61 -0
- package/dist/esm/exporter/xlsx/form-controls-builder.d.ts.map +1 -0
- package/dist/esm/exporter/xlsx/form-controls-builder.js +173 -0
- package/dist/esm/exporter/xlsx/xlsx-export.d.ts.map +1 -1
- package/dist/esm/exporter/xlsx/xlsx-export.js +228 -19
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/xlsx.d.ts +14 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { GridRange } from "@rowsncolumns/common-types";
|
|
1
|
+
import type { GridRange, NamedCellStyle } from "@rowsncolumns/common-types";
|
|
2
2
|
import type { CellData, Color, ExtendedValue, TextFormat } from "@rowsncolumns/spreadsheet";
|
|
3
3
|
import type { WorkBook } from "../../workbook";
|
|
4
4
|
import type { WorkbookStyles } from "./index";
|
|
@@ -12,6 +12,13 @@ type MergeCellContext = {
|
|
|
12
12
|
* @param {WorkBook} workbook - The workbook object containing shared strings
|
|
13
13
|
* @returns {Object} Object containing value and cellFormat properties
|
|
14
14
|
*/
|
|
15
|
+
/** Days between the 1900 and 1904 date systems' serial 0. */
|
|
16
|
+
export declare const DATE_1904_OFFSET_DAYS = 1462;
|
|
17
|
+
/**
|
|
18
|
+
* Number formats whose serials move with the workbook's date system. Pure
|
|
19
|
+
* time-of-day values (`TIME`) are the same fraction in both systems.
|
|
20
|
+
*/
|
|
21
|
+
export declare const isEpochShiftedFormat: (type: string | undefined) => boolean;
|
|
15
22
|
export declare function getCellValueAndFormat(cell: any, workbook: WorkBook, enableCellXfsRegistry?: boolean, enableSharedStrings?: boolean, activeSheetName?: string, mergeContext?: MergeCellContext): CellData | null;
|
|
16
23
|
/**
|
|
17
24
|
* Build a format-only CellData for a style index that a cell inherits from
|
|
@@ -31,6 +38,13 @@ export declare function extractCellProtection(cell: any, workbookStyles: Workboo
|
|
|
31
38
|
locked?: boolean;
|
|
32
39
|
hidden?: boolean;
|
|
33
40
|
} | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* Resolve the workbook's named cell styles (`<cellStyles>`) to cell formats
|
|
43
|
+
* by reading each entry's `cellStyleXfs[xfId]` — the same extraction a cell
|
|
44
|
+
* xf goes through, minus merge-anchor border merging. Powers the toolbar's
|
|
45
|
+
* "Workbook styles" gallery; entries whose xf is missing keep no `format`.
|
|
46
|
+
*/
|
|
47
|
+
export declare function resolveNamedCellStyles(workbookStyles: WorkbookStyles | undefined | null): NamedCellStyle[];
|
|
34
48
|
/**
|
|
35
49
|
* Parse a raw styles.xml `<font>` node into a TextFormat. Also used for the
|
|
36
50
|
* workbook default font (fonts[0]) so the exporter can round-trip it.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xlsx/styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../../../../excel-parser/plugins/xlsx/styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,SAAS,EAET,cAAc,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAGV,QAAQ,EAER,KAAK,EAEL,aAAa,EAIb,UAAU,EACX,MAAM,2BAA2B,CAAC;AAMnC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAuD9C,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,SAAS,CAAC;IACjB,qBAAqB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CACzC,CAAC;AAEF;;;;;GAKG;AAEH,6DAA6D;AAC7D,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,oBAAoB,GAAI,MAAM,MAAM,GAAG,SAAS,KAAG,OACvB,CAAC;AAE1C,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,QAAQ,EAClB,qBAAqB,UAAQ,EAC7B,mBAAmB,UAAQ,EAC3B,eAAe,CAAC,EAAE,MAAM,EACxB,YAAY,CAAC,EAAE,gBAAgB,GAC9B,QAAQ,GAAG,IAAI,CAqKjB;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,QAAQ,EAClB,qBAAqB,UAAQ,GAC5B,QAAQ,GAAG,IAAI,CAoBjB;AAED,eAAO,MAAM,gBAAgB,GAAI,UAAU,GAAG,KAAG,aAAa,GAAG,SAShE,CAAC;AA2TF;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,GAAG,EACT,cAAc,EAAE,cAAc,GAC7B;IAAE,MAAM,CAAC,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAUpD;AAgCD;;;;;GAKG;AACH,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,cAAc,GAAG,SAAS,GAAG,IAAI,GAChD,cAAc,EAAE,CAuBlB;AA4ND;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,GAAG,EACT,cAAc,EAAE,cAAc,GAC7B,UAAU,GAAG,IAAI,CAwFnB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,GAAG,EACb,aAAa,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,GACxC,KAAK,GAAG,SAAS,GAAG,IAAI,CA8C1B"}
|
|
@@ -78,15 +78,24 @@ var getInlineStringValue = function (cell) {
|
|
|
78
78
|
* @param {WorkBook} workbook - The workbook object containing shared strings
|
|
79
79
|
* @returns {Object} Object containing value and cellFormat properties
|
|
80
80
|
*/
|
|
81
|
+
/** Days between the 1900 and 1904 date systems' serial 0. */
|
|
82
|
+
export var DATE_1904_OFFSET_DAYS = 1462;
|
|
83
|
+
/**
|
|
84
|
+
* Number formats whose serials move with the workbook's date system. Pure
|
|
85
|
+
* time-of-day values (`TIME`) are the same fraction in both systems.
|
|
86
|
+
*/
|
|
87
|
+
export var isEpochShiftedFormat = function (type) {
|
|
88
|
+
return type === "DATE" || type === "DATE_TIME";
|
|
89
|
+
};
|
|
81
90
|
export function getCellValueAndFormat(cell, workbook, enableCellXfsRegistry, enableSharedStrings, activeSheetName, mergeContext) {
|
|
82
|
-
var _a, _b;
|
|
91
|
+
var _a, _b, _c;
|
|
83
92
|
if (enableCellXfsRegistry === void 0) { enableCellXfsRegistry = false; }
|
|
84
93
|
if (enableSharedStrings === void 0) { enableSharedStrings = false; }
|
|
85
94
|
if (!cell) {
|
|
86
95
|
return null;
|
|
87
96
|
}
|
|
88
97
|
// Extract raw value
|
|
89
|
-
var
|
|
98
|
+
var _d = extractCellValue(cell, workbook, activeSheetName), extractedRawValue = _d.rawValue, formulaValue = _d.formulaValue, sharedStringIndex = _d.sharedStringIndex, isError = _d.isError, arrayFormulaRef = _d.arrayFormulaRef, sharedFormulaSpec = _d.sharedFormulaSpec;
|
|
90
99
|
var rawValue = extractedRawValue;
|
|
91
100
|
// Extract cell format
|
|
92
101
|
var cellFormat = extractCellFormat(cell, workbook.workbookStyles, mergeContext);
|
|
@@ -118,7 +127,7 @@ export function getCellValueAndFormat(cell, workbook, enableCellXfsRegistry, ena
|
|
|
118
127
|
if (!cellFormat.numberFormat &&
|
|
119
128
|
typeof rawValue === "string" &&
|
|
120
129
|
formulaValue === null) {
|
|
121
|
-
var
|
|
130
|
+
var _e = __read(detectValueTypeAndPattern(rawValue, undefined), 4), detectedValueType = _e[0], detectedNumberFormatType = _e[1], detectedNumberValue = _e[2], detectedPattern = _e[3];
|
|
122
131
|
if (detectedValueType === "numberValue" &&
|
|
123
132
|
detectedNumberFormatType &&
|
|
124
133
|
detectedNumberValue !== undefined) {
|
|
@@ -130,6 +139,16 @@ export function getCellValueAndFormat(cell, workbook, enableCellXfsRegistry, ena
|
|
|
130
139
|
var styleId = workbook.registerFormat(cellFormat);
|
|
131
140
|
ef = { sid: styleId };
|
|
132
141
|
}
|
|
142
|
+
// A 1904-system workbook stores its date serials 1462 days below the 1900
|
|
143
|
+
// system the calculation engine, the formatter and the exporter run on.
|
|
144
|
+
// Date / datetime-formatted numbers (literals and cached formula results)
|
|
145
|
+
// are converted here, as `rnc-import` does, so they display and compute as
|
|
146
|
+
// the same calendar dates; time-of-day serials are epoch-independent.
|
|
147
|
+
if (typeof rawValue === "number" &&
|
|
148
|
+
isEpochShiftedFormat((_a = cellFormat.numberFormat) === null || _a === void 0 ? void 0 : _a.type) &&
|
|
149
|
+
workbook.getUse1904Epoch()) {
|
|
150
|
+
rawValue += DATE_1904_OFFSET_DAYS;
|
|
151
|
+
}
|
|
133
152
|
// User entered value
|
|
134
153
|
var ue;
|
|
135
154
|
var ev;
|
|
@@ -168,7 +187,7 @@ export function getCellValueAndFormat(cell, workbook, enableCellXfsRegistry, ena
|
|
|
168
187
|
if (!hasRawValue && !hasValue) {
|
|
169
188
|
return hasFormat ? { uf: ef } : null;
|
|
170
189
|
}
|
|
171
|
-
var pattern = (
|
|
190
|
+
var pattern = (_c = (_b = cellFormat === null || cellFormat === void 0 ? void 0 : cellFormat.numberFormat) === null || _b === void 0 ? void 0 : _b.pattern) !== null && _c !== void 0 ? _c : "GENERAL";
|
|
172
191
|
// Skip persisting `fv` for formula cells — the renderer derives the
|
|
173
192
|
// formatted value at paint time from the formula's effective value and
|
|
174
193
|
// the precedent-derived number format. Excel ships a cached `fv` in the
|
|
@@ -525,6 +544,73 @@ function extractCellFormat(cell, workbookStyles, mergeContext) {
|
|
|
525
544
|
var xfId = xfIdStr !== undefined ? parseInt(xfIdStr) : 0;
|
|
526
545
|
var parentXf = xfId > 0 ? workbookStyles.getCellStyleXf(xfId) : null;
|
|
527
546
|
var xf = buildEffectiveXf(cellXf, parentXf);
|
|
547
|
+
return extractCellFormatFromXf(xf, workbookStyles, cell, mergeContext);
|
|
548
|
+
}
|
|
549
|
+
/**
|
|
550
|
+
* Resolve the workbook's named cell styles (`<cellStyles>`) to cell formats
|
|
551
|
+
* by reading each entry's `cellStyleXfs[xfId]` — the same extraction a cell
|
|
552
|
+
* xf goes through, minus merge-anchor border merging. Powers the toolbar's
|
|
553
|
+
* "Workbook styles" gallery; entries whose xf is missing keep no `format`.
|
|
554
|
+
*/
|
|
555
|
+
export function resolveNamedCellStyles(workbookStyles) {
|
|
556
|
+
if (!workbookStyles)
|
|
557
|
+
return [];
|
|
558
|
+
return workbookStyles.namedCellStyles.map(function (entry) {
|
|
559
|
+
var xf = workbookStyles.getCellStyleXf(entry.xfId);
|
|
560
|
+
if (!xf)
|
|
561
|
+
return __assign({}, entry);
|
|
562
|
+
// Drop empty slots and the default General number format — a style that
|
|
563
|
+
// carries nothing else is format-less as far as the gallery is concerned.
|
|
564
|
+
var format = Object.fromEntries(Object.entries(extractCellFormatFromXf(maskCellStyleXf(xf), workbookStyles)).filter(function (_a) {
|
|
565
|
+
var _b = __read(_a, 2), key = _b[0], value = _b[1];
|
|
566
|
+
return value != null &&
|
|
567
|
+
!(key === "numberFormat" &&
|
|
568
|
+
value.type === "GENERAL" &&
|
|
569
|
+
(!value.pattern ||
|
|
570
|
+
value.pattern === "General"));
|
|
571
|
+
}));
|
|
572
|
+
return Object.keys(format).length ? __assign(__assign({}, entry), { format: format }) : __assign({}, entry);
|
|
573
|
+
});
|
|
574
|
+
}
|
|
575
|
+
var isApplyFlagOff = function (value) { return value === "0" || value === "false"; };
|
|
576
|
+
/**
|
|
577
|
+
* A `cellStyleXfs` entry only *includes* an attribute when its `applyX` flag
|
|
578
|
+
* is not off (OOXML §18.8.45): Excel writes `applyFont="0" applyFill="0"
|
|
579
|
+
* applyBorder="0" applyAlignment="0"` on `Percent` / `Comma` / `Currency`,
|
|
580
|
+
* whose Style dialog has only "Number" ticked, so applying them must change
|
|
581
|
+
* the number format alone — extracting their `fontId="0"` as a real font
|
|
582
|
+
* would reset the cell's font family / size and un-bold it. Strip the
|
|
583
|
+
* excluded attributes before extraction. (Cell `cellXfs` entries follow the
|
|
584
|
+
* inverse rule and go through `buildEffectiveXf` instead.)
|
|
585
|
+
*/
|
|
586
|
+
function maskCellStyleXf(xf) {
|
|
587
|
+
var _a;
|
|
588
|
+
var attrs = (_a = xf === null || xf === void 0 ? void 0 : xf.a$) !== null && _a !== void 0 ? _a : {};
|
|
589
|
+
var masked = __assign(__assign({}, xf), { a$: __assign({}, attrs) });
|
|
590
|
+
if (isApplyFlagOff(attrs.applyNumberFormat))
|
|
591
|
+
delete masked.a$.numFmtId;
|
|
592
|
+
if (isApplyFlagOff(attrs.applyFont))
|
|
593
|
+
delete masked.a$.fontId;
|
|
594
|
+
if (isApplyFlagOff(attrs.applyFill))
|
|
595
|
+
delete masked.a$.fillId;
|
|
596
|
+
if (isApplyFlagOff(attrs.applyBorder))
|
|
597
|
+
delete masked.a$.borderId;
|
|
598
|
+
if (isApplyFlagOff(attrs.applyAlignment)) {
|
|
599
|
+
delete masked.alignment;
|
|
600
|
+
delete masked["x:alignment"];
|
|
601
|
+
}
|
|
602
|
+
if (isApplyFlagOff(attrs.applyProtection)) {
|
|
603
|
+
delete masked.protection;
|
|
604
|
+
delete masked["x:protection"];
|
|
605
|
+
}
|
|
606
|
+
return masked;
|
|
607
|
+
}
|
|
608
|
+
/**
|
|
609
|
+
* Extract a cell format from a resolved `<xf>` node. `cell` / `mergeContext`
|
|
610
|
+
* only matter for merge-anchor border merging and may be omitted.
|
|
611
|
+
*/
|
|
612
|
+
function extractCellFormatFromXf(xf, workbookStyles, cell, mergeContext) {
|
|
613
|
+
var cellFormat = {};
|
|
528
614
|
// Extract number format
|
|
529
615
|
var numberFormat = extractNumberFormat(xf, workbookStyles);
|
|
530
616
|
if (!((numberFormat === null || numberFormat === void 0 ? void 0 : numberFormat.type) === "GENERAL" && !numberFormat.pattern)) {
|
|
@@ -2,4 +2,11 @@ import type { IWorkbookPlugin } from "./interface";
|
|
|
2
2
|
export type PluginFactory = () => IWorkbookPlugin;
|
|
3
3
|
export declare const PARSER_REGISTRY: Record<string, PluginFactory>;
|
|
4
4
|
export declare function getPluginForFile(file: File | string): IWorkbookPlugin;
|
|
5
|
+
/**
|
|
6
|
+
* Content-aware plugin resolution. The extension picks the parser, except:
|
|
7
|
+
* an OOXML zip saved with a `.xls` name opens through the xlsx parser (Excel
|
|
8
|
+
* opens those too), and a BIFF (CFB) container opens through the `.xls`
|
|
9
|
+
* reader whatever its name says.
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolvePluginForBuffer(file: File | string, buffer: ArrayBuffer | File): Promise<IWorkbookPlugin>;
|
|
5
12
|
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../excel-parser/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../excel-parser/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAanD,MAAM,MAAM,aAAa,GAAG,MAAM,eAAe,CAAC;AAElD,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAMzD,CAAC;AAEF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,eAAe,CAWrE;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,GAAG,MAAM,EACnB,MAAM,EAAE,WAAW,GAAG,IAAI,GACzB,OAAO,CAAC,eAAe,CAAC,CAU1B"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import { __awaiter, __generator } from "tslib";
|
|
1
2
|
import { OdsPlugin } from "./plugins/ods/index";
|
|
2
|
-
import { XlsPlugin } from "./plugins/xls/index";
|
|
3
|
+
import { CFB_SIGNATURE, readHeader, startsWith, XlsPlugin, ZIP_SIGNATURE, } from "./plugins/xls/index";
|
|
3
4
|
import { XlsbPlugin } from "./plugins/xlsb/index";
|
|
4
5
|
import { XlsmPlugin } from "./plugins/xlsm/index";
|
|
5
6
|
import { XlsxPlugin } from "./plugins/xlsx/index";
|
|
@@ -21,3 +22,29 @@ export function getPluginForFile(file) {
|
|
|
21
22
|
// Current behavior assumes everything is xlsx-like
|
|
22
23
|
return new XlsxPlugin();
|
|
23
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Content-aware plugin resolution. The extension picks the parser, except:
|
|
27
|
+
* an OOXML zip saved with a `.xls` name opens through the xlsx parser (Excel
|
|
28
|
+
* opens those too), and a BIFF (CFB) container opens through the `.xls`
|
|
29
|
+
* reader whatever its name says.
|
|
30
|
+
*/
|
|
31
|
+
export function resolvePluginForBuffer(file, buffer) {
|
|
32
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
33
|
+
var header, plugin;
|
|
34
|
+
return __generator(this, function (_a) {
|
|
35
|
+
switch (_a.label) {
|
|
36
|
+
case 0: return [4 /*yield*/, readHeader(buffer, CFB_SIGNATURE.length)];
|
|
37
|
+
case 1:
|
|
38
|
+
header = _a.sent();
|
|
39
|
+
if (startsWith(header, CFB_SIGNATURE)) {
|
|
40
|
+
return [2 /*return*/, new XlsPlugin()];
|
|
41
|
+
}
|
|
42
|
+
plugin = getPluginForFile(file);
|
|
43
|
+
if (plugin instanceof XlsPlugin && startsWith(header, ZIP_SIGNATURE)) {
|
|
44
|
+
return [2 /*return*/, new XlsxPlugin()];
|
|
45
|
+
}
|
|
46
|
+
return [2 /*return*/, plugin];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CellData, ConditionalFormatRule, DataValidationRuleRecord, EmbeddedChart, NamedRange, ProtectedRange, Slicer, SpreadsheetTheme, TableView } from "@rowsncolumns/spreadsheet";
|
|
2
|
-
import type { CommentThread, IterativeCalculationOptions } from "@rowsncolumns/common-types";
|
|
2
|
+
import type { CommentThread, IterativeCalculationOptions, NamedCellStyle } from "@rowsncolumns/common-types";
|
|
3
3
|
import type { EmbeddedObject } from "@rowsncolumns/spreadsheet";
|
|
4
4
|
import { type Sheet } from "@rowsncolumns/spreadsheet";
|
|
5
5
|
import type { RowData, RowDataWithValue } from "@rowsncolumns/common-types";
|
|
@@ -211,6 +211,12 @@ export type WorkerResponse = {
|
|
|
211
211
|
error?: string;
|
|
212
212
|
requiresRecalc?: boolean;
|
|
213
213
|
iterativeCalculationOptions?: IterativeCalculationOptions;
|
|
214
|
+
/**
|
|
215
|
+
* The source workbook declared the 1904 date system. The emitted cell
|
|
216
|
+
* data is already converted to the 1900 system (date-formatted
|
|
217
|
+
* serials shifted by 1462 days) — do not feed this into
|
|
218
|
+
* `SheetCell.setUse1904` or `createExcelFile({ use1904 })`.
|
|
219
|
+
*/
|
|
214
220
|
use1904?: boolean;
|
|
215
221
|
} | {
|
|
216
222
|
responseType: ResponseType.GET_SHEETS_SUCCESS;
|
|
@@ -266,6 +272,8 @@ export type WorkerResponse = {
|
|
|
266
272
|
} | {
|
|
267
273
|
responseType: ResponseType.GET_THEME_SUCCESS;
|
|
268
274
|
theme?: SpreadsheetTheme;
|
|
275
|
+
/** `<cellStyles>` resolved to formats — the "Workbook styles" gallery. */
|
|
276
|
+
namedCellStyles?: NamedCellStyle[];
|
|
269
277
|
} | {
|
|
270
278
|
responseType: ResponseType.PARSE_EXCEL_COMPLETE;
|
|
271
279
|
} | {
|
|
@@ -333,6 +341,7 @@ export type WorkerResponse = {
|
|
|
333
341
|
namedRanges: NamedRange[];
|
|
334
342
|
requiresRecalc?: boolean;
|
|
335
343
|
iterativeCalculationOptions?: IterativeCalculationOptions;
|
|
344
|
+
/** Source workbook was 1904-system; chunk data is 1900-system (see `PARSE_EXCEL_SUCCESS`). */
|
|
336
345
|
use1904?: boolean;
|
|
337
346
|
} | ({
|
|
338
347
|
responseType: ResponseType.SHEET_CHUNK;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../excel-parser/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,qBAAqB,EACrB,wBAAwB,EACxB,aAAa,EACb,UAAU,EACV,cAAc,EACd,MAAM,EACN,gBAAgB,EAChB,SAAS,EACV,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,aAAa,EACb,2BAA2B,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../excel-parser/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,6 +17,8 @@ export declare class WorkBook implements IWorkbookPlugin {
|
|
|
17
17
|
getSheetCatalog(): Promise<SheetCatalogEntry[]>;
|
|
18
18
|
getSheet(sheetId: number, minRowCount?: number, minColumnCount?: number): Promise<[Sheet, TableView[]]>;
|
|
19
19
|
getTheme(): import("@rowsncolumns/spreadsheet").SpreadsheetTheme;
|
|
20
|
+
/** Named cell styles resolved to formats; empty for formats without them. */
|
|
21
|
+
getNamedCellStyles(): import("@rowsncolumns/common-types").NamedCellStyle[];
|
|
20
22
|
/** Workbook default font (styles.xml fonts[0]); null when unavailable. */
|
|
21
23
|
getDefaultFont(): import("@rowsncolumns/common-types").TextFormat | null;
|
|
22
24
|
getFonts(): string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workbook.d.ts","sourceRoot":"","sources":["../../../excel-parser/workbook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"workbook.d.ts","sourceRoot":"","sources":["../../../excel-parser/workbook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAGlE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EACL,2BAA2B,IAAI,4BAA4B,EAC3D,cAAc,EACf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EACV,+BAA+B,EAC/B,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAsBjB,qBAAa,QAAS,YAAW,eAAe;IAC9C,OAAO,CAAC,MAAM,CAAmB;;IAI3B,IAAI,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAqB3E,OAAO;IAIP,aAAa;IAIb,SAAS,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM;IAIvD;;;;OAIG;IACG,eAAe,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAc/C,QAAQ,CACZ,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,EACpB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAehC,QAAQ;IAIR,6EAA6E;IAC7E,kBAAkB;IAIlB,0EAA0E;IAC1E,cAAc;IAId,QAAQ;IAIR,UAAU;IAIV,SAAS;IAIT,IAAI,cAAc,QAEjB;IAED,IAAI,aAAa,yBAEhB;IAED,IAAI,oBAAoB,kFAEvB;IAED,IAAI,gBAAgB,8CAEnB;IAED,cAAc;IAId,8BAA8B;IAI9B,eAAe;IAIf,gBAAgB;IAIhB,gBAAgB,CACd,SAAS,CAAC,EAAE,MAAM,EAClB,qBAAqB,CAAC,EAAE,OAAO,EAC/B,mBAAmB,CAAC,EAAE,OAAO,EAC7B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,KAAK,IAAI;IAUxD,wBAAwB,CAAC,OAAO,EAAE,+BAA+B;IAmBjE,kBAAkB,CAAC,OAAO,EAAE,MAAM;IAIlC,WAAW;IAIX,SAAS;IAIT,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM;IAgBzC,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM;IAgBnC,cAAc;IAId,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM;IAInC,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM;IAIlC,UAAU;IAIV,cAAc;IAId,aAAa;IAIb,gBAAgB;IAIV,aAAa;IAInB,cAAc,CAAC,MAAM,EAAE,GAAG;CAM3B;AAED,eAAO,MAAM,2BAA2B,qCAA+B,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __asyncGenerator, __asyncValues, __await, __awaiter, __generator, __read } from "tslib";
|
|
2
|
-
import { CFBDecryptor, detectCfbContainerKind
|
|
2
|
+
import { CFBDecryptor, detectCfbContainerKind } from "./cfb-decryptor";
|
|
3
3
|
import { getChartReferenceFromAnchor as _getChartReferenceFromAnchor, WorkbookStyles, } from "./plugins/xlsx/index";
|
|
4
|
-
import {
|
|
4
|
+
import { resolvePluginForBuffer } from "./registry";
|
|
5
5
|
var CFB_SIGNATURE = [0xd0, 0xcf, 0x11, 0xe0, 0xa1, 0xb1, 0x1a, 0xe1];
|
|
6
6
|
var isCFBFile = function (source) { return __awaiter(void 0, void 0, void 0, function () {
|
|
7
7
|
var header, headerBuffer;
|
|
@@ -32,30 +32,31 @@ var WorkBook = /** @class */ (function () {
|
|
|
32
32
|
}
|
|
33
33
|
WorkBook.prototype.load = function (buffer, fileName, password) {
|
|
34
34
|
return __awaiter(this, void 0, void 0, function () {
|
|
35
|
-
var decryptedBuffer;
|
|
36
|
-
return __generator(this, function (
|
|
37
|
-
switch (
|
|
35
|
+
var decryptedBuffer, _a;
|
|
36
|
+
return __generator(this, function (_b) {
|
|
37
|
+
switch (_b.label) {
|
|
38
38
|
case 0: return [4 /*yield*/, isCFBFile(buffer)];
|
|
39
39
|
case 1:
|
|
40
|
-
if (!
|
|
40
|
+
if (!_b.sent()) return [3 /*break*/, 4];
|
|
41
41
|
return [4 /*yield*/, detectCfbContainerKind(buffer)];
|
|
42
42
|
case 2:
|
|
43
|
-
if ((
|
|
44
|
-
throw new Error(LEGACY_XLS_UNSUPPORTED_MESSAGE);
|
|
45
|
-
}
|
|
43
|
+
if (!((_b.sent()) !== "legacy-xls")) return [3 /*break*/, 4];
|
|
46
44
|
if (!password) {
|
|
47
45
|
throw new Error("PASSWORD_REQUIRED");
|
|
48
46
|
}
|
|
49
47
|
return [4 /*yield*/, CFBDecryptor.decrypt(buffer, password)];
|
|
50
48
|
case 3:
|
|
51
|
-
decryptedBuffer =
|
|
49
|
+
decryptedBuffer = _b.sent();
|
|
52
50
|
buffer = decryptedBuffer;
|
|
53
|
-
|
|
51
|
+
_b.label = 4;
|
|
54
52
|
case 4:
|
|
55
|
-
|
|
56
|
-
return [4 /*yield*/,
|
|
53
|
+
_a = this;
|
|
54
|
+
return [4 /*yield*/, resolvePluginForBuffer(fileName || "unknown.xlsx", buffer)];
|
|
57
55
|
case 5:
|
|
58
|
-
_a.sent();
|
|
56
|
+
_a.plugin = _b.sent();
|
|
57
|
+
return [4 /*yield*/, this.plugin.load(buffer, password)];
|
|
58
|
+
case 6:
|
|
59
|
+
_b.sent();
|
|
59
60
|
return [2 /*return*/];
|
|
60
61
|
}
|
|
61
62
|
});
|
|
@@ -126,6 +127,11 @@ var WorkBook = /** @class */ (function () {
|
|
|
126
127
|
WorkBook.prototype.getTheme = function () {
|
|
127
128
|
return this.plugin.getTheme();
|
|
128
129
|
};
|
|
130
|
+
/** Named cell styles resolved to formats; empty for formats without them. */
|
|
131
|
+
WorkBook.prototype.getNamedCellStyles = function () {
|
|
132
|
+
var _a, _b, _c;
|
|
133
|
+
return (_c = (_b = (_a = this.plugin).getNamedCellStyles) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : [];
|
|
134
|
+
};
|
|
129
135
|
/** Workbook default font (styles.xml fonts[0]); null when unavailable. */
|
|
130
136
|
WorkBook.prototype.getDefaultFont = function () {
|
|
131
137
|
var _a, _b, _c;
|