@office-kit/xlsx 0.11.1 → 0.13.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/README.md +4 -1
- package/dist/cell/cell.d.ts +44 -9
- package/dist/cell/index.d.ts +1 -1
- package/dist/{cell-BucgGwl3.mjs → cell-Df3cKRIl.mjs} +72 -30
- package/dist/cell-Df3cKRIl.mjs.map +1 -0
- package/dist/{cell-style-DuvS_Lsg.mjs → cell-style-BFmJOmcx.mjs} +130 -93
- package/dist/cell-style-BFmJOmcx.mjs.map +1 -0
- package/dist/cell.mjs +2 -2
- package/dist/{coordinate-96Ecci4d.mjs → coordinate-Bt5Gni2I.mjs} +19 -8
- package/dist/coordinate-Bt5Gni2I.mjs.map +1 -0
- package/dist/{defined-names-CviWmtQg.mjs → defined-names-Ctu3F6ls.mjs} +4 -3
- package/dist/defined-names-Ctu3F6ls.mjs.map +1 -0
- package/dist/{differential-DvKU8fJt.mjs → differential-H9SjEeIU.mjs} +2 -2
- package/dist/{differential-DvKU8fJt.mjs.map → differential-H9SjEeIU.mjs.map} +1 -1
- package/dist/{drawing-BxzLuryn.mjs → drawing-ZJ3h4VHD.mjs} +2 -2
- package/dist/{drawing-BxzLuryn.mjs.map → drawing-ZJ3h4VHD.mjs.map} +1 -1
- package/dist/drawing.mjs +1 -1
- package/dist/{inference-BrI9uIY4.mjs → inference-BMvv9cUY.mjs} +18 -3
- package/dist/inference-BMvv9cUY.mjs.map +1 -0
- package/dist/io/save.d.ts +15 -3
- package/dist/io.mjs +2 -2
- package/dist/{load-Bghb1YHY.mjs → load-CJdGh50R.mjs} +6 -6
- package/dist/{load-Bghb1YHY.mjs.map → load-CJdGh50R.mjs.map} +1 -1
- package/dist/node.mjs +1 -1
- package/dist/{save-Bqcf8w3g.mjs → save-CjarR7Rp.mjs} +10 -8
- package/dist/save-CjarR7Rp.mjs.map +1 -0
- package/dist/streaming/write-only.d.ts +18 -14
- package/dist/streaming.mjs +21 -51
- package/dist/streaming.mjs.map +1 -1
- package/dist/styles/cell-style.d.ts +78 -32
- package/dist/styles/fonts.d.ts +10 -1
- package/dist/styles/index.d.ts +3 -3
- package/dist/styles/stylesheet.d.ts +26 -0
- package/dist/styles.mjs +4 -4
- package/dist/{stylesheet-writer-HxaX7bGy.mjs → stylesheet-writer-D7Uug85X.mjs} +31 -18
- package/dist/stylesheet-writer-D7Uug85X.mjs.map +1 -0
- package/dist/{table-1P8we2gS.mjs → table-Ccro4rrz.mjs} +11 -9
- package/dist/table-Ccro4rrz.mjs.map +1 -0
- package/dist/utils/coordinate.d.ts +30 -4
- package/dist/utils/formula-text.d.ts +7 -0
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils.mjs +2 -2
- package/dist/workbook/calc-properties.d.ts +8 -1
- package/dist/workbook/index.d.ts +1 -1
- package/dist/{workbook-BlZVXiyG.mjs → workbook-B15-T4cs.mjs} +6 -6
- package/dist/{workbook-BlZVXiyG.mjs.map → workbook-B15-T4cs.mjs.map} +1 -1
- package/dist/workbook.mjs +45 -3
- package/dist/workbook.mjs.map +1 -1
- package/dist/worksheet/cell-range.d.ts +10 -3
- package/dist/worksheet/data-validations.d.ts +1 -1
- package/dist/worksheet/index.d.ts +3 -3
- package/dist/worksheet/table-validate.d.ts +7 -0
- package/dist/worksheet/table.d.ts +4 -1
- package/dist/worksheet/views.d.ts +5 -0
- package/dist/worksheet/worksheet.d.ts +106 -65
- package/dist/worksheet/writer.d.ts +7 -0
- package/dist/{worksheet-C5Ensf_j.mjs → worksheet-4xW-i8j9.mjs} +235 -51
- package/dist/worksheet-4xW-i8j9.mjs.map +1 -0
- package/dist/worksheet.mjs +3 -3
- package/dist/{writer-IyFccCRJ.mjs → writer-Z7cF_CBk.mjs} +60 -8
- package/dist/writer-Z7cF_CBk.mjs.map +1 -0
- package/dist/zip/index.d.ts +1 -1
- package/dist/zip/writer.d.ts +20 -1
- package/dist/zip.mjs +1 -1
- package/package.json +1 -1
- package/dist/cell-BucgGwl3.mjs.map +0 -1
- package/dist/cell-style-DuvS_Lsg.mjs.map +0 -1
- package/dist/coordinate-96Ecci4d.mjs.map +0 -1
- package/dist/defined-names-CviWmtQg.mjs.map +0 -1
- package/dist/inference-BrI9uIY4.mjs.map +0 -1
- package/dist/save-Bqcf8w3g.mjs.map +0 -1
- package/dist/stylesheet-writer-HxaX7bGy.mjs.map +0 -1
- package/dist/table-1P8we2gS.mjs.map +0 -1
- package/dist/worksheet-C5Ensf_j.mjs.map +0 -1
- package/dist/writer-IyFccCRJ.mjs.map +0 -1
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import type { Cell } from '../cell/cell.js';
|
|
2
2
|
import type { Workbook } from '../workbook/workbook.js';
|
|
3
|
+
import type { RangeRef } from '../utils/coordinate.js';
|
|
3
4
|
import { type Worksheet } from '../worksheet/worksheet.js';
|
|
4
5
|
import type { Alignment, HorizontalAlignment, VerticalAlignment } from './alignment.js';
|
|
5
6
|
import type { Border, SideStyle } from './borders.js';
|
|
6
7
|
import type { Color } from './colors.js';
|
|
7
8
|
import type { Fill } from './fills.js';
|
|
8
|
-
import type { Font, UnderlineStyle } from './fonts.js';
|
|
9
|
+
import type { Font, FontPatch, UnderlineStyle } from './fonts.js';
|
|
9
10
|
import type { Protection } from './protection.js';
|
|
11
|
+
import { type CellStyleSpec } from './stylesheet.js';
|
|
10
12
|
export declare function getCellFont(wb: Workbook, c: Cell): Font;
|
|
11
13
|
export declare function getCellFill(wb: Workbook, c: Cell): Fill;
|
|
12
14
|
export declare function getCellBorder(wb: Workbook, c: Cell): Border;
|
|
@@ -27,6 +29,12 @@ export declare function getCellNumberFormat(wb: Workbook, c: Cell): string;
|
|
|
27
29
|
* pools) returns `{}`.
|
|
28
30
|
*/
|
|
29
31
|
export declare function cellStyleToCss(wb: Workbook, c: Cell): Record<string, string>;
|
|
32
|
+
/**
|
|
33
|
+
* Replace the cell's font outright. `font` has to be complete: anything it
|
|
34
|
+
* omits is omitted from the `<font>` record too, and each viewer then falls
|
|
35
|
+
* back to its own default rather than the workbook's. Reach for {@link
|
|
36
|
+
* patchCellFont} unless you really mean "this font and nothing inherited".
|
|
37
|
+
*/
|
|
30
38
|
export declare function setCellFont(wb: Workbook, c: Cell, font: Font): void;
|
|
31
39
|
export declare function setCellFill(wb: Workbook, c: Cell, fill: Fill): void;
|
|
32
40
|
export declare function setCellBorder(wb: Workbook, c: Cell, border: Border): void;
|
|
@@ -58,7 +66,7 @@ export declare function clearCellStyle(_wb: Workbook, c: Cell): void;
|
|
|
58
66
|
* yet are **not** materialised (no-op for sparse regions, unlike the styled
|
|
59
67
|
* `setRange*` family which has to create cells to make the patch observable).
|
|
60
68
|
*/
|
|
61
|
-
export declare function clearRangeStyle(wb: Workbook, ws: Worksheet, range:
|
|
69
|
+
export declare function clearRangeStyle(wb: Workbook, ws: Worksheet, range: RangeRef): void;
|
|
62
70
|
/**
|
|
63
71
|
* Deep-copy the source cell's full xf (font / fill / border / alignment /
|
|
64
72
|
* protection / numberFormat) into a possibly-different workbook. Returns the
|
|
@@ -66,32 +74,50 @@ export declare function clearRangeStyle(wb: Workbook, ws: Worksheet, range: stri
|
|
|
66
74
|
*/
|
|
67
75
|
export declare function cloneCellStyle(sourceWb: Workbook, source: Cell, targetWb: Workbook, target: Cell): number;
|
|
68
76
|
/**
|
|
69
|
-
*
|
|
77
|
+
* Register a style and return its `styleId`. `setCell` and `setCellByCoord`
|
|
78
|
+
* take it as their last argument, `appendRow` and `appendRows` take it inside
|
|
79
|
+
* `{ styleIds: [...] }`:
|
|
80
|
+
*
|
|
81
|
+
* ```ts
|
|
82
|
+
* const INT = registerCellStyle(wb, { numberFormat: '#,##0' });
|
|
83
|
+
* setCell(ws, 2, 3, 1234, INT);
|
|
84
|
+
* appendRow(ws, ['de', 71_579], { styleIds: [undefined, INT] });
|
|
85
|
+
* ```
|
|
86
|
+
*
|
|
87
|
+
* Build each distinct look once and let the write carry the formatting,
|
|
88
|
+
* instead of running a styling pass over every cell afterwards.
|
|
89
|
+
*
|
|
90
|
+
* The id names a **complete** style, not a patch: an axis missing from `spec`
|
|
91
|
+
* resolves to slot 0 of that pool, so it renders as the workbook default even
|
|
92
|
+
* when the target cell previously had something there. {@link setCellStyle} is
|
|
93
|
+
* the patch-an-existing-cell counterpart.
|
|
94
|
+
*
|
|
95
|
+
* "Workbook default" means slot 0 literally. On a workbook from
|
|
96
|
+
* `createWorkbook` that is the neutral font / no fill / no border. A workbook
|
|
97
|
+
* loaded from another producer may hold anything in slot 0, since nothing in
|
|
98
|
+
* ECMA-376 reserves it, so pass the axis explicitly when the look has to be
|
|
99
|
+
* neutral regardless of what the file arrived with.
|
|
100
|
+
*/
|
|
101
|
+
export declare function registerCellStyle(wb: Workbook, spec: CellStyleSpec): number;
|
|
102
|
+
/**
|
|
103
|
+
* Build a single CellXf from a multi-axis style spec, then merge it into every
|
|
70
104
|
* cell in `range`. The xf is registered once per style shape, so a 1000-cell
|
|
71
|
-
* range allocates one xf
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
numberFormat?: string;
|
|
80
|
-
}): void;
|
|
105
|
+
* range allocates one xf, which is much faster than looping `setCellStyle` per
|
|
106
|
+
* cell.
|
|
107
|
+
*
|
|
108
|
+
* Each cell keeps the axes `spec` leaves out, which is what separates this from
|
|
109
|
+
* {@link registerCellStyle}: the id that returns is a whole style, this is a
|
|
110
|
+
* patch over whatever each cell already carried.
|
|
111
|
+
*/
|
|
112
|
+
export declare function setRangeStyle(wb: Workbook, ws: Worksheet, range: RangeRef, spec: CellStyleSpec): void;
|
|
81
113
|
/**
|
|
82
|
-
* Combined cell-style setter
|
|
83
|
-
* the corresponding `applyXxx` flags get set
|
|
114
|
+
* Combined cell-style setter, patching the cell's existing xf. Each axis is
|
|
115
|
+
* independent, so pass any subset and the corresponding `applyXxx` flags get set
|
|
116
|
+
* on the underlying CellXf. Avoids
|
|
84
117
|
* 5+ separate stylesheet round-trips when a caller wants to style a single cell
|
|
85
118
|
* across multiple axes (Excel dedupes the resulting xf record on every call).
|
|
86
119
|
*/
|
|
87
|
-
export declare function setCellStyle(wb: Workbook, c: Cell,
|
|
88
|
-
font?: Font;
|
|
89
|
-
fill?: Fill;
|
|
90
|
-
border?: Border;
|
|
91
|
-
alignment?: Alignment;
|
|
92
|
-
protection?: Protection;
|
|
93
|
-
numberFormat?: string;
|
|
94
|
-
}): void;
|
|
120
|
+
export declare function setCellStyle(wb: Workbook, c: Cell, spec: CellStyleSpec): void;
|
|
95
121
|
/**
|
|
96
122
|
* Set the cell's background to a solid color. Accepts a hex string
|
|
97
123
|
* (`'FFAAFFAA'`) or a partial `Color` object (`{ theme: 4, tint: 0.4 }`).
|
|
@@ -106,15 +132,20 @@ export declare function clearCellBackground(wb: Workbook, c: Cell): void;
|
|
|
106
132
|
* gets the same solid pattern fill via `setRangeStyle`, so the fill pool dedups
|
|
107
133
|
* to a single entry across the whole range.
|
|
108
134
|
*/
|
|
109
|
-
export declare function setRangeBackgroundColor(wb: Workbook, ws: Worksheet, range:
|
|
110
|
-
/**
|
|
111
|
-
|
|
135
|
+
export declare function setRangeBackgroundColor(wb: Workbook, ws: Worksheet, range: RangeRef, color: string | Partial<Color>): void;
|
|
136
|
+
/**
|
|
137
|
+
* Range-level shortcut for `setCellFont`. Replaces the whole Font on every cell
|
|
138
|
+
* in the range; there is no range-level merge, so build the complete font you
|
|
139
|
+
* want rather than passing `makeFont({ bold: true })` and losing the workbook
|
|
140
|
+
* default.
|
|
141
|
+
*/
|
|
142
|
+
export declare function setRangeFont(wb: Workbook, ws: Worksheet, range: RangeRef, font: Font): void;
|
|
112
143
|
/**
|
|
113
144
|
* Range-level shortcut for `setCellNumberFormat`. Stamps the same format-code
|
|
114
145
|
* onto every cell in the range; the numFmt pool dedups the code so callers
|
|
115
146
|
* don't pay per-cell pool churn.
|
|
116
147
|
*/
|
|
117
|
-
export declare function setRangeNumberFormat(wb: Workbook, ws: Worksheet, range:
|
|
148
|
+
export declare function setRangeNumberFormat(wb: Workbook, ws: Worksheet, range: RangeRef, formatCode: string): void;
|
|
118
149
|
/**
|
|
119
150
|
* Range-level shortcut for `setCellProtection`. Stamps the same Protection
|
|
120
151
|
* (locked / hidden) onto every cell in the range. Pass a full `Protection`
|
|
@@ -124,14 +155,14 @@ export declare function setRangeNumberFormat(wb: Workbook, ws: Worksheet, range:
|
|
|
124
155
|
* Common usage: `setRangeProtection(wb, ws, 'B2:B100', { locked: false })` to
|
|
125
156
|
* leave just an input column editable when the sheet is protected.
|
|
126
157
|
*/
|
|
127
|
-
export declare function setRangeProtection(wb: Workbook, ws: Worksheet, range:
|
|
158
|
+
export declare function setRangeProtection(wb: Workbook, ws: Worksheet, range: RangeRef, protection: Protection | Partial<Protection>): void;
|
|
128
159
|
/**
|
|
129
160
|
* Range-level shortcut for `wrapCellText`. Toggles "Wrap Text" on every cell in
|
|
130
161
|
* the range while preserving each cell's existing alignment (horizontal /
|
|
131
162
|
* vertical / textRotation / indent are not touched). Empty cells in the range
|
|
132
163
|
* are materialised so the alignment patch is observable on round-trip.
|
|
133
164
|
*/
|
|
134
|
-
export declare function setRangeWrapText(wb: Workbook, ws: Worksheet, range:
|
|
165
|
+
export declare function setRangeWrapText(wb: Workbook, ws: Worksheet, range: RangeRef, on?: boolean): void;
|
|
135
166
|
/**
|
|
136
167
|
* Range-level Alignment setter. Two modes:
|
|
137
168
|
*
|
|
@@ -146,7 +177,22 @@ export declare function setRangeWrapText(wb: Workbook, ws: Worksheet, range: str
|
|
|
146
177
|
* Empty cells in the range are materialised so the patch is observable on
|
|
147
178
|
* round-trip.
|
|
148
179
|
*/
|
|
149
|
-
export declare function setRangeAlignment(wb: Workbook, ws: Worksheet, range:
|
|
180
|
+
export declare function setRangeAlignment(wb: Workbook, ws: Worksheet, range: RangeRef, alignment: Partial<Alignment>, mode?: 'merge' | 'replace'): void;
|
|
181
|
+
/**
|
|
182
|
+
* Merge `patch` over the cell's current font, so the fields left out keep the
|
|
183
|
+
* value they already had (the workbook default, on an unstyled cell). This is
|
|
184
|
+
* the way to change several font fields at once: `setCellFont(wb, c,
|
|
185
|
+
* makeFont({ bold: true }))` is a legal call that registers a font carrying no
|
|
186
|
+
* name and no size, and Excel, LibreOffice and Sheets each substitute a
|
|
187
|
+
* different one.
|
|
188
|
+
*
|
|
189
|
+
* A field set to `undefined` is removed rather than kept, so
|
|
190
|
+
* `patchCellFont(wb, c, { underline: undefined })` un-underlines a cell while
|
|
191
|
+
* leaving the rest of its font alone. Omitting the key keeps the current value.
|
|
192
|
+
*
|
|
193
|
+
* The single-field setters below are this function with one field filled in.
|
|
194
|
+
*/
|
|
195
|
+
export declare function patchCellFont(wb: Workbook, c: Cell, patch: FontPatch): void;
|
|
150
196
|
/** Toggle bold on a cell. Preserves other font fields. */
|
|
151
197
|
export declare function setBold(wb: Workbook, c: Cell, on?: boolean): void;
|
|
152
198
|
/** Toggle italic on a cell. */
|
|
@@ -223,7 +269,7 @@ export declare function setCellAsNumber(wb: Workbook, c: Cell, decimals?: number
|
|
|
223
269
|
* `bold: false` to drop the bold, or `fillColor: 'FF305496'` for a different
|
|
224
270
|
* shade. Defaults match Excel's "Table Style Medium 2" header row.
|
|
225
271
|
*/
|
|
226
|
-
export declare function formatAsHeader(wb: Workbook, ws: Worksheet, range:
|
|
272
|
+
export declare function formatAsHeader(wb: Workbook, ws: Worksheet, range: RangeRef, opts?: {
|
|
227
273
|
fillColor?: string | Partial<Color>;
|
|
228
274
|
fontColor?: string | Partial<Color>;
|
|
229
275
|
bold?: boolean;
|
|
@@ -263,7 +309,7 @@ export declare function setCellBorderAll(wb: Workbook, c: Cell, opts?: {
|
|
|
263
309
|
* the range receives a border combining its perimeter edges with the `inner`
|
|
264
310
|
* style for the inside edges.
|
|
265
311
|
*/
|
|
266
|
-
export declare function setRangeBorderBox(wb: Workbook, ws: Worksheet, range:
|
|
312
|
+
export declare function setRangeBorderBox(wb: Workbook, ws: Worksheet, range: RangeRef, opts?: {
|
|
267
313
|
style: SideStyle;
|
|
268
314
|
color?: string | Partial<Color>;
|
|
269
315
|
inner?: SideStyle;
|
package/dist/styles/fonts.d.ts
CHANGED
|
@@ -25,7 +25,16 @@ export interface Font {
|
|
|
25
25
|
readonly vertAlign?: VertAlign;
|
|
26
26
|
readonly scheme?: FontScheme;
|
|
27
27
|
}
|
|
28
|
-
|
|
28
|
+
/**
|
|
29
|
+
* Input shape for building a Font. Wider than `Partial<Font>` under
|
|
30
|
+
* `exactOptionalPropertyTypes`: a field may be present and `undefined`, which
|
|
31
|
+
* {@link makeFont} drops the same way it drops an absent one. That is what lets
|
|
32
|
+
* a caller merging two fonts express "this field goes away".
|
|
33
|
+
*/
|
|
34
|
+
export type FontPatch = {
|
|
35
|
+
[K in keyof Font]?: Font[K] | undefined;
|
|
36
|
+
};
|
|
37
|
+
export declare function makeFont(opts?: FontPatch): Font;
|
|
29
38
|
/** Excel's default cell font: Calibri 11, minor scheme, theme=1 colour. */
|
|
30
39
|
export declare const DEFAULT_FONT: Font;
|
|
31
40
|
/**
|
package/dist/styles/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export type { Alignment, HorizontalAlignment, VerticalAlignment } from './alignm
|
|
|
2
2
|
export { alignmentToCss, makeAlignment } from './alignment.js';
|
|
3
3
|
export type { Border, Side, SideStyle } from './borders.js';
|
|
4
4
|
export { borderToCss, makeBorder, makeSide } from './borders.js';
|
|
5
|
-
export { alignCellHorizontal, alignCellVertical, applyBuiltinStyle, applyNamedStyle, cellStyleToCss, centerCell, clearCellBackground, clearCellStyle, clearRangeStyle, cloneCellStyle, copyCellStyle, formatAsHeader, indentCell, rotateCellText, setBold, setCellBackgroundColor, setFontColor, setFontName, setFontSize, setItalic, setStrikethrough, setUnderline, wrapCellText, getCellAlignment, getCellBorder, getCellFill, getCellFont, getCellNumberFormat, getCellProtection, setCellAlignment, setCellAsCurrency, setCellAsDate, setCellAsNumber, setCellAsPercent, setCellBorder, setCellBorderAll, setCellFill, setCellFont, setCellNumberFormat, setCellProtection, setCellStyle, setRangeBackgroundColor, setRangeBorderBox, setRangeFont, setRangeNumberFormat, setRangeAlignment, setRangeProtection, setRangeStyle, setRangeWrapText, } from './cell-style.js';
|
|
5
|
+
export { alignCellHorizontal, alignCellVertical, applyBuiltinStyle, applyNamedStyle, cellStyleToCss, centerCell, clearCellBackground, clearCellStyle, clearRangeStyle, cloneCellStyle, copyCellStyle, formatAsHeader, indentCell, patchCellFont, registerCellStyle, rotateCellText, setBold, setCellBackgroundColor, setFontColor, setFontName, setFontSize, setItalic, setStrikethrough, setUnderline, wrapCellText, getCellAlignment, getCellBorder, getCellFill, getCellFont, getCellNumberFormat, getCellProtection, setCellAlignment, setCellAsCurrency, setCellAsDate, setCellAsNumber, setCellAsPercent, setCellBorder, setCellBorderAll, setCellFill, setCellFont, setCellNumberFormat, setCellProtection, setCellStyle, setRangeBackgroundColor, setRangeBorderBox, setRangeFont, setRangeNumberFormat, setRangeAlignment, setRangeProtection, setRangeStyle, setRangeWrapText, } from './cell-style.js';
|
|
6
6
|
export type { DifferentialStyle } from './differential.js';
|
|
7
7
|
export { addDxf, makeDifferentialStyle } from './differential.js';
|
|
8
8
|
export type { NamedStyle, StylesheetNamedStyle } from './named-styles.js';
|
|
@@ -11,11 +11,11 @@ export type { Color } from './colors.js';
|
|
|
11
11
|
export { adjustLightness, adjustSaturation, colorToHex, contrastRatio, darken, hexToHsl, hslToHex, lighten, luminance, makeColor, mixColors, normaliseRgb, pickReadableTextColor, resolveIndexedColor, rgbColor, rotateHue, } from './colors.js';
|
|
12
12
|
export type { Fill, GradientFill, GradientFillType, GradientStop, PatternFill, PatternType } from './fills.js';
|
|
13
13
|
export { fillToCss, makeFill, makeGradientFill, makeGradientStop, makePatternFill } from './fills.js';
|
|
14
|
-
export type { Font, FontScheme, UnderlineStyle, VertAlign } from './fonts.js';
|
|
14
|
+
export type { Font, FontPatch, FontScheme, UnderlineStyle, VertAlign } from './fonts.js';
|
|
15
15
|
export { DEFAULT_FONT, fontToCss, makeFont } from './fonts.js';
|
|
16
16
|
export type { Protection } from './protection.js';
|
|
17
17
|
export { makeProtection } from './protection.js';
|
|
18
|
-
export type { CellXf, Stylesheet } from './stylesheet.js';
|
|
18
|
+
export type { CellStyleSpec, CellXf, Stylesheet } from './stylesheet.js';
|
|
19
19
|
export { addBorder, addCellStyleXf, addCellXf, addFill, addFont, addNumFmt, defaultCellXf, listBorders, listCellStyleXfs, listCellXfs, listFills, listFonts, makeStylesheet, } from './stylesheet.js';
|
|
20
20
|
export type { NumberFormat } from './numbers.js';
|
|
21
21
|
export { BUILTIN_FORMATS, BUILTIN_FORMATS_MAX_SIZE, builtinFormatCode, builtinFormatId, classifyDateFormat, FORMAT_DATE_DATETIME, FORMAT_DATE_TIMEDELTA, FORMAT_DATE_YYYYMMDD2, FORMAT_GENERAL, FORMAT_NUMBER, FORMAT_NUMBER_00, FORMAT_PERCENTAGE, FORMAT_PERCENTAGE_00, FORMAT_TEXT, isBuiltinFormat, isDateFormat, isTimedeltaFormat, makeNumberFormat, } from './numbers.js';
|
|
@@ -101,3 +101,29 @@ export declare function listCellStyleXfs(ss: Stylesheet): ReadonlyArray<CellXf>;
|
|
|
101
101
|
* workbook's font 0 / fill 0 / border 0 / numFmtId 0 (General).
|
|
102
102
|
*/
|
|
103
103
|
export declare function defaultCellXf(): CellXf;
|
|
104
|
+
/**
|
|
105
|
+
* A cell's look expressed across every style axis at once. Each axis is
|
|
106
|
+
* independent: pass any subset, and the axes you leave out are decided by
|
|
107
|
+
* whichever function consumes the spec.
|
|
108
|
+
*/
|
|
109
|
+
export interface CellStyleSpec {
|
|
110
|
+
font?: Font;
|
|
111
|
+
fill?: Fill;
|
|
112
|
+
border?: Border;
|
|
113
|
+
alignment?: Alignment;
|
|
114
|
+
protection?: Protection;
|
|
115
|
+
numberFormat?: string;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Resolve a style spec to the CellXf fields it sets, registering each component
|
|
119
|
+
* in its pool. The result is a patch, not a whole xf: axes absent from `spec`
|
|
120
|
+
* are absent here too, so a caller can either spread it over
|
|
121
|
+
* {@link defaultCellXf} for a complete style or over an existing xf to merge.
|
|
122
|
+
*
|
|
123
|
+
* Every path that turns a user-facing style spec into an xf goes through this,
|
|
124
|
+
* so a new axis on {@link CellStyleSpec} reaches the modelled writer and the
|
|
125
|
+
* streaming write-only writer together.
|
|
126
|
+
*/
|
|
127
|
+
export declare function buildXfPatch(ss: Stylesheet, spec: CellStyleSpec): {
|
|
128
|
+
-readonly [K in keyof CellXf]?: CellXf[K];
|
|
129
|
+
};
|
package/dist/styles.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { An as
|
|
2
|
-
import { $ as
|
|
3
|
-
import { r as makeDifferentialStyle, t as addDxf } from "./differential-
|
|
4
|
-
export { BUILTIN_FORMATS, BUILTIN_FORMATS_MAX_SIZE, BUILTIN_NAMED_STYLES, DEFAULT_FONT, FORMAT_DATE_DATETIME, FORMAT_DATE_TIMEDELTA, FORMAT_DATE_YYYYMMDD2, FORMAT_GENERAL, FORMAT_NUMBER, FORMAT_NUMBER_00, FORMAT_PERCENTAGE, FORMAT_PERCENTAGE_00, FORMAT_TEXT, addBorder, addCellStyleXf, addCellXf, addDxf, addFill, addFont, addNamedStyle, addNumFmt, adjustLightness, adjustSaturation, alignCellHorizontal, alignCellVertical, alignmentToCss, applyBuiltinStyle, applyNamedStyle, borderToCss, builtinFormatCode, builtinFormatId, cellStyleToCss, centerCell, classifyDateFormat, clearCellBackground, clearCellStyle, clearRangeStyle, cloneCellStyle, colorToHex, contrastRatio, copyCellStyle, darken, defaultCellXf, ensureBuiltinStyle, fillToCss, fontToCss, formatAsHeader, getCellAlignment, getCellBorder, getCellFill, getCellFont, getCellNumberFormat, getCellProtection, hexToHsl, hslToHex, indentCell, isBuiltinFormat, isDateFormat, isTimedeltaFormat, lighten, listBorders, listCellStyleXfs, listCellXfs, listFills, listFonts, luminance, makeAlignment, makeBorder, makeColor, makeDifferentialStyle, makeFill, makeFont, makeGradientFill, makeGradientStop, makeNumberFormat, makePatternFill, makeProtection, makeSide, makeStylesheet, mixColors, normaliseRgb, pickReadableTextColor, resolveIndexedColor, rgbColor, rotateCellText, rotateHue, setBold, setCellAlignment, setCellAsCurrency, setCellAsDate, setCellAsNumber, setCellAsPercent, setCellBackgroundColor, setCellBorder, setCellBorderAll, setCellFill, setCellFont, setCellNumberFormat, setCellProtection, setCellStyle, setFontColor, setFontName, setFontSize, setItalic, setRangeAlignment, setRangeBackgroundColor, setRangeBorderBox, setRangeFont, setRangeNumberFormat, setRangeProtection, setRangeStyle, setRangeWrapText, setStrikethrough, setUnderline, wrapCellText };
|
|
1
|
+
import { An as rgbColor, Cn as lighten, Dn as normaliseRgb, En as mixColors, On as pickReadableTextColor, Sn as hslToHex, Tn as makeColor, _n as adjustSaturation, bn as darken, gn as adjustLightness, jn as rotateHue, kn as resolveIndexedColor, vn as colorToHex, wn as luminance, xn as hexToHsl, yn as contrastRatio } from "./worksheet-4xW-i8j9.mjs";
|
|
2
|
+
import { $ as BUILTIN_NAMED_STYLES, $t as makeAlignment, A as setCellBorder, At as isBuiltinFormat, B as setItalic, C as setBold, Ct as FORMAT_NUMBER_00, D as setCellAsNumber, Dt as builtinFormatCode, E as setCellAsDate, Et as FORMAT_TEXT, F as setCellProtection, G as setRangeNumberFormat, Gt as makePatternFill, H as setRangeBackgroundColor, Ht as makeFill, I as setCellStyle, J as setRangeWrapText, Jt as makeBorder, K as setRangeProtection, L as setFontColor, M as setCellFill, Mt as isTimedeltaFormat, N as setCellFont, Nt as makeNumberFormat, O as setCellAsPercent, Ot as builtinFormatId, P as setCellNumberFormat, Pt as DEFAULT_FONT, Q as makeProtection, Qt as alignmentToCss, R as setFontName, Rt as fontToCss, S as rotateCellText, St as FORMAT_NUMBER, T as setCellAsCurrency, Tt as FORMAT_PERCENTAGE_00, U as setRangeBorderBox, Ut as makeGradientFill, V as setRangeAlignment, Vt as fillToCss, W as setRangeFont, Wt as makeGradientStop, X as setUnderline, Y as setStrikethrough, Yt as makeSide, Z as wrapCellText, _ as getCellNumberFormat, _t as BUILTIN_FORMATS_MAX_SIZE, a as cellStyleToCss, at as addFill, b as patchCellFont, bt as FORMAT_DATE_YYYYMMDD2, c as clearCellStyle, d as copyCellStyle, dt as listCellStyleXfs, et as addNamedStyle, f as formatAsHeader, ft as listCellXfs, g as getCellFont, gt as BUILTIN_FORMATS, h as getCellFill, ht as makeStylesheet, i as applyNamedStyle, it as addCellXf, j as setCellBorderAll, jt as isDateFormat, k as setCellBackgroundColor, kt as classifyDateFormat, l as clearRangeStyle, lt as defaultCellXf, m as getCellBorder, mt as listFonts, n as alignCellVertical, nt as addBorder, o as centerCell, ot as addFont, p as getCellAlignment, pt as listFills, q as setRangeStyle, qt as borderToCss, r as applyBuiltinStyle, rt as addCellStyleXf, s as clearCellBackground, st as addNumFmt, t as alignCellHorizontal, tt as ensureBuiltinStyle, u as cloneCellStyle, ut as listBorders, v as getCellProtection, vt as FORMAT_DATE_DATETIME, w as setCellAlignment, wt as FORMAT_PERCENTAGE, x as registerCellStyle, xt as FORMAT_GENERAL, y as indentCell, yt as FORMAT_DATE_TIMEDELTA, z as setFontSize, zt as makeFont } from "./cell-style-BFmJOmcx.mjs";
|
|
3
|
+
import { r as makeDifferentialStyle, t as addDxf } from "./differential-H9SjEeIU.mjs";
|
|
4
|
+
export { BUILTIN_FORMATS, BUILTIN_FORMATS_MAX_SIZE, BUILTIN_NAMED_STYLES, DEFAULT_FONT, FORMAT_DATE_DATETIME, FORMAT_DATE_TIMEDELTA, FORMAT_DATE_YYYYMMDD2, FORMAT_GENERAL, FORMAT_NUMBER, FORMAT_NUMBER_00, FORMAT_PERCENTAGE, FORMAT_PERCENTAGE_00, FORMAT_TEXT, addBorder, addCellStyleXf, addCellXf, addDxf, addFill, addFont, addNamedStyle, addNumFmt, adjustLightness, adjustSaturation, alignCellHorizontal, alignCellVertical, alignmentToCss, applyBuiltinStyle, applyNamedStyle, borderToCss, builtinFormatCode, builtinFormatId, cellStyleToCss, centerCell, classifyDateFormat, clearCellBackground, clearCellStyle, clearRangeStyle, cloneCellStyle, colorToHex, contrastRatio, copyCellStyle, darken, defaultCellXf, ensureBuiltinStyle, fillToCss, fontToCss, formatAsHeader, getCellAlignment, getCellBorder, getCellFill, getCellFont, getCellNumberFormat, getCellProtection, hexToHsl, hslToHex, indentCell, isBuiltinFormat, isDateFormat, isTimedeltaFormat, lighten, listBorders, listCellStyleXfs, listCellXfs, listFills, listFonts, luminance, makeAlignment, makeBorder, makeColor, makeDifferentialStyle, makeFill, makeFont, makeGradientFill, makeGradientStop, makeNumberFormat, makePatternFill, makeProtection, makeSide, makeStylesheet, mixColors, normaliseRgb, patchCellFont, pickReadableTextColor, registerCellStyle, resolveIndexedColor, rgbColor, rotateCellText, rotateHue, setBold, setCellAlignment, setCellAsCurrency, setCellAsDate, setCellAsNumber, setCellAsPercent, setCellBackgroundColor, setCellBorder, setCellBorderAll, setCellFill, setCellFont, setCellNumberFormat, setCellProtection, setCellStyle, setFontColor, setFontName, setFontSize, setItalic, setRangeAlignment, setRangeBackgroundColor, setRangeBorderBox, setRangeFont, setRangeNumberFormat, setRangeProtection, setRangeStyle, setRangeWrapText, setStrikethrough, setUnderline, wrapCellText };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { n as OpenXmlError, o as OpenXmlSchemaError } from "./exceptions-D-CFwxgm.mjs";
|
|
2
|
-
import { a as columnLetterFromIndex, g as tupleToCoordinate, i as columnIndexFromLetter, s as coordinateToTuple } from "./coordinate-
|
|
3
|
-
import { t as ERROR_CODES$1 } from "./inference-
|
|
4
|
-
import {
|
|
2
|
+
import { a as columnLetterFromIndex, g as tupleToCoordinate, i as columnIndexFromLetter, s as coordinateToTuple } from "./coordinate-Bt5Gni2I.mjs";
|
|
3
|
+
import { r as normalizeFormulaText, t as ERROR_CODES$1 } from "./inference-BMvv9cUY.mjs";
|
|
4
|
+
import { A as setSharedFormula, E as setArrayFormula, O as setDataTableFormula, c as getCoordinate, k as setFormula } from "./cell-Df3cKRIl.mjs";
|
|
5
5
|
import { C as makeSurface3DChart, S as makeStockChart, _ as makePie3DChart, a as makeArea3DChart, b as makeScatterChart, c as makeBarChart, d as makeBubbleSeries, f as makeChartSpace, g as makeOfPieChart, h as makeLineChart, l as makeBarSeries, m as makeLine3DChart, n as makeChartDrawing, o as makeAreaChart, p as makeDoughnutChart, s as makeBar3DChart, u as makeBubbleChart, v as makePieChart, w as makeSurfaceChart, x as makeScatterSeries, y as makeRadarChart } from "./user-shapes-DfmCGKB0.mjs";
|
|
6
6
|
import { t as makeChartsheet } from "./chartsheet-C3-tqkPy.mjs";
|
|
7
|
-
import { o as makeDrawing } from "./drawing-
|
|
7
|
+
import { o as makeDrawing } from "./drawing-ZJ3h4VHD.mjs";
|
|
8
8
|
import { n as VALUED_COLOR_MOD_KINDS, r as VALUELESS_COLOR_MOD_KINDS, t as SCHEME_COLOR_NAMES } from "./colors-ovWAwnZI.mjs";
|
|
9
9
|
import { n as escapeXmlAttr$1, r as escapeXmlText$1, t as escapeCellString } from "./escape-rnWSPpWY.mjs";
|
|
10
10
|
import { H as DRAWING_NS, I as CX_NS, T as CHART_NS, a as findChildren, bt as X14_NS, dt as SHEET_DRAWING_NS, ft as SHEET_MAIN_NS, i as findChild, jt as qname, lt as REL_NS, n as el, q as MARKUP_COMPAT_NS, w as CHART_DRAWING_NS } from "./tree-BX-sRRVp.mjs";
|
|
@@ -12,12 +12,12 @@ import { t as parseXml } from "./parser-By6RWZVW.mjs";
|
|
|
12
12
|
import { n as toTree, r as defineSchema, t as fromTree } from "./serialize-BC2Wu3bR.mjs";
|
|
13
13
|
import { t as serializeXml } from "./serializer-C6nm0mRJ.mjs";
|
|
14
14
|
import { Q as findById } from "./manifest-pLmx7KYh.mjs";
|
|
15
|
-
import { $t as
|
|
16
|
-
import {
|
|
17
|
-
import { C as addSharedRichText, O as parseRichString, w as addSharedString } from "./workbook-
|
|
18
|
-
import { a as makeCfRule, i as makeDataValidation, n as makeTableColumn, o as makeConditionalFormatting, r as makeTableDefinition } from "./table-
|
|
15
|
+
import { $t as makeColumnDimension, Qt as makeSheetView, Tn as makeColor, Yt as makeLegacyComment, cn as parseRange, en as makeRowDimension, fn as rangeToString, on as multiCellRangeToString, ot as makeWorksheet, sn as parseMultiCellRange, xt as setCell } from "./worksheet-4xW-i8j9.mjs";
|
|
16
|
+
import { Bt as PATTERN_TYPES, Ft as FONT_SCHEMES, It as UNDERLINE_STYLES, Kt as SIDE_STYLES, Lt as VERT_ALIGNS, Xt as HORIZONTAL_ALIGNMENTS, Zt as VERTICAL_ALIGNMENTS } from "./cell-style-BFmJOmcx.mjs";
|
|
17
|
+
import { C as addSharedRichText, O as parseRichString, w as addSharedString } from "./workbook-B15-T4cs.mjs";
|
|
18
|
+
import { a as makeCfRule, i as makeDataValidation, n as makeTableColumn, o as makeConditionalFormatting, r as makeTableDefinition } from "./table-Ccro4rrz.mjs";
|
|
19
19
|
import { i as durationToExcel, r as dateToExcel } from "./datetime-B2ySVlXt.mjs";
|
|
20
|
-
import { n as getDxfs } from "./differential-
|
|
20
|
+
import { n as getDxfs } from "./differential-H9SjEeIU.mjs";
|
|
21
21
|
//#region src/drawing/dml/effect.ts
|
|
22
22
|
const PRESET_SHADOW_NAMES = [
|
|
23
23
|
"shdw1",
|
|
@@ -6156,10 +6156,11 @@ const decodeCachedValue = (raw, t) => {
|
|
|
6156
6156
|
};
|
|
6157
6157
|
const handleFormula = (cell, fNode, coord, cached, sharedFormulas) => {
|
|
6158
6158
|
const tAttr = fNode.attrs["t"] ?? "normal";
|
|
6159
|
-
const formula = fNode.text ?? "";
|
|
6159
|
+
const formula = normalizeFormulaText(fNode.text ?? "");
|
|
6160
6160
|
const opts = cached !== void 0 ? { cachedValue: cached } : void 0;
|
|
6161
6161
|
switch (tAttr) {
|
|
6162
6162
|
case "normal":
|
|
6163
|
+
if (formula.length === 0) throw new OpenXmlSchemaError(`worksheet: <f> at ${tupleToCoordinate(coord.col, coord.row)} has no formula text`);
|
|
6163
6164
|
setFormula(cell, formula, opts);
|
|
6164
6165
|
return;
|
|
6165
6166
|
case "array": {
|
|
@@ -6185,8 +6186,7 @@ const handleFormula = (cell, fNode, coord, cached, sharedFormulas) => {
|
|
|
6185
6186
|
const cache = sharedFormulas.get(si);
|
|
6186
6187
|
if (!cache) throw new OpenXmlSchemaError(`worksheet: <f t="shared" si="${si}"/> with no preceding origin formula`);
|
|
6187
6188
|
const dest = tupleToCoordinate(coord.col, coord.row);
|
|
6188
|
-
|
|
6189
|
-
setSharedFormula(cell, si, translated.startsWith("=") ? translated.slice(1) : translated, void 0, opts);
|
|
6189
|
+
setSharedFormula(cell, si, translateFormula(`=${cache.formula}`, cache.origin, { dest }), void 0, opts);
|
|
6190
6190
|
return;
|
|
6191
6191
|
}
|
|
6192
6192
|
case "dataTable": {
|
|
@@ -6489,7 +6489,9 @@ function serializeWorksheet(ws, ctx) {
|
|
|
6489
6489
|
parts.push(`<row r="${rowIdx}"${dimAttrs}>`);
|
|
6490
6490
|
for (const colIdx of colKeys) {
|
|
6491
6491
|
const cell = row.get(colIdx);
|
|
6492
|
-
if (cell)
|
|
6492
|
+
if (!cell) continue;
|
|
6493
|
+
if (cell.styleId !== 0 && (!Number.isInteger(cell.styleId) || cell.styleId < 0 || cell.styleId >= ctx.styles.cellXfs.length)) throw unknownStyleId(cell, ws.title, ctx.styles.cellXfs.length);
|
|
6494
|
+
parts.push(serializeCell(cell, ctx));
|
|
6493
6495
|
}
|
|
6494
6496
|
parts.push("</row>");
|
|
6495
6497
|
}
|
|
@@ -6587,6 +6589,15 @@ const serializeDimension = (ws) => {
|
|
|
6587
6589
|
const col2 = colLetters(maxCol);
|
|
6588
6590
|
return `<dimension ref="${minRow === maxRow && minCol === maxCol ? `${col1}${minRow}` : `${col1}${minRow}:${col2}${maxRow}`}"/>`;
|
|
6589
6591
|
};
|
|
6592
|
+
/**
|
|
6593
|
+
* Excel resolves `<c s="n">` against `cellXfs`, and refuses to open a sheet
|
|
6594
|
+
* whose `n` names no entry: the file loads with the repair dialog and the sheet
|
|
6595
|
+
* is dropped. A `styleId` that leaves the pool it came from is the way to get
|
|
6596
|
+
* there, most often an id from `registerCellStyle` applied to a cell in a
|
|
6597
|
+
* different workbook, so refuse to emit rather than write a file Excel will
|
|
6598
|
+
* reject.
|
|
6599
|
+
*/
|
|
6600
|
+
const unknownStyleId = (cell, sheetTitle, xfCount) => new OpenXmlSchemaError(`Cell ${getCoordinate(cell)} on sheet "${sheetTitle}" has styleId ${cell.styleId}, outside this workbook's cellXfs pool [0, ${xfCount}). A styleId is an index into one workbook's stylesheet; ids from registerCellStyle are valid only for the workbook that produced them.`);
|
|
6590
6601
|
const colLetters = (n) => {
|
|
6591
6602
|
let m = n;
|
|
6592
6603
|
let out = "";
|
|
@@ -6651,7 +6662,9 @@ const serializeFormulaCell = (ref, styleAttr, f) => {
|
|
|
6651
6662
|
if (f.aca) fAttrs.push("aca=\"1\"");
|
|
6652
6663
|
if (f.ca) fAttrs.push("ca=\"1\"");
|
|
6653
6664
|
const fAttrStr = fAttrs.length > 0 ? ` ${fAttrs.join(" ")}` : "";
|
|
6654
|
-
const
|
|
6665
|
+
const normalized = normalizeFormulaText(f.formula);
|
|
6666
|
+
if ((f.t === "normal" || f.t === "array") && normalized.length === 0) throw new OpenXmlSchemaError(`worksheet: ${f.t} formula must not be empty at ${ref}`);
|
|
6667
|
+
const formulaText = escapeXmlText(escapeCellString(normalized));
|
|
6655
6668
|
const fEl = formulaText.length > 0 ? `<f${fAttrStr}>${formulaText}</f>` : `<f${fAttrStr}/>`;
|
|
6656
6669
|
let valueAttr = "";
|
|
6657
6670
|
let vEl = "";
|
|
@@ -6798,7 +6811,7 @@ const serializeCfRule = (rule) => {
|
|
|
6798
6811
|
if (rule.stdDev !== void 0) attrs += ` stdDev="${rule.stdDev}"`;
|
|
6799
6812
|
if (rule.timePeriod !== void 0) attrs += ` timePeriod="${rule.timePeriod}"`;
|
|
6800
6813
|
const inner = [];
|
|
6801
|
-
for (const f of rule.formulas) inner.push(`<formula>${escapeXmlText(f)}</formula>`);
|
|
6814
|
+
for (const f of rule.formulas) inner.push(`<formula>${escapeXmlText(normalizeFormulaText(f))}</formula>`);
|
|
6802
6815
|
if (rule.innerXml) inner.push(rule.innerXml);
|
|
6803
6816
|
if (inner.length === 0) return `<cfRule${attrs}/>`;
|
|
6804
6817
|
return `<cfRule${attrs}>${inner.join("")}</cfRule>`;
|
|
@@ -6823,8 +6836,8 @@ const serializeDataValidation = (dv) => {
|
|
|
6823
6836
|
if (dv.prompt !== void 0) attrs += ` prompt="${escapeXmlAttr(dv.prompt)}"`;
|
|
6824
6837
|
attrs += ` sqref="${escapeXmlAttr(multiCellRangeToString(dv.sqref))}"`;
|
|
6825
6838
|
const formulas = [];
|
|
6826
|
-
if (dv.formula1 !== void 0) formulas.push(`<formula1>${escapeXmlText(dv.formula1)}</formula1>`);
|
|
6827
|
-
if (dv.formula2 !== void 0) formulas.push(`<formula2>${escapeXmlText(dv.formula2)}</formula2>`);
|
|
6839
|
+
if (dv.formula1 !== void 0) formulas.push(`<formula1>${escapeXmlText(normalizeFormulaText(dv.formula1))}</formula1>`);
|
|
6840
|
+
if (dv.formula2 !== void 0) formulas.push(`<formula2>${escapeXmlText(normalizeFormulaText(dv.formula2))}</formula2>`);
|
|
6828
6841
|
if (formulas.length === 0) return `<dataValidation${attrs}/>`;
|
|
6829
6842
|
return `<dataValidation${attrs}>${formulas.join("")}</dataValidation>`;
|
|
6830
6843
|
};
|
|
@@ -8709,4 +8722,4 @@ const cellXfToTree = (xf) => {
|
|
|
8709
8722
|
//#endregion
|
|
8710
8723
|
export { chartExToBytes as C, findUserShapesRId as D, chartToBytes as E, parseChartXml as O, userShapesToBytes as S, parseChartExXml as T, parseChartsheetXml as _, parseCommentsXml as a, parseWorksheetXml as b, NumberFormatSchema as c, BorderSchema as d, AlignmentSchema as f, chartsheetToBytes as g, parseDrawingXml as h, commentsToBytes as i, FontSchema as l, drawingToBytes as m, parseTableXml as n, placeholderVmlDrawing as o, collectRawRelIds as p, tableToBytes as r, ProtectionSchema as s, stylesheetToBytes as t, fillFromTree as u, serializeCell as v, isChartExBytes as w, parseUserShapesXml as x, worksheetToBytes as y };
|
|
8711
8724
|
|
|
8712
|
-
//# sourceMappingURL=stylesheet-writer-
|
|
8725
|
+
//# sourceMappingURL=stylesheet-writer-D7Uug85X.mjs.map
|