ooxml.js 4.3.0 → 4.4.1
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 +6 -6
- package/dist/{codec-DNjHjEDm.d.cts → codec-CoqS3uGe.d.cts} +2 -2
- package/dist/{codec-BrTMlL0a.d.ts → codec-CzqiAWdz.d.ts} +4 -4
- package/dist/codec.d.cts +1 -1
- package/dist/codec.d.ts +1 -1
- package/dist/{content-UlQ-Nhgi.d.cts → content-C79O3esU.d.cts} +6 -1
- package/dist/{content-t6ZfmfQM.d.ts → content-MEmp_Rlx.d.ts} +6 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +1 -1
- package/dist/{read-Di5UfiSh.cjs → read-D-L3dItC.cjs} +316 -59
- package/dist/{read-CxMli3Om.d.ts → read-D30xHgEp.d.ts} +58 -1
- package/dist/{read-BQoFiqsb.js → read-DGknK1YY.js} +307 -62
- package/dist/{read-CDX1WbiF.d.cts → read-LTgVJIPU.d.cts} +58 -1
- package/dist/typed/document-package.cjs +8 -2
- package/dist/typed/document-package.js +8 -2
- package/dist/typed/docx/constructs.cjs +55 -6
- package/dist/typed/docx/constructs.d.cts +6 -3
- package/dist/typed/docx/constructs.d.ts +6 -3
- package/dist/typed/docx/constructs.js +54 -6
- package/dist/typed/docx/read.cjs +3 -1
- package/dist/typed/docx/read.d.cts +2 -2
- package/dist/typed/docx/read.d.ts +2 -2
- package/dist/typed/docx/read.js +2 -2
- package/dist/typed/docx/write.cjs +78 -10
- package/dist/typed/docx/write.js +78 -10
- package/dist/typed/embedded.cjs +1 -1
- package/dist/typed/embedded.js +1 -1
- package/dist/typed/pptx/read.cjs +1 -1
- package/dist/typed/pptx/read.js +1 -1
- package/dist/typed/xlsx/build.cjs +1 -1
- package/dist/typed/xlsx/build.js +1 -1
- package/dist/typed/xlsx/content.cjs +42 -1
- package/dist/typed/xlsx/content.d.cts +2 -2
- package/dist/typed/xlsx/content.d.ts +2 -2
- package/dist/typed/xlsx/content.js +42 -2
- package/dist/typed/xlsx/definitions.cjs +54 -0
- package/dist/typed/xlsx/definitions.d.cts +6 -0
- package/dist/typed/xlsx/definitions.d.ts +6 -0
- package/dist/typed/xlsx/definitions.js +53 -0
- package/dist/typed/xlsx/drawings.cjs +170 -0
- package/dist/typed/xlsx/drawings.d.cts +7 -0
- package/dist/typed/xlsx/drawings.d.ts +7 -0
- package/dist/typed/xlsx/drawings.js +169 -0
- package/dist/typed/xlsx/units.cjs +2 -0
- package/dist/typed/xlsx/units.d.cts +2 -1
- package/dist/typed/xlsx/units.d.ts +2 -1
- package/dist/typed/xlsx/units.js +2 -1
- package/package.json +2 -2
package/dist/typed/embedded.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { c as readEmbeddedPayloadPart, s as readEmbeddedOoxmlPayload } from "../read-DGknK1YY.js";
|
|
2
2
|
export { readEmbeddedOoxmlPayload, readEmbeddedPayloadPart };
|
package/dist/typed/pptx/read.cjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_read = require("../../read-
|
|
2
|
+
const require_read = require("../../read-D-L3dItC.cjs");
|
|
3
3
|
exports.PptxDocumentSchema = require_read.PptxDocumentSchema;
|
|
4
4
|
exports.readPptxContent = require_read.readPptxContent;
|
package/dist/typed/pptx/read.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { l as PptxDocumentSchema, u as readPptxContent } from "../../read-DGknK1YY.js";
|
|
2
2
|
export { PptxDocumentSchema, readPptxContent };
|
|
@@ -6,10 +6,10 @@ const require_typed_xlsx_defined_names = require("./defined-names.cjs");
|
|
|
6
6
|
const require_typed_xlsx_number_format = require("./number-format.cjs");
|
|
7
7
|
const require_typed_xlsx_util = require("./util.cjs");
|
|
8
8
|
const require_typed_xlsx_print_settings = require("./print-settings.cjs");
|
|
9
|
+
const require_typed_xlsx_units = require("./units.cjs");
|
|
9
10
|
const require_typed_xlsx_serial = require("./serial.cjs");
|
|
10
11
|
const require_typed_xlsx_shared_strings = require("./shared-strings.cjs");
|
|
11
12
|
const require_typed_xlsx_styles = require("./styles.cjs");
|
|
12
|
-
const require_typed_xlsx_units = require("./units.cjs");
|
|
13
13
|
let document_schema_js = require("document-schema.js");
|
|
14
14
|
//#region src/typed/xlsx/build.ts
|
|
15
15
|
const SML_NS = "http://schemas.openxmlformats.org/spreadsheetml/2006/main";
|
package/dist/typed/xlsx/build.js
CHANGED
|
@@ -5,10 +5,10 @@ import { XLNM_PRINT_AREA, XLNM_PRINT_TITLES, buildPrintAreaValue, buildPrintTitl
|
|
|
5
5
|
import { BOOLEAN_NUMBER_FORMAT, DATE_NUMBER_FORMAT, DATE_TIME_NUMBER_FORMAT, PERCENTAGE_NUMBER_FORMAT, TIME_NUMBER_FORMAT, currencyNumberFormat } from "./number-format.js";
|
|
6
6
|
import { pageSizeToPaperSizeCode, ptToUniversalMeasure, writeXmlBool } from "./util.js";
|
|
7
7
|
import { DEFAULT_HEADER_FOOTER_MARGIN_PT } from "./print-settings.js";
|
|
8
|
+
import { ptToColumnWidthChars } from "./units.js";
|
|
8
9
|
import { isoDateTimeToSerial, isoDateToSerial, isoTimeToSerial } from "./serial.js";
|
|
9
10
|
import { SharedStringTable } from "./shared-strings.js";
|
|
10
11
|
import { CellFormatTable, RESERVED_BORDER_INDICES, RESERVED_FILL_INDICES } from "./styles.js";
|
|
11
|
-
import { ptToColumnWidthChars } from "./units.js";
|
|
12
12
|
import { cellReference, rangeReference } from "document-schema.js";
|
|
13
13
|
//#region src/typed/xlsx/build.ts
|
|
14
14
|
const SML_NS = "http://schemas.openxmlformats.org/spreadsheetml/2006/main";
|
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_xml_build = require("../../xml/build.cjs");
|
|
2
3
|
const require_typed_util = require("../util.cjs");
|
|
3
4
|
const require_typed_shared_metadata = require("../shared/metadata.cjs");
|
|
4
5
|
const require_typed_xlsx_defined_names = require("./defined-names.cjs");
|
|
5
6
|
const require_typed_xlsx_number_format = require("./number-format.cjs");
|
|
6
7
|
const require_typed_xlsx_util = require("./util.cjs");
|
|
7
8
|
const require_typed_xlsx_print_settings = require("./print-settings.cjs");
|
|
9
|
+
const require_typed_xlsx_units = require("./units.cjs");
|
|
10
|
+
const require_typed_xlsx_drawings = require("./drawings.cjs");
|
|
8
11
|
const require_typed_xlsx_serial = require("./serial.cjs");
|
|
9
12
|
const require_typed_xlsx_shared_strings = require("./shared-strings.cjs");
|
|
10
13
|
const require_typed_xlsx_styles = require("./styles.cjs");
|
|
11
14
|
const require_typed_xlsx_comments = require("./comments.cjs");
|
|
12
|
-
const require_typed_xlsx_units = require("./units.cjs");
|
|
13
15
|
let document_schema_js = require("document-schema.js");
|
|
14
16
|
//#region src/typed/xlsx/content.ts
|
|
15
17
|
const WORKBOOK_PATH = "xl/workbook.xml";
|
|
@@ -318,6 +320,41 @@ function applyCellComments(comments, cells) {
|
|
|
318
320
|
byPosition.set(key, materialised);
|
|
319
321
|
}
|
|
320
322
|
}
|
|
323
|
+
function applyCellResidueRules(worksheet, cells) {
|
|
324
|
+
const rules = [];
|
|
325
|
+
for (const container of require_typed_util.childrenWithTag(worksheet, "dataValidations")) rules.push(...require_typed_util.childrenWithTag(container, "dataValidation"));
|
|
326
|
+
rules.push(...require_typed_util.childrenWithTag(worksheet, "conditionalFormatting"));
|
|
327
|
+
if (rules.length === 0) return;
|
|
328
|
+
const byPosition = /* @__PURE__ */ new Map();
|
|
329
|
+
for (const cell of cells) byPosition.set(`${cell.row}:${cell.column}`, cell);
|
|
330
|
+
for (const rule of rules) {
|
|
331
|
+
const sqref = require_typed_util.attr(rule, "sqref");
|
|
332
|
+
const firstToken = sqref === void 0 ? void 0 : sqref.split(/\s+/)[0];
|
|
333
|
+
const range = firstToken === void 0 || firstToken === "" ? void 0 : (0, document_schema_js.parseRangeReference)(firstToken);
|
|
334
|
+
if (range === void 0) continue;
|
|
335
|
+
const key = `${range.startRow}:${range.startColumn}`;
|
|
336
|
+
const existing = byPosition.get(key);
|
|
337
|
+
if (existing === void 0) {
|
|
338
|
+
const materialised = {
|
|
339
|
+
row: range.startRow,
|
|
340
|
+
column: range.startColumn,
|
|
341
|
+
value: { kind: "empty" },
|
|
342
|
+
displayText: "",
|
|
343
|
+
source: {
|
|
344
|
+
format: "xlsx",
|
|
345
|
+
xml: require_xml_build.buildXml([rule])
|
|
346
|
+
}
|
|
347
|
+
};
|
|
348
|
+
cells.push(materialised);
|
|
349
|
+
byPosition.set(key, materialised);
|
|
350
|
+
continue;
|
|
351
|
+
}
|
|
352
|
+
existing.source ??= {
|
|
353
|
+
format: "xlsx",
|
|
354
|
+
xml: require_xml_build.buildXml([rule])
|
|
355
|
+
};
|
|
356
|
+
}
|
|
357
|
+
}
|
|
321
358
|
function readSheet(pkg, entry, sheetIndex, sharedStrings, definedNamesBySheet, context) {
|
|
322
359
|
const worksheet = require_typed_util.rootElement(pkg.parts[entry.path]);
|
|
323
360
|
if (worksheet === void 0) return {
|
|
@@ -330,12 +367,15 @@ function readSheet(pkg, entry, sheetIndex, sharedStrings, definedNamesBySheet, c
|
|
|
330
367
|
};
|
|
331
368
|
const cells = readCells(worksheet, sharedStrings, context);
|
|
332
369
|
applyCellComments(require_typed_xlsx_comments.readSheetCellComments(pkg, entry.path), cells);
|
|
370
|
+
applyCellResidueRules(worksheet, cells);
|
|
371
|
+
const embeddedObjects = require_typed_xlsx_drawings.readSheetEmbeddedObjects(pkg, entry.path, worksheet);
|
|
333
372
|
return {
|
|
334
373
|
name: entry.name,
|
|
335
374
|
cells,
|
|
336
375
|
columns: readColumns(worksheet),
|
|
337
376
|
rows: readRows(worksheet),
|
|
338
377
|
images: [],
|
|
378
|
+
...embeddedObjects === void 0 ? {} : { embeddedObjects },
|
|
339
379
|
printSettings: require_typed_xlsx_print_settings.readPrintSettings(worksheet, sheetIndex, definedNamesBySheet)
|
|
340
380
|
};
|
|
341
381
|
}
|
|
@@ -360,3 +400,4 @@ function readXlsxContent(pkg) {
|
|
|
360
400
|
}
|
|
361
401
|
//#endregion
|
|
362
402
|
exports.readXlsxContent = readXlsxContent;
|
|
403
|
+
exports.resolveSheetEntries = resolveSheetEntries;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as readXlsxContent } from "../../content-
|
|
2
|
-
export { readXlsxContent };
|
|
1
|
+
import { n as resolveSheetEntries, t as readXlsxContent } from "../../content-C79O3esU.cjs";
|
|
2
|
+
export { readXlsxContent, resolveSheetEntries };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as readXlsxContent } from "../../content-
|
|
2
|
-
export { readXlsxContent };
|
|
1
|
+
import { n as resolveSheetEntries, t as readXlsxContent } from "../../content-MEmp_Rlx.js";
|
|
2
|
+
export { readXlsxContent, resolveSheetEntries };
|
|
@@ -1,14 +1,16 @@
|
|
|
1
|
+
import { buildXml } from "../../xml/build.js";
|
|
1
2
|
import { attr, childrenWithTag, elementsWithTag, resolveRelationships, rootElement, textContent } from "../util.js";
|
|
2
3
|
import { readCoreProperties } from "../shared/metadata.js";
|
|
3
4
|
import { readDefinedNamesBySheet } from "./defined-names.js";
|
|
4
5
|
import { classifyNumberFormat } from "./number-format.js";
|
|
5
6
|
import { readXmlBool } from "./util.js";
|
|
6
7
|
import { readPrintSettings } from "./print-settings.js";
|
|
8
|
+
import { columnWidthCharsToPt } from "./units.js";
|
|
9
|
+
import { readSheetEmbeddedObjects } from "./drawings.js";
|
|
7
10
|
import { readDate1904, serialToIsoDate, serialToIsoDateTime, serialToIsoTime } from "./serial.js";
|
|
8
11
|
import { loadSharedStrings } from "./shared-strings.js";
|
|
9
12
|
import { readCellStyles } from "./styles.js";
|
|
10
13
|
import { readSheetCellComments } from "./comments.js";
|
|
11
|
-
import { columnWidthCharsToPt } from "./units.js";
|
|
12
14
|
import { parseCellReference, parseRangeReference } from "document-schema.js";
|
|
13
15
|
//#region src/typed/xlsx/content.ts
|
|
14
16
|
const WORKBOOK_PATH = "xl/workbook.xml";
|
|
@@ -317,6 +319,41 @@ function applyCellComments(comments, cells) {
|
|
|
317
319
|
byPosition.set(key, materialised);
|
|
318
320
|
}
|
|
319
321
|
}
|
|
322
|
+
function applyCellResidueRules(worksheet, cells) {
|
|
323
|
+
const rules = [];
|
|
324
|
+
for (const container of childrenWithTag(worksheet, "dataValidations")) rules.push(...childrenWithTag(container, "dataValidation"));
|
|
325
|
+
rules.push(...childrenWithTag(worksheet, "conditionalFormatting"));
|
|
326
|
+
if (rules.length === 0) return;
|
|
327
|
+
const byPosition = /* @__PURE__ */ new Map();
|
|
328
|
+
for (const cell of cells) byPosition.set(`${cell.row}:${cell.column}`, cell);
|
|
329
|
+
for (const rule of rules) {
|
|
330
|
+
const sqref = attr(rule, "sqref");
|
|
331
|
+
const firstToken = sqref === void 0 ? void 0 : sqref.split(/\s+/)[0];
|
|
332
|
+
const range = firstToken === void 0 || firstToken === "" ? void 0 : parseRangeReference(firstToken);
|
|
333
|
+
if (range === void 0) continue;
|
|
334
|
+
const key = `${range.startRow}:${range.startColumn}`;
|
|
335
|
+
const existing = byPosition.get(key);
|
|
336
|
+
if (existing === void 0) {
|
|
337
|
+
const materialised = {
|
|
338
|
+
row: range.startRow,
|
|
339
|
+
column: range.startColumn,
|
|
340
|
+
value: { kind: "empty" },
|
|
341
|
+
displayText: "",
|
|
342
|
+
source: {
|
|
343
|
+
format: "xlsx",
|
|
344
|
+
xml: buildXml([rule])
|
|
345
|
+
}
|
|
346
|
+
};
|
|
347
|
+
cells.push(materialised);
|
|
348
|
+
byPosition.set(key, materialised);
|
|
349
|
+
continue;
|
|
350
|
+
}
|
|
351
|
+
existing.source ??= {
|
|
352
|
+
format: "xlsx",
|
|
353
|
+
xml: buildXml([rule])
|
|
354
|
+
};
|
|
355
|
+
}
|
|
356
|
+
}
|
|
320
357
|
function readSheet(pkg, entry, sheetIndex, sharedStrings, definedNamesBySheet, context) {
|
|
321
358
|
const worksheet = rootElement(pkg.parts[entry.path]);
|
|
322
359
|
if (worksheet === void 0) return {
|
|
@@ -329,12 +366,15 @@ function readSheet(pkg, entry, sheetIndex, sharedStrings, definedNamesBySheet, c
|
|
|
329
366
|
};
|
|
330
367
|
const cells = readCells(worksheet, sharedStrings, context);
|
|
331
368
|
applyCellComments(readSheetCellComments(pkg, entry.path), cells);
|
|
369
|
+
applyCellResidueRules(worksheet, cells);
|
|
370
|
+
const embeddedObjects = readSheetEmbeddedObjects(pkg, entry.path, worksheet);
|
|
332
371
|
return {
|
|
333
372
|
name: entry.name,
|
|
334
373
|
cells,
|
|
335
374
|
columns: readColumns(worksheet),
|
|
336
375
|
rows: readRows(worksheet),
|
|
337
376
|
images: [],
|
|
377
|
+
...embeddedObjects === void 0 ? {} : { embeddedObjects },
|
|
338
378
|
printSettings: readPrintSettings(worksheet, sheetIndex, definedNamesBySheet)
|
|
339
379
|
};
|
|
340
380
|
}
|
|
@@ -358,4 +398,4 @@ function readXlsxContent(pkg) {
|
|
|
358
398
|
};
|
|
359
399
|
}
|
|
360
400
|
//#endregion
|
|
361
|
-
export { readXlsxContent };
|
|
401
|
+
export { readXlsxContent, resolveSheetEntries };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_typed_util = require("../util.cjs");
|
|
3
|
+
require("./defined-names.cjs");
|
|
4
|
+
const require_typed_xlsx_content = require("./content.cjs");
|
|
5
|
+
//#region src/typed/xlsx/definitions.ts
|
|
6
|
+
const WORKBOOK_PATH = "xl/workbook.xml";
|
|
7
|
+
const TABLE_REL_SUFFIX = "/table";
|
|
8
|
+
function readNamedRanges(pkg, out) {
|
|
9
|
+
const workbook = require_typed_util.rootElement(pkg.parts[WORKBOOK_PATH]);
|
|
10
|
+
const container = workbook === void 0 ? void 0 : require_typed_util.childrenWithTag(workbook, "definedNames")[0];
|
|
11
|
+
if (container === void 0) return;
|
|
12
|
+
for (const definedName of require_typed_util.childrenWithTag(container, "definedName")) {
|
|
13
|
+
const name = require_typed_util.attr(definedName, "name");
|
|
14
|
+
if (name === void 0 || name === "_xlnm.Print_Area" || name === "_xlnm.Print_Titles") continue;
|
|
15
|
+
const localSheetIdRaw = require_typed_util.attr(definedName, "localSheetId");
|
|
16
|
+
const localSheetId = localSheetIdRaw === void 0 ? void 0 : Number.parseInt(localSheetIdRaw, 10);
|
|
17
|
+
out[`namedRange:${name}`] = {
|
|
18
|
+
kind: "namedRange",
|
|
19
|
+
name,
|
|
20
|
+
refersTo: require_typed_util.textContent(definedName),
|
|
21
|
+
...Number.isInteger(localSheetId) ? { localSheetId } : {}
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
function readTableEntries(pkg, out) {
|
|
26
|
+
for (const entry of require_typed_xlsx_content.resolveSheetEntries(pkg)) for (const rel of require_typed_util.resolveRelationships(pkg, entry.path).values()) {
|
|
27
|
+
if (!rel.type.endsWith(TABLE_REL_SUFFIX)) continue;
|
|
28
|
+
const table = require_typed_util.rootElement(pkg.parts[rel.target]);
|
|
29
|
+
const name = table === void 0 ? void 0 : require_typed_util.attr(table, "name");
|
|
30
|
+
const ref = table === void 0 ? void 0 : require_typed_util.attr(table, "ref");
|
|
31
|
+
if (table === void 0 || name === void 0 || ref === void 0) continue;
|
|
32
|
+
const columns = [];
|
|
33
|
+
const tableColumns = require_typed_util.childrenWithTag(table, "tableColumns")[0];
|
|
34
|
+
for (const column of tableColumns === void 0 ? [] : require_typed_util.childrenWithTag(tableColumns, "tableColumn")) {
|
|
35
|
+
const columnName = require_typed_util.attr(column, "name");
|
|
36
|
+
if (columnName !== void 0) columns.push(columnName);
|
|
37
|
+
}
|
|
38
|
+
out[`table:${name}`] = {
|
|
39
|
+
kind: "table",
|
|
40
|
+
name,
|
|
41
|
+
ref,
|
|
42
|
+
sheet: entry.name,
|
|
43
|
+
columns
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function readWorkbookDefinitions(pkg) {
|
|
48
|
+
const out = {};
|
|
49
|
+
readNamedRanges(pkg, out);
|
|
50
|
+
readTableEntries(pkg, out);
|
|
51
|
+
return Object.keys(out).length === 0 ? void 0 : out;
|
|
52
|
+
}
|
|
53
|
+
//#endregion
|
|
54
|
+
exports.readWorkbookDefinitions = readWorkbookDefinitions;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { r as Package } from "../../package-L24lkba-.cjs";
|
|
2
|
+
import { DefinitionsTable } from "document-schema.js";
|
|
3
|
+
//#region src/typed/xlsx/definitions.d.ts
|
|
4
|
+
declare function readWorkbookDefinitions(pkg: Package): DefinitionsTable | undefined;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { readWorkbookDefinitions };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { r as Package } from "../../package-BUojjTXf.js";
|
|
2
|
+
import { DefinitionsTable } from "document-schema.js";
|
|
3
|
+
//#region src/typed/xlsx/definitions.d.ts
|
|
4
|
+
declare function readWorkbookDefinitions(pkg: Package): DefinitionsTable | undefined;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { readWorkbookDefinitions };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { attr, childrenWithTag, resolveRelationships, rootElement, textContent } from "../util.js";
|
|
2
|
+
import "./defined-names.js";
|
|
3
|
+
import { resolveSheetEntries } from "./content.js";
|
|
4
|
+
//#region src/typed/xlsx/definitions.ts
|
|
5
|
+
const WORKBOOK_PATH = "xl/workbook.xml";
|
|
6
|
+
const TABLE_REL_SUFFIX = "/table";
|
|
7
|
+
function readNamedRanges(pkg, out) {
|
|
8
|
+
const workbook = rootElement(pkg.parts[WORKBOOK_PATH]);
|
|
9
|
+
const container = workbook === void 0 ? void 0 : childrenWithTag(workbook, "definedNames")[0];
|
|
10
|
+
if (container === void 0) return;
|
|
11
|
+
for (const definedName of childrenWithTag(container, "definedName")) {
|
|
12
|
+
const name = attr(definedName, "name");
|
|
13
|
+
if (name === void 0 || name === "_xlnm.Print_Area" || name === "_xlnm.Print_Titles") continue;
|
|
14
|
+
const localSheetIdRaw = attr(definedName, "localSheetId");
|
|
15
|
+
const localSheetId = localSheetIdRaw === void 0 ? void 0 : Number.parseInt(localSheetIdRaw, 10);
|
|
16
|
+
out[`namedRange:${name}`] = {
|
|
17
|
+
kind: "namedRange",
|
|
18
|
+
name,
|
|
19
|
+
refersTo: textContent(definedName),
|
|
20
|
+
...Number.isInteger(localSheetId) ? { localSheetId } : {}
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
function readTableEntries(pkg, out) {
|
|
25
|
+
for (const entry of resolveSheetEntries(pkg)) for (const rel of resolveRelationships(pkg, entry.path).values()) {
|
|
26
|
+
if (!rel.type.endsWith(TABLE_REL_SUFFIX)) continue;
|
|
27
|
+
const table = rootElement(pkg.parts[rel.target]);
|
|
28
|
+
const name = table === void 0 ? void 0 : attr(table, "name");
|
|
29
|
+
const ref = table === void 0 ? void 0 : attr(table, "ref");
|
|
30
|
+
if (table === void 0 || name === void 0 || ref === void 0) continue;
|
|
31
|
+
const columns = [];
|
|
32
|
+
const tableColumns = childrenWithTag(table, "tableColumns")[0];
|
|
33
|
+
for (const column of tableColumns === void 0 ? [] : childrenWithTag(tableColumns, "tableColumn")) {
|
|
34
|
+
const columnName = attr(column, "name");
|
|
35
|
+
if (columnName !== void 0) columns.push(columnName);
|
|
36
|
+
}
|
|
37
|
+
out[`table:${name}`] = {
|
|
38
|
+
kind: "table",
|
|
39
|
+
name,
|
|
40
|
+
ref,
|
|
41
|
+
sheet: entry.name,
|
|
42
|
+
columns
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function readWorkbookDefinitions(pkg) {
|
|
47
|
+
const out = {};
|
|
48
|
+
readNamedRanges(pkg, out);
|
|
49
|
+
readTableEntries(pkg, out);
|
|
50
|
+
return Object.keys(out).length === 0 ? void 0 : out;
|
|
51
|
+
}
|
|
52
|
+
//#endregion
|
|
53
|
+
export { readWorkbookDefinitions };
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_typed_util = require("../util.cjs");
|
|
3
|
+
const require_typed_shared_metadata = require("../shared/metadata.cjs");
|
|
4
|
+
const require_typed_shared_units = require("../shared/units.cjs");
|
|
5
|
+
const require_typed_pptx_chart = require("../pptx/chart.cjs");
|
|
6
|
+
const require_typed_xlsx_print_settings = require("./print-settings.cjs");
|
|
7
|
+
const require_typed_xlsx_units = require("./units.cjs");
|
|
8
|
+
//#region src/typed/xlsx/drawings.ts
|
|
9
|
+
const CHART_GRAPHIC_URI = "http://schemas.openxmlformats.org/drawingml/2006/chart";
|
|
10
|
+
const DRAWING_REL_SUFFIX = "/drawing";
|
|
11
|
+
var SheetGridGeometry = class {
|
|
12
|
+
columns = [];
|
|
13
|
+
rowHeights = /* @__PURE__ */ new Map();
|
|
14
|
+
defaultRowHeightPt;
|
|
15
|
+
constructor(worksheet) {
|
|
16
|
+
const cols = require_typed_util.childrenWithTag(worksheet, "cols")[0];
|
|
17
|
+
if (cols !== void 0) for (const col of require_typed_util.childrenWithTag(cols, "col")) {
|
|
18
|
+
const min = Number.parseInt(require_typed_util.attr(col, "min") ?? "", 10);
|
|
19
|
+
const max = Number.parseInt(require_typed_util.attr(col, "max") ?? "", 10);
|
|
20
|
+
const widthRaw = require_typed_util.attr(col, "width");
|
|
21
|
+
const widthPt = widthRaw === void 0 ? void 0 : require_typed_xlsx_units.columnWidthCharsToPt(Number(widthRaw));
|
|
22
|
+
if (Number.isInteger(min) && Number.isInteger(max) && min >= 1 && max >= min) this.columns.push({
|
|
23
|
+
min: min - 1,
|
|
24
|
+
max: max - 1,
|
|
25
|
+
widthPt: Number.isFinite(widthPt) ? widthPt : void 0
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
const sheetFormatPr = require_typed_util.childrenWithTag(worksheet, "sheetFormatPr")[0];
|
|
29
|
+
const defaultRaw = sheetFormatPr === void 0 ? void 0 : require_typed_util.attr(sheetFormatPr, "defaultRowHeight");
|
|
30
|
+
const parsed = defaultRaw === void 0 ? NaN : Number(defaultRaw);
|
|
31
|
+
this.defaultRowHeightPt = Number.isFinite(parsed) ? parsed : 15;
|
|
32
|
+
const sheetData = require_typed_util.childrenWithTag(worksheet, "sheetData")[0];
|
|
33
|
+
if (sheetData !== void 0) for (const row of require_typed_util.childrenWithTag(sheetData, "row")) {
|
|
34
|
+
const r = Number.parseInt(require_typed_util.attr(row, "r") ?? "", 10);
|
|
35
|
+
const htRaw = require_typed_util.attr(row, "ht");
|
|
36
|
+
const ht = htRaw === void 0 ? NaN : Number(htRaw);
|
|
37
|
+
if (Number.isInteger(r) && r >= 1 && Number.isFinite(ht)) this.rowHeights.set(r - 1, ht);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
columnWidthPt(index) {
|
|
41
|
+
return this.columns.find((column) => index >= column.min && index <= column.max && column.widthPt !== void 0)?.widthPt ?? require_typed_xlsx_units.columnWidthCharsToPt(8.43);
|
|
42
|
+
}
|
|
43
|
+
rowHeightPt(index) {
|
|
44
|
+
return this.rowHeights.get(index) ?? this.defaultRowHeightPt;
|
|
45
|
+
}
|
|
46
|
+
xPt(column, colOffEmu) {
|
|
47
|
+
let xPt = require_typed_shared_units.emuToPt(colOffEmu);
|
|
48
|
+
for (let index = 0; index < column; index++) xPt += this.columnWidthPt(index);
|
|
49
|
+
return xPt;
|
|
50
|
+
}
|
|
51
|
+
yPt(row, rowOffEmu) {
|
|
52
|
+
let yPt = require_typed_shared_units.emuToPt(rowOffEmu);
|
|
53
|
+
for (let index = 0; index < row; index++) yPt += this.rowHeightPt(index);
|
|
54
|
+
return yPt;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
function readAnchorChild(marker, tag) {
|
|
58
|
+
const child = require_typed_util.childrenWithTag(marker, tag)[0];
|
|
59
|
+
const text = child === void 0 ? void 0 : child.children.map((node) => node.type === "text" ? node.value : "").join("");
|
|
60
|
+
const parsed = text === void 0 || text === "" ? NaN : Number(text);
|
|
61
|
+
return Number.isFinite(parsed) ? parsed : 0;
|
|
62
|
+
}
|
|
63
|
+
function readAnchorMarker(parent, tag) {
|
|
64
|
+
const marker = require_typed_util.childrenWithTag(parent, tag)[0];
|
|
65
|
+
if (marker === void 0) return;
|
|
66
|
+
return {
|
|
67
|
+
column: readAnchorChild(marker, "xdr:col"),
|
|
68
|
+
colOffEmu: readAnchorChild(marker, "xdr:colOff"),
|
|
69
|
+
row: readAnchorChild(marker, "xdr:row"),
|
|
70
|
+
rowOffEmu: readAnchorChild(marker, "xdr:rowOff")
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
function emptyWorksheet() {
|
|
74
|
+
return {
|
|
75
|
+
type: "element",
|
|
76
|
+
tag: "worksheet",
|
|
77
|
+
attributes: [],
|
|
78
|
+
children: []
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
function chartCells(chartRoot, frame) {
|
|
82
|
+
const table = require_typed_pptx_chart.readChartTable(chartRoot, frame);
|
|
83
|
+
if (table === void 0) return [];
|
|
84
|
+
const cells = [];
|
|
85
|
+
table.rows.forEach((row, rowIndex) => {
|
|
86
|
+
row.cells.forEach((cell, columnIndex) => {
|
|
87
|
+
const text = cell.blocks.map((block) => block.kind === "paragraph" ? block.runs.map((run) => run.text).join("") : "").join("");
|
|
88
|
+
if (text !== "") cells.push({
|
|
89
|
+
row: rowIndex,
|
|
90
|
+
column: columnIndex,
|
|
91
|
+
value: {
|
|
92
|
+
kind: "string",
|
|
93
|
+
value: text
|
|
94
|
+
},
|
|
95
|
+
displayText: text
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
return cells;
|
|
100
|
+
}
|
|
101
|
+
function readSheetEmbeddedObjects(pkg, worksheetPath, worksheet) {
|
|
102
|
+
let drawingPath;
|
|
103
|
+
for (const rel of require_typed_util.resolveRelationships(pkg, worksheetPath).values()) if (rel.type.endsWith(DRAWING_REL_SUFFIX)) {
|
|
104
|
+
drawingPath = rel.target;
|
|
105
|
+
break;
|
|
106
|
+
}
|
|
107
|
+
const drawingRoot = drawingPath === void 0 ? void 0 : require_typed_util.rootElement(pkg.parts[drawingPath]);
|
|
108
|
+
if (drawingRoot === void 0) return;
|
|
109
|
+
const drawingRels = drawingPath === void 0 ? void 0 : require_typed_util.resolveRelationships(pkg, drawingPath);
|
|
110
|
+
const geometry = new SheetGridGeometry(worksheet);
|
|
111
|
+
const objects = [];
|
|
112
|
+
for (const anchor of require_typed_util.childrenWithTag(drawingRoot, "xdr:twoCellAnchor")) {
|
|
113
|
+
const from = readAnchorMarker(anchor, "xdr:from");
|
|
114
|
+
const to = readAnchorMarker(anchor, "xdr:to");
|
|
115
|
+
if (from === void 0 || to === void 0) continue;
|
|
116
|
+
for (const frame of require_typed_util.elementsWithTag([anchor], "xdr:graphicFrame")) {
|
|
117
|
+
const chart = readChartFrame(pkg, frame, drawingRels);
|
|
118
|
+
if (chart === void 0) continue;
|
|
119
|
+
const xPt = geometry.xPt(from.column, from.colOffEmu);
|
|
120
|
+
const yPt = geometry.yPt(from.row, from.rowOffEmu);
|
|
121
|
+
const frameBox = {
|
|
122
|
+
xPt,
|
|
123
|
+
yPt,
|
|
124
|
+
widthPt: geometry.xPt(to.column, to.colOffEmu) - xPt,
|
|
125
|
+
heightPt: geometry.yPt(to.row, to.rowOffEmu) - yPt
|
|
126
|
+
};
|
|
127
|
+
objects.push({
|
|
128
|
+
objectKind: "chart",
|
|
129
|
+
document: chartDocument(pkg, chart.root, frameBox, chart.name),
|
|
130
|
+
frame: frameBox,
|
|
131
|
+
anchorRow: from.row,
|
|
132
|
+
anchorColumn: from.column,
|
|
133
|
+
offsetXPt: require_typed_shared_units.emuToPt(from.colOffEmu),
|
|
134
|
+
offsetYPt: require_typed_shared_units.emuToPt(from.rowOffEmu)
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
return objects.length === 0 ? void 0 : objects;
|
|
139
|
+
}
|
|
140
|
+
function readChartFrame(pkg, frame, drawingRels) {
|
|
141
|
+
const graphic = require_typed_util.childrenWithTag(frame, "a:graphic")[0];
|
|
142
|
+
const graphicData = graphic === void 0 ? void 0 : require_typed_util.childrenWithTag(graphic, "a:graphicData")[0];
|
|
143
|
+
if (graphicData === void 0 || require_typed_util.attr(graphicData, "uri") !== CHART_GRAPHIC_URI) return;
|
|
144
|
+
const chartRef = require_typed_util.childrenWithTag(graphicData, "c:chart")[0];
|
|
145
|
+
const rId = chartRef === void 0 ? void 0 : require_typed_util.attr(chartRef, "r:id");
|
|
146
|
+
const target = rId === void 0 ? void 0 : drawingRels?.get(rId)?.target;
|
|
147
|
+
const chartRoot = target === void 0 ? void 0 : require_typed_util.rootElement(pkg.parts[target]);
|
|
148
|
+
if (chartRoot === void 0) return;
|
|
149
|
+
const cNvPr = require_typed_util.elementsWithTag([frame], "xdr:cNvPr")[0];
|
|
150
|
+
return {
|
|
151
|
+
root: chartRoot,
|
|
152
|
+
name: cNvPr === void 0 ? "Chart" : require_typed_util.attr(cNvPr, "name") ?? "Chart"
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
function chartDocument(pkg, chartRoot, frame, name) {
|
|
156
|
+
return {
|
|
157
|
+
kind: "spreadsheet",
|
|
158
|
+
metadata: require_typed_shared_metadata.readCoreProperties(pkg),
|
|
159
|
+
sheets: [{
|
|
160
|
+
name,
|
|
161
|
+
cells: chartCells(chartRoot, frame),
|
|
162
|
+
columns: [],
|
|
163
|
+
rows: [],
|
|
164
|
+
images: [],
|
|
165
|
+
printSettings: require_typed_xlsx_print_settings.readPrintSettings(emptyWorksheet(), 0, /* @__PURE__ */ new Map())
|
|
166
|
+
}]
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
//#endregion
|
|
170
|
+
exports.readSheetEmbeddedObjects = readSheetEmbeddedObjects;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { l as XmlElement } from "../../node-CkBWRjNR.cjs";
|
|
2
|
+
import { r as Package } from "../../package-L24lkba-.cjs";
|
|
3
|
+
import { ContentEmbeddedObject } from "document-schema.js";
|
|
4
|
+
//#region src/typed/xlsx/drawings.d.ts
|
|
5
|
+
declare function readSheetEmbeddedObjects(pkg: Package, worksheetPath: string, worksheet: XmlElement): ContentEmbeddedObject[] | undefined;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { readSheetEmbeddedObjects };
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { l as XmlElement } from "../../node-CkBWRjNR.js";
|
|
2
|
+
import { r as Package } from "../../package-BUojjTXf.js";
|
|
3
|
+
import { ContentEmbeddedObject } from "document-schema.js";
|
|
4
|
+
//#region src/typed/xlsx/drawings.d.ts
|
|
5
|
+
declare function readSheetEmbeddedObjects(pkg: Package, worksheetPath: string, worksheet: XmlElement): ContentEmbeddedObject[] | undefined;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { readSheetEmbeddedObjects };
|