@extend-ai/react-xlsx 0.14.0 → 0.14.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 +27 -0
- package/dist/index.cjs +257 -201
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +41 -1
- package/dist/index.d.ts +41 -1
- package/dist/index.js +257 -201
- package/dist/index.js.map +1 -1
- package/dist/xlsx-worker.js +60 -1
- package/dist/xlsx-worker.js.map +1 -1
- package/package.json +1 -1
package/dist/xlsx-worker.js
CHANGED
|
@@ -4697,6 +4697,60 @@ function parseA1RangeReference2(reference) {
|
|
|
4697
4697
|
}
|
|
4698
4698
|
return normalizeRange({ end, start });
|
|
4699
4699
|
}
|
|
4700
|
+
function resolveWorkbookReference(targetWorkbook, defaultWorkbookSheetIndex, rawReference, resolvingNamedRange = false) {
|
|
4701
|
+
const reference = rawReference.trim().replace(/^=/, "");
|
|
4702
|
+
if (!reference) {
|
|
4703
|
+
return null;
|
|
4704
|
+
}
|
|
4705
|
+
let workbookSheetIndex = defaultWorkbookSheetIndex;
|
|
4706
|
+
let rangeReference = reference;
|
|
4707
|
+
const bangIndex = reference.lastIndexOf("!");
|
|
4708
|
+
if (bangIndex >= 0) {
|
|
4709
|
+
let sheetName = reference.slice(0, bangIndex).trim();
|
|
4710
|
+
rangeReference = reference.slice(bangIndex + 1).trim();
|
|
4711
|
+
if (sheetName.startsWith("'") && sheetName.endsWith("'")) {
|
|
4712
|
+
sheetName = sheetName.slice(1, -1).replace(/''/g, "'");
|
|
4713
|
+
}
|
|
4714
|
+
const resolvedSheetIndex = targetWorkbook.sheetIndex(sheetName);
|
|
4715
|
+
if (resolvedSheetIndex === void 0) {
|
|
4716
|
+
return null;
|
|
4717
|
+
}
|
|
4718
|
+
workbookSheetIndex = resolvedSheetIndex;
|
|
4719
|
+
} else if (!resolvingNamedRange) {
|
|
4720
|
+
const namedRange = targetWorkbook.getNamedRange(reference);
|
|
4721
|
+
if (namedRange) {
|
|
4722
|
+
return resolveWorkbookReference(targetWorkbook, defaultWorkbookSheetIndex, namedRange, true);
|
|
4723
|
+
}
|
|
4724
|
+
}
|
|
4725
|
+
const range = parseA1RangeReference2(rangeReference.replace(/\$/g, ""));
|
|
4726
|
+
if (!range || workbookSheetIndex < 0 || workbookSheetIndex >= targetWorkbook.sheetCount) {
|
|
4727
|
+
return null;
|
|
4728
|
+
}
|
|
4729
|
+
try {
|
|
4730
|
+
return {
|
|
4731
|
+
range,
|
|
4732
|
+
worksheet: targetWorkbook.getSheet(workbookSheetIndex)
|
|
4733
|
+
};
|
|
4734
|
+
} catch {
|
|
4735
|
+
return null;
|
|
4736
|
+
}
|
|
4737
|
+
}
|
|
4738
|
+
function resolveFormControlItems(targetWorkbook, workbookSheetIndex, control) {
|
|
4739
|
+
if (control.kind !== "dropdown" && control.kind !== "listbox" || !control.inputRange) {
|
|
4740
|
+
return [];
|
|
4741
|
+
}
|
|
4742
|
+
const source = resolveWorkbookReference(targetWorkbook, workbookSheetIndex, control.inputRange);
|
|
4743
|
+
if (!source) {
|
|
4744
|
+
return [];
|
|
4745
|
+
}
|
|
4746
|
+
const items = [];
|
|
4747
|
+
for (let row = source.range.start.row; row <= source.range.end.row; row += 1) {
|
|
4748
|
+
for (let col = source.range.start.col; col <= source.range.end.col; col += 1) {
|
|
4749
|
+
items.push(source.worksheet.getFormattedValueAt(row, col));
|
|
4750
|
+
}
|
|
4751
|
+
}
|
|
4752
|
+
return items;
|
|
4753
|
+
}
|
|
4700
4754
|
function parseWorksheetFreezePanes(worksheet) {
|
|
4701
4755
|
const rawFreezePanes = worksheet.freezePanes;
|
|
4702
4756
|
const row = typeof rawFreezePanes?.row === "number" && rawFreezePanes.row >= 0 ? rawFreezePanes.row : null;
|
|
@@ -5017,7 +5071,12 @@ async function loadWorkbook(buffer, skipXmlParsing = false, showHiddenSheets = f
|
|
|
5017
5071
|
activeWorkbook = result.workbook;
|
|
5018
5072
|
}
|
|
5019
5073
|
const nextWorkbook = activeWorkbook;
|
|
5020
|
-
formControlsByWorkbookSheetIndex = collectWorkbookFormControls(nextWorkbook)
|
|
5074
|
+
formControlsByWorkbookSheetIndex = collectWorkbookFormControls(nextWorkbook).map(
|
|
5075
|
+
(controls, workbookSheetIndex) => controls.map((control) => ({
|
|
5076
|
+
...control,
|
|
5077
|
+
items: resolveFormControlItems(nextWorkbook, workbookSheetIndex, control)
|
|
5078
|
+
}))
|
|
5079
|
+
);
|
|
5021
5080
|
const shouldUseFastStructureParse = bytes.byteLength >= FAST_STRUCTURE_PARSE_THRESHOLD_BYTES && totalFormulas <= FORMULA_COUNT_THRESHOLD;
|
|
5022
5081
|
const structureAssets = effectiveSkipXmlParsing || shouldUseFastStructureParse || !canParseXmlInWorker() ? null : parseWorkbookStructureAssets(bytes, {
|
|
5023
5082
|
includeCachedFormulaValues: true
|