@ricsam/excel-to-formula-engine 0.2.0 → 0.2.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/dist/index.cjs +12 -1
- package/dist/index.cjs.map +3 -3
- package/dist/index.mjs +12 -1
- package/dist/index.mjs.map +3 -3
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1862,11 +1862,22 @@ async function spreadsheetToFormulaEngine(source, options) {
|
|
|
1862
1862
|
}
|
|
1863
1863
|
async function spreadsheetToFormulaEngineDetailed(source, options) {
|
|
1864
1864
|
const bytes = await toBytes2(source);
|
|
1865
|
+
const fileName = options?.fileName ?? (typeof File !== "undefined" && source instanceof File ? source.name : undefined);
|
|
1865
1866
|
if (looksLikeZip(bytes)) {
|
|
1866
1867
|
return convertWorkbook(bytes, withFileName(source, options));
|
|
1867
1868
|
}
|
|
1869
|
+
if (fileName && /\.(xlsx|xlsm)$/i.test(fileName)) {
|
|
1870
|
+
throw new Error(`${fileName} is named as an Excel workbook but is not one — the file is ` + `corrupt, or it is a legacy .xls saved under the wrong extension.`);
|
|
1871
|
+
}
|
|
1872
|
+
assertLooksLikeText(bytes, fileName);
|
|
1868
1873
|
return csvToFormulaEngineDetailed(bytes, withCsvFileName(source, options));
|
|
1869
1874
|
}
|
|
1875
|
+
function assertLooksLikeText(bytes, fileName) {
|
|
1876
|
+
const sample = bytes.subarray(0, 8192);
|
|
1877
|
+
if (sample.indexOf(0) !== -1) {
|
|
1878
|
+
throw new Error(`${fileName ?? "The file"} is not a spreadsheet: it contains binary data ` + `rather than delimited text.`);
|
|
1879
|
+
}
|
|
1880
|
+
}
|
|
1870
1881
|
function looksLikeZip(bytes) {
|
|
1871
1882
|
return bytes.length >= 4 && bytes[0] === 80 && bytes[1] === 75 && bytes[2] === 3 && bytes[3] === 4;
|
|
1872
1883
|
}
|
|
@@ -1889,4 +1900,4 @@ function withCsvFileName(source, options) {
|
|
|
1889
1900
|
};
|
|
1890
1901
|
}
|
|
1891
1902
|
|
|
1892
|
-
//# debugId=
|
|
1903
|
+
//# debugId=5AA8F8A121F02B2D64756E2164756E21
|
package/dist/index.cjs.map
CHANGED
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
"/**\n * The conversion pipeline: an .xlsx package in, `WorkbookData` out.\n */\n\nimport type {\n SerializedCellValue,\n WorkbookDataCellStyle,\n WorkbookDataConditionalStyle,\n WorkbookDataNamedExpression,\n WorkbookDataSheet,\n WorkbookDataTable,\n} from \"@ricsam/formula-engine\";\nimport { readXlsxPackage } from \"./xlsx/package\";\nimport {\n parseSharedStrings,\n parseTables,\n parseWorkbook,\n type RawTable,\n} from \"./xlsx/workbook\";\nimport { parseWorksheet, type RawCell } from \"./xlsx/worksheet\";\nimport { parseStyles, type ExcelFormat } from \"./xlsx/styles\";\nimport { offsetFormulaReferences, translateFormula } from \"./translate/formula\";\nimport { translateConditionalFormat } from \"./translate/conditional-format\";\nimport { excelSerialToIso } from \"./translate/dates\";\nimport {\n parseA1Range,\n rangeReferenceToSpreadsheetRange,\n toA1,\n toSpreadsheetRange,\n type ParsedRange,\n} from \"./a1\";\nimport type {\n ConvertOptions,\n ConvertResult,\n Diagnostic,\n ExcelCellMetadata,\n ExcelSheetMetadata,\n ExcelWorkbookData,\n} from \"./types\";\n\n/**\n * Excel's built-in defined names. They configure print areas and filters rather\n * than naming a value, so importing them as named expressions would be noise.\n */\nconst BUILTIN_DEFINED_NAMES = new Set([\n \"_xlnm.print_area\",\n \"_xlnm.print_titles\",\n \"_xlnm._filterdatabase\",\n \"_xlnm.criteria\",\n \"_xlnm.extract\",\n \"_xlnm.database\",\n \"_xlnm.sheet_title\",\n]);\n\nexport async function convertWorkbook(\n source: Blob | ArrayBuffer | Uint8Array,\n options: ConvertOptions = {}\n): Promise<ConvertResult> {\n const {\n styles: importStyles = true,\n conditionalFormatting: importConditionalFormatting = true,\n tables: importTables = true,\n definedNames: importDefinedNames = true,\n cellMetadata: importCellMetadata = true,\n convertDates = true,\n } = options;\n\n const diagnostics: Diagnostic[] = [];\n const pkg = await readXlsxPackage(source);\n\n const sharedStrings = parseSharedStrings(pkg);\n const { sheets: sheetEntries, definedNames, date1904 } = parseWorkbook(pkg);\n const styleTable = parseStyles(pkg);\n\n const selected = options.sheets\n ? sheetEntries.filter((entry) => options.sheets!.includes(entry.name))\n : sheetEntries;\n\n const sheets: WorkbookDataSheet<ExcelCellMetadata, ExcelSheetMetadata>[] = [];\n const tables: WorkbookDataTable[] = [];\n const cellStyles: WorkbookDataCellStyle[] = [];\n const conditionalStyles: WorkbookDataConditionalStyle[] = [];\n const importedSheetNames = new Set<string>();\n\n for (const entry of selected) {\n const worksheet = parseWorksheet(pkg, entry.partPath, sharedStrings);\n importedSheetNames.add(entry.name);\n\n /*\n Tables are read before the cells are, because a formula's translation\n depends on whether its own cell sits inside one: Excel stores a calculated\n column's reference as `Table[[#This Row],[Col]]` and displays it as\n `[@Col]`, and reproducing that needs to know which table \"this row\" is in.\n */\n const sheetTables = importTables ? parseTables(pkg, entry.partPath) : [];\n const tableRanges = sheetTables\n .map((table) => ({ name: table.displayName, range: parseA1Range(table.ref) }))\n .filter(\n (entryTable): entryTable is { name: string; range: ParsedRange } =>\n entryTable.range !== undefined\n );\n\n /** The table a cell sits inside, or undefined when it sits in none. */\n const tableAt = (colIndex: number, rowIndex: number): string | undefined =>\n tableRanges.find(\n ({ range }) =>\n colIndex >= range.start.colIndex &&\n colIndex <= range.end.colIndex &&\n rowIndex >= range.start.rowIndex &&\n rowIndex <= range.end.rowIndex\n )?.name;\n\n const content = new Map<string, SerializedCellValue>();\n const cellMetadata = new Map<string, ExcelCellMetadata>();\n // Cells sharing one style are collected so each distinct style becomes a\n // single engine rule over many areas rather than one rule per cell.\n const styleGroups = new Map<number, RawCell[]>();\n\n for (const cell of worksheet.cells) {\n const format =\n cell.styleIndex === undefined\n ? undefined\n : styleTable.formats[cell.styleIndex];\n\n const value = cellValue(cell, format, {\n convertDates,\n date1904,\n sheetName: entry.name,\n diagnostics,\n containingTableName: tableAt(cell.colIndex, cell.rowIndex),\n });\n if (value !== undefined) {\n content.set(cell.reference, value);\n }\n\n if (importStyles && cell.styleIndex !== undefined && format) {\n if (Object.keys(format.style).length > 0) {\n const group = styleGroups.get(cell.styleIndex);\n if (group) {\n group.push(cell);\n } else {\n styleGroups.set(cell.styleIndex, [cell]);\n }\n }\n }\n\n if (importCellMetadata) {\n const metadata: ExcelCellMetadata = {};\n if (format?.numberFormat) {\n metadata.numberFormat = format.numberFormat;\n }\n const hyperlink = worksheet.hyperlinks[cell.reference];\n if (hyperlink) {\n metadata.hyperlink = hyperlink;\n }\n if (Object.keys(metadata).length > 0) {\n cellMetadata.set(cell.reference, metadata);\n }\n }\n }\n\n if (importStyles) {\n for (const [styleIndex, cells] of styleGroups) {\n const format = styleTable.formats[styleIndex];\n if (!format) {\n continue;\n }\n cellStyles.push({\n areas: coalesceCellsIntoAreas(entry.name, cells),\n style: format.style,\n });\n }\n }\n\n if (importConditionalFormatting) {\n // Excel evaluates the lowest priority number last, so it wins. The engine\n // applies later rules on top, so rules are emitted in reverse priority.\n const ordered = [...worksheet.conditionalFormats].sort(\n (a, b) => b.priority - a.priority\n );\n for (const rule of ordered) {\n const { result, diagnostics: ruleDiagnostics } =\n translateConditionalFormat(rule, {\n sheetName: entry.name,\n differentialFormats: styleTable.differentialFormats,\n });\n diagnostics.push(...ruleDiagnostics);\n if (result) {\n conditionalStyles.push(result);\n }\n }\n }\n\n if (importTables) {\n for (const table of sheetTables) {\n const converted = convertTable(table, entry.name, diagnostics);\n if (converted) {\n tables.push(converted);\n }\n }\n }\n\n const sheetMetadata: ExcelSheetMetadata = {};\n if (Object.keys(worksheet.columnWidths).length > 0) {\n sheetMetadata.columnWidths = worksheet.columnWidths;\n }\n if (Object.keys(worksheet.rowHeights).length > 0) {\n sheetMetadata.rowHeights = worksheet.rowHeights;\n }\n if (worksheet.merges.length > 0) {\n sheetMetadata.merges = worksheet.merges;\n }\n if (worksheet.frozen) {\n sheetMetadata.frozen = worksheet.frozen;\n }\n if (entry.state !== \"visible\") {\n sheetMetadata.visible = false;\n }\n\n sheets.push({\n name: entry.name,\n content,\n cellMetadata: cellMetadata.size > 0 ? cellMetadata : undefined,\n sheetMetadata:\n Object.keys(sheetMetadata).length > 0 ? sheetMetadata : undefined,\n });\n }\n\n const namedExpressions = importDefinedNames\n ? convertDefinedNames(\n definedNames,\n sheetEntries.map((entry) => entry.name),\n importedSheetNames,\n diagnostics\n )\n : [];\n\n const data: ExcelWorkbookData = {\n sheets,\n tables: tables.length > 0 ? tables : undefined,\n namedExpressions:\n namedExpressions.length > 0 ? namedExpressions : undefined,\n cellStyles: cellStyles.length > 0 ? cellStyles : undefined,\n conditionalStyles:\n conditionalStyles.length > 0 ? conditionalStyles : undefined,\n workbookMetadata: {\n fileName: options.fileName,\n sheetOrder: sheetEntries.map((entry) => entry.name),\n diagnostics: diagnostics.length > 0 ? diagnostics : undefined,\n },\n };\n\n return { data, diagnostics };\n}\n\ninterface CellValueContext {\n convertDates: boolean;\n date1904: boolean;\n sheetName: string;\n diagnostics: Diagnostic[];\n /** The table this cell sits inside, when it sits inside one. */\n containingTableName?: string;\n}\n\n/**\n * The engine stores a cell as a formula string, a literal, or nothing. A cell\n * with a formula keeps the formula: Excel's cached result is discarded, because\n * the engine recalculates.\n */\nfunction cellValue(\n cell: RawCell,\n format: ExcelFormat | undefined,\n context: CellValueContext\n): SerializedCellValue {\n if (cell.formula !== undefined) {\n const body = cell.formulaOffset\n ? offsetFormulaReferences(\n cell.formula,\n cell.formulaOffset.cols,\n cell.formulaOffset.rows\n )\n : cell.formula;\n\n const translated = translateFormula(body, {\n sheetName: context.sheetName,\n cellReference: cell.reference,\n containingTableName: context.containingTableName,\n });\n context.diagnostics.push(...translated.diagnostics);\n return translated.formula;\n }\n\n switch (cell.kind) {\n case \"number\": {\n const value = cell.value as number;\n if (context.convertDates && format?.isDateFormat) {\n return excelSerialToIso(value, context.date1904);\n }\n return value;\n }\n case \"boolean\":\n return cell.value as boolean;\n case \"string\":\n return cell.value as string;\n case \"date\":\n return cell.value as string;\n case \"error\":\n // Excel's own error text is valid engine cell content.\n return cell.value as string;\n case \"empty\":\n return undefined;\n }\n}\n\nfunction convertTable(\n table: RawTable,\n sheetName: string,\n diagnostics: Diagnostic[]\n): WorkbookDataTable | undefined {\n const parsed = parseA1Range(table.ref);\n if (!parsed) {\n diagnostics.push({\n severity: \"warning\",\n code: \"skipped-table\",\n message: `Table \"${table.displayName}\" has an unreadable range (${table.ref}).`,\n sheetName,\n });\n return undefined;\n }\n\n if (table.headerRowCount === 0) {\n // The engine requires a header row, since structured references name it.\n diagnostics.push({\n severity: \"warning\",\n code: \"skipped-table\",\n message:\n `Table \"${table.displayName}\" has no header row, which the engine ` +\n `requires for structured references, so it was skipped.`,\n sheetName,\n });\n return undefined;\n }\n\n const numCols = parsed.end.colIndex - parsed.start.colIndex + 1;\n const dataRows =\n parsed.end.rowIndex -\n parsed.start.rowIndex +\n 1 -\n table.headerRowCount -\n table.totalsRowCount;\n\n if (numCols <= 0 || dataRows < 0) {\n diagnostics.push({\n severity: \"warning\",\n code: \"skipped-table\",\n message: `Table \"${table.displayName}\" has an empty range (${table.ref}).`,\n sheetName,\n });\n return undefined;\n }\n\n return {\n name: table.displayName,\n sheetName,\n start: toA1(parsed.start),\n numRows: { type: \"number\", value: dataRows },\n numCols,\n };\n}\n\nfunction convertDefinedNames(\n definedNames: { name: string; formula: string; localSheetId?: number; hidden: boolean }[],\n sheetNames: string[],\n importedSheetNames: Set<string>,\n diagnostics: Diagnostic[]\n): WorkbookDataNamedExpression[] {\n const result: WorkbookDataNamedExpression[] = [];\n\n for (const definedName of definedNames) {\n if (BUILTIN_DEFINED_NAMES.has(definedName.name.toLowerCase())) {\n continue;\n }\n if (definedName.hidden || definedName.formula.trim() === \"\") {\n continue;\n }\n if (definedName.formula.includes(\"#REF!\")) {\n diagnostics.push({\n severity: \"warning\",\n code: \"skipped-defined-name\",\n message: `Defined name \"${definedName.name}\" refers to a deleted range.`,\n source: definedName.formula,\n });\n continue;\n }\n\n const sheetName =\n definedName.localSheetId === undefined\n ? undefined\n : sheetNames[definedName.localSheetId];\n\n if (sheetName !== undefined && !importedSheetNames.has(sheetName)) {\n continue;\n }\n\n // Named expressions are stored as a formula body with no leading \"=\".\n const translated = translateFormula(definedName.formula);\n diagnostics.push(...translated.diagnostics);\n\n result.push({\n name: definedName.name,\n expression: translated.formula.slice(1),\n sheetName,\n });\n }\n\n return result;\n}\n\n/**\n * Turn a set of cells sharing one style into as few rectangular areas as\n * possible.\n *\n * Excel's style model is per-cell, but the engine's is per-area, so emitting\n * one area per cell would produce enormous rule lists on real workbooks. Cells\n * are merged into horizontal runs, then adjacent identical runs are merged\n * vertically into blocks.\n */\nexport function coalesceCellsIntoAreas(\n sheetName: string,\n cells: { colIndex: number; rowIndex: number }[]\n): { sheetName: string; range: ReturnType<typeof toSpreadsheetRange> }[] {\n const byRow = new Map<number, number[]>();\n for (const cell of cells) {\n const row = byRow.get(cell.rowIndex);\n if (row) {\n row.push(cell.colIndex);\n } else {\n byRow.set(cell.rowIndex, [cell.colIndex]);\n }\n }\n\n interface Run {\n rowIndex: number;\n startCol: number;\n endCol: number;\n }\n\n const runs: Run[] = [];\n for (const [rowIndex, columns] of byRow) {\n columns.sort((a, b) => a - b);\n let startCol = columns[0]!;\n let previous = startCol;\n for (let i = 1; i < columns.length; i++) {\n const current = columns[i]!;\n if (current === previous + 1) {\n previous = current;\n continue;\n }\n runs.push({ rowIndex, startCol, endCol: previous });\n startCol = current;\n previous = current;\n }\n runs.push({ rowIndex, startCol, endCol: previous });\n }\n\n // Merge runs with identical column spans in consecutive rows into blocks.\n runs.sort((a, b) =>\n a.startCol - b.startCol || a.endCol - b.endCol || a.rowIndex - b.rowIndex\n );\n\n const areas: { sheetName: string; range: ReturnType<typeof toSpreadsheetRange> }[] = [];\n let index = 0;\n while (index < runs.length) {\n const first = runs[index]!;\n let lastRow = first.rowIndex;\n let next = index + 1;\n while (\n next < runs.length &&\n runs[next]!.startCol === first.startCol &&\n runs[next]!.endCol === first.endCol &&\n runs[next]!.rowIndex === lastRow + 1\n ) {\n lastRow = runs[next]!.rowIndex;\n next++;\n }\n\n areas.push({\n sheetName,\n range: toSpreadsheetRange({\n start: { colIndex: first.startCol, rowIndex: first.rowIndex },\n end: { colIndex: first.endCol, rowIndex: lastRow },\n }),\n });\n index = next;\n }\n\n return areas;\n}\n\nexport { rangeReferenceToSpreadsheetRange };\n",
|
|
14
14
|
"/**\n * Delimited-text parsing: CSV, TSV, and the semicolon-separated files a\n * comma-decimal locale produces.\n *\n * Follows RFC 4180 for quoting — a field wrapped in double quotes may contain\n * the delimiter, line breaks, and doubled quotes standing for one — because that\n * is what every spreadsheet writes and the naive `split(\",\")` gets wrong on the\n * first address field it meets.\n */\n\n/** Delimiters worth guessing between. */\nexport const CANDIDATE_DELIMITERS = [\",\", \"\\t\", \";\", \"|\"] as const;\n\nexport type Delimiter = string;\n\n/**\n * Split delimited text into rows of raw string fields.\n *\n * Values keep the exact text they had: trimming and type conversion are separate\n * decisions made later, where the caller's options are in scope.\n */\nexport function parseDelimitedText(text: string, delimiter: Delimiter): string[][] {\n const rows: string[][] = [];\n let row: string[] = [];\n let field = \"\";\n let inQuotes = false;\n let fieldWasQuoted = false;\n // Distinguishes \"no fields yet\" from \"one empty field\", so a trailing newline\n // does not produce a spurious final row.\n let rowHasContent = false;\n\n const endField = () => {\n row.push(field);\n field = \"\";\n fieldWasQuoted = false;\n rowHasContent = true;\n };\n\n const endRow = () => {\n endField();\n rows.push(row);\n row = [];\n rowHasContent = false;\n };\n\n for (let i = 0; i < text.length; i++) {\n const char = text[i]!;\n\n if (inQuotes) {\n if (char === '\"') {\n if (text[i + 1] === '\"') {\n // A doubled quote inside a quoted field is one literal quote.\n field += '\"';\n i++;\n } else {\n inQuotes = false;\n }\n } else {\n field += char;\n }\n continue;\n }\n\n if (char === '\"' && field.length === 0) {\n inQuotes = true;\n fieldWasQuoted = true;\n continue;\n }\n\n if (char === delimiter) {\n endField();\n continue;\n }\n\n if (char === \"\\r\") {\n // Treat CRLF and a bare CR as one line ending.\n if (text[i + 1] === \"\\n\") i++;\n endRow();\n continue;\n }\n\n if (char === \"\\n\") {\n endRow();\n continue;\n }\n\n field += char;\n }\n\n // A file not ending in a newline still has a last row; one that does should\n // not gain an empty one. A lone quoted empty field counts as content.\n if (field.length > 0 || fieldWasQuoted || rowHasContent) {\n endRow();\n }\n\n return rows;\n}\n\n/**\n * Guess the delimiter from the text itself.\n *\n * Scores each candidate on how *consistently* it splits the first several lines\n * rather than on how often it appears: prose full of commas scores badly because\n * its lines disagree about the field count, while a two-column TSV scores\n * perfectly on one tab per line. Quoted sections are skipped, so a comma inside\n * `\"Smith, J\"` never votes for comma.\n *\n * Falls back to comma, which is both the commonest and the least surprising\n * thing to be wrong about.\n */\nexport function detectDelimiter(\n text: string,\n candidates: readonly string[] = CANDIDATE_DELIMITERS\n): Delimiter {\n const lines = takeSampleLines(text, 20);\n if (lines.length === 0) return \",\";\n\n let best: { delimiter: string; score: number } | undefined;\n\n for (const delimiter of candidates) {\n const counts = lines.map((line) => countOutsideQuotes(line, delimiter));\n const present = counts.filter((count) => count > 0);\n // A delimiter that never appears is not a candidate.\n if (present.length === 0) continue;\n\n const first = counts[0]!;\n // Consistency across lines is the signal; ties break toward more fields,\n // which is what distinguishes the real delimiter from one that happens to\n // appear once per line inside the data.\n const consistent = counts.filter((count) => count === first).length;\n const score = consistent / counts.length + Math.min(first, 50) / 1000;\n\n if (!best || score > best.score) {\n best = { delimiter, score };\n }\n }\n\n return best?.delimiter ?? \",\";\n}\n\n/**\n * The first `limit` non-empty lines, ignoring line breaks inside quoted fields.\n */\nfunction takeSampleLines(text: string, limit: number): string[] {\n const lines: string[] = [];\n let current = \"\";\n let inQuotes = false;\n\n for (let i = 0; i < text.length && lines.length < limit; i++) {\n const char = text[i]!;\n\n if (char === '\"') {\n if (inQuotes && text[i + 1] === '\"') {\n current += '\"\"';\n i++;\n continue;\n }\n inQuotes = !inQuotes;\n current += char;\n continue;\n }\n\n if (!inQuotes && (char === \"\\n\" || char === \"\\r\")) {\n if (char === \"\\r\" && text[i + 1] === \"\\n\") i++;\n if (current.trim().length > 0) lines.push(current);\n current = \"\";\n continue;\n }\n\n current += char;\n }\n\n if (current.trim().length > 0 && lines.length < limit) lines.push(current);\n return lines;\n}\n\nfunction countOutsideQuotes(line: string, delimiter: string): number {\n let count = 0;\n let inQuotes = false;\n\n for (let i = 0; i < line.length; i++) {\n const char = line[i]!;\n if (char === '\"') {\n if (inQuotes && line[i + 1] === '\"') {\n i++;\n continue;\n }\n inQuotes = !inQuotes;\n continue;\n }\n if (!inQuotes && char === delimiter) count++;\n }\n\n return count;\n}\n\n/**\n * Strip a UTF-8 byte-order mark.\n *\n * Excel writes one on every CSV it exports, and left in place it becomes part of\n * the first header cell — where it is invisible, so the column looks right and\n * every lookup against its name silently misses.\n */\nexport function stripBom(text: string): string {\n return text.charCodeAt(0) === 0xfeff ? text.slice(1) : text;\n}\n",
|
|
15
15
|
"/**\n * Delimited text in, `WorkbookData` out.\n *\n * The interesting decisions here are all about what a bare string *is*. A CSV\n * carries no types, so every cell is a judgement call, and the ones that matter\n * are the cases where guessing wrong destroys data rather than merely looking\n * wrong: a leading-zero part number, an identifier too long for a float.\n */\n\nimport type { SerializedCellValue } from \"@ricsam/formula-engine\";\nimport { columnIndexToLabel } from \"../a1\";\nimport { translateFormula } from \"../translate/formula\";\nimport type {\n CsvConvertOptions,\n Diagnostic,\n ExcelWorkbookData,\n} from \"../types\";\nimport { detectDelimiter, parseDelimitedText, stripBom } from \"./parse\";\n\nexport interface ConvertCsvResult {\n data: ExcelWorkbookData;\n diagnostics: Diagnostic[];\n}\n\n/** Cells beyond this are refused rather than silently locking up the tab. */\nconst MAX_CELLS = 2_000_000;\n\nexport function convertDelimitedText(\n text: string,\n options: CsvConvertOptions = {}\n): ConvertCsvResult {\n const {\n sheetName = \"Sheet1\",\n fileName,\n parseNumbers = true,\n parseBooleans = true,\n trimFields = false,\n } = options;\n\n const diagnostics: Diagnostic[] = [];\n const body = stripBom(text);\n const delimiter = options.delimiter ?? detectDelimiter(body);\n const rows = parseDelimitedText(body, delimiter);\n\n const widest = rows.reduce((max, row) => Math.max(max, row.length), 0);\n if (rows.length * widest > MAX_CELLS) {\n throw new Error(\n `The file has about ${rows.length * widest} cells, more than the ` +\n `${MAX_CELLS} this importer will load at once.`\n );\n }\n\n const content = new Map<string, SerializedCellValue>();\n\n for (let rowIndex = 0; rowIndex < rows.length; rowIndex++) {\n const row = rows[rowIndex]!;\n for (let colIndex = 0; colIndex < row.length; colIndex++) {\n const raw = trimFields ? row[colIndex]!.trim() : row[colIndex]!;\n // An empty cell is absent rather than an empty string: the engine deletes\n // empty values anyway, and a sparse sheet is the point of its storage.\n if (raw.length === 0) continue;\n\n const reference = `${columnIndexToLabel(colIndex)}${rowIndex + 1}`;\n content.set(\n reference,\n toCellValue(raw, {\n parseNumbers,\n parseBooleans,\n sheetName,\n reference,\n diagnostics,\n })\n );\n }\n }\n\n const data: ExcelWorkbookData = {\n sheets: [{ name: sheetName, content }],\n workbookMetadata: {\n fileName,\n sheetOrder: [sheetName],\n diagnostics: diagnostics.length > 0 ? diagnostics : undefined,\n },\n };\n\n return { data, diagnostics };\n}\n\ninterface ToCellValueContext {\n parseNumbers: boolean;\n parseBooleans: boolean;\n sheetName: string;\n reference: string;\n diagnostics: Diagnostic[];\n}\n\nfunction toCellValue(raw: string, context: ToCellValueContext): SerializedCellValue {\n // A field beginning with `=` is a formula, the way it is when a spreadsheet\n // opens the same file. See the note on CsvConvertOptions.\n if (raw.startsWith(\"=\") && raw.length > 1) {\n const translated = translateFormula(raw, {\n sheetName: context.sheetName,\n cellReference: context.reference,\n });\n context.diagnostics.push(...translated.diagnostics);\n return translated.formula;\n }\n\n if (context.parseBooleans) {\n const upper = raw.toUpperCase();\n if (upper === \"TRUE\") return true;\n if (upper === \"FALSE\") return false;\n }\n\n if (context.parseNumbers) {\n const number = toNumber(raw);\n if (number !== undefined) return number;\n }\n\n return raw;\n}\n\n/**\n * The numeric value of a field, or undefined to keep it as text.\n *\n * Deliberately narrower than `Number()`. Three kinds of string look numeric and\n * must not be converted, because converting them loses information that cannot\n * be recovered from the result:\n *\n * - Leading zeros (`007`, `01234`) — part numbers, postcodes, phone extensions.\n * This is the mangling Excel is notorious for.\n * - Integers beyond `Number.MAX_SAFE_INTEGER` — long identifiers, which silently\n * change value when they become floats.\n * - Anything `Number()` accepts that is not a plain decimal: `0x1f`, `Infinity`,\n * `1_000`, and the empty string.\n */\nexport function toNumber(raw: string): number | undefined {\n const text = raw.trim();\n if (text.length === 0) return undefined;\n\n // A plain decimal, with an optional sign and exponent. Nothing else.\n if (!/^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][+-]?\\d+)?$/.test(text)) {\n return undefined;\n }\n\n const digits = text.replace(/^[+-]/, \"\");\n // `0`, `0.5` and `0e3` are fine; `007` and `01.5` are identifiers.\n if (/^0\\d/.test(digits)) return undefined;\n\n const value = Number(text);\n if (!Number.isFinite(value)) return undefined;\n\n // A long integer that cannot survive as a float stays text.\n if (\n !text.includes(\".\") &&\n !/[eE]/.test(text) &&\n !Number.isSafeInteger(value)\n ) {\n return undefined;\n }\n\n return value;\n}\n\n/** Decode bytes as UTF-8, which is what every modern exporter writes. */\nexport async function readTextFrom(\n source: Blob | ArrayBuffer | Uint8Array | string\n): Promise<string> {\n if (typeof source === \"string\") return source;\n if (source instanceof Uint8Array || source instanceof ArrayBuffer) {\n return new TextDecoder(\"utf-8\").decode(source);\n }\n return source.text();\n}\n",
|
|
16
|
-
"/**\n * excel-to-formula-engine\n *\n * Converts an Excel .xlsx file into `WorkbookData` for `@ricsam/formula-engine`,\n * in the browser and in Node/Bun.\n *\n * ```ts\n * const data = await excelToFormulaEngine(blob);\n * engine.addWorkbook({ workbookName: \"Budget\", data });\n * ```\n */\n\nimport { convertWorkbook } from \"./src/convert\";\nimport { convertDelimitedText, readTextFrom } from \"./src/csv/convert\";\nimport type {\n ConvertOptions,\n ConvertResult,\n CsvConvertOptions,\n ExcelWorkbookData,\n} from \"./src/types\";\n\n/**\n * Convert an Excel file into engine `WorkbookData`.\n *\n * Accepts a `Blob` or `File` from a file input, or raw bytes. The result is\n * ready to hand to `FormulaEngine.addWorkbook`.\n *\n * Anything that could not be translated is reported in\n * `data.workbookMetadata.diagnostics`; use {@link excelToFormulaEngineDetailed}\n * when you want the diagnostics alongside the data instead.\n *\n * @throws when the input is not a readable .xlsx package.\n */\nexport async function excelToFormulaEngine(\n source: Blob | ArrayBuffer | Uint8Array,\n options?: ConvertOptions\n): Promise<ExcelWorkbookData> {\n const { data } = await convertWorkbook(source, withFileName(source, options));\n return data;\n}\n\n/**\n * Convert an Excel file, returning the data and the translation diagnostics as\n * separate values.\n */\nexport async function excelToFormulaEngineDetailed(\n source: Blob | ArrayBuffer | Uint8Array,\n options?: ConvertOptions\n): Promise<ConvertResult> {\n return convertWorkbook(source, withFileName(source, options));\n}\n\n/** Pick up the name from a `File` so it lands in workbook metadata. */\nfunction withFileName(\n source: Blob | ArrayBuffer | Uint8Array,\n options: ConvertOptions | undefined\n): ConvertOptions {\n if (options?.fileName !== undefined) {\n return options;\n }\n const name =\n typeof File !== \"undefined\" && source instanceof File\n ? source.name\n : undefined;\n return name ? { ...options, fileName: name } : { ...options };\n}\n\n/**\n * Convert delimited text — CSV, TSV, or semicolon-separated — into engine\n * `WorkbookData` holding a single sheet.\n *\n * The delimiter is detected from the text unless one is given: a `.csv`\n * extension says nothing about the separator, and a comma-decimal locale\n * exports semicolons.\n */\nexport async function csvToFormulaEngine(\n source: Blob | ArrayBuffer | Uint8Array | string,\n options?: CsvConvertOptions\n): Promise<ExcelWorkbookData> {\n const { data } = await csvToFormulaEngineDetailed(source, options);\n return data;\n}\n\n/** As {@link csvToFormulaEngine}, with the diagnostics returned separately. */\nexport async function csvToFormulaEngineDetailed(\n source: Blob | ArrayBuffer | Uint8Array | string,\n options?: CsvConvertOptions\n): Promise<ConvertResult> {\n const text = await readTextFrom(source);\n const resolved = withCsvFileName(source, options);\n return convertDelimitedText(text, resolved);\n}\n\n/**\n * Convert whichever kind of spreadsheet file this is.\n *\n * For a drop target, which is handed whatever the user let go of and has to\n * decide afterwards. An `.xlsx` is a ZIP and delimited text is not, so the\n * format is settled by looking at the bytes rather than by trusting the name —\n * a file saved as `.csv` but actually a workbook is a common enough export\n * mistake to be worth handling quietly.\n */\nexport async function spreadsheetToFormulaEngine(\n source: Blob | ArrayBuffer | Uint8Array,\n options?: ConvertOptions & CsvConvertOptions\n): Promise<ExcelWorkbookData> {\n const { data } = await spreadsheetToFormulaEngineDetailed(source, options);\n return data;\n}\n\n/** As {@link spreadsheetToFormulaEngine}, with the diagnostics separately. */\nexport async function spreadsheetToFormulaEngineDetailed(\n source: Blob | ArrayBuffer | Uint8Array,\n options?: ConvertOptions & CsvConvertOptions\n): Promise<ConvertResult> {\n const bytes = await toBytes(source);\n if (looksLikeZip(bytes)) {\n return convertWorkbook(bytes, withFileName(source, options));\n }\n return csvToFormulaEngineDetailed(bytes, withCsvFileName(source, options));\n}\n\n/** Every .xlsx is a ZIP, and every ZIP starts `PK\\x03\\x04`. */\nfunction looksLikeZip(bytes: Uint8Array): boolean {\n return (\n bytes.length >= 4 &&\n bytes[0] === 0x50 &&\n bytes[1] === 0x4b &&\n bytes[2] === 0x03 &&\n bytes[3] === 0x04\n );\n}\n\nasync function toBytes(\n source: Blob | ArrayBuffer | Uint8Array\n): Promise<Uint8Array> {\n if (source instanceof Uint8Array) return source;\n if (source instanceof ArrayBuffer) return new Uint8Array(source);\n return new Uint8Array(await source.arrayBuffer());\n}\n\n/**\n * Default the sheet name to the file's own name, so a dropped `sales.csv`\n * becomes a sheet called `sales` rather than `Sheet1`.\n */\nfunction withCsvFileName(\n source: Blob | ArrayBuffer | Uint8Array | string,\n options: CsvConvertOptions | undefined\n): CsvConvertOptions {\n const name =\n typeof File !== \"undefined\" && source instanceof File ? source.name : undefined;\n const fileName = options?.fileName ?? name;\n if (!fileName) return { ...options };\n return {\n ...options,\n fileName,\n sheetName:\n options?.sheetName ??\n (fileName.replace(/\\.(csv|tsv|tab|txt)$/i, \"\").trim() || \"Sheet1\")\n };\n}\n\nexport { convertWorkbook };\nexport { convertDelimitedText } from \"./src/csv/convert\";\nexport {\n detectDelimiter,\n parseDelimitedText,\n stripBom,\n} from \"./src/csv/parse\";\n\nexport type {\n ConvertOptions,\n ConvertResult,\n CsvConvertOptions,\n Diagnostic,\n DiagnosticCode,\n DiagnosticSeverity,\n ExcelCellMetadata,\n ExcelSheetMetadata,\n ExcelWorkbookData,\n ExcelWorkbookMetadata,\n} from \"./src/types\";\n\nexport {\n findUnsupportedFunctions,\n offsetFormulaReferences,\n translateFormula,\n} from \"./src/translate/formula\";\n\nexport { excelSerialToIso } from \"./src/translate/dates\";\n\nexport {\n columnIndexToLabel,\n columnLabelToIndex,\n parseA1,\n parseA1Range,\n toA1,\n} from \"./src/a1\";\n"
|
|
16
|
+
"/**\n * excel-to-formula-engine\n *\n * Converts an Excel .xlsx file into `WorkbookData` for `@ricsam/formula-engine`,\n * in the browser and in Node/Bun.\n *\n * ```ts\n * const data = await excelToFormulaEngine(blob);\n * engine.addWorkbook({ workbookName: \"Budget\", data });\n * ```\n */\n\nimport { convertWorkbook } from \"./src/convert\";\nimport { convertDelimitedText, readTextFrom } from \"./src/csv/convert\";\nimport type {\n ConvertOptions,\n ConvertResult,\n CsvConvertOptions,\n ExcelWorkbookData,\n} from \"./src/types\";\n\n/**\n * Convert an Excel file into engine `WorkbookData`.\n *\n * Accepts a `Blob` or `File` from a file input, or raw bytes. The result is\n * ready to hand to `FormulaEngine.addWorkbook`.\n *\n * Anything that could not be translated is reported in\n * `data.workbookMetadata.diagnostics`; use {@link excelToFormulaEngineDetailed}\n * when you want the diagnostics alongside the data instead.\n *\n * @throws when the input is not a readable .xlsx package.\n */\nexport async function excelToFormulaEngine(\n source: Blob | ArrayBuffer | Uint8Array,\n options?: ConvertOptions\n): Promise<ExcelWorkbookData> {\n const { data } = await convertWorkbook(source, withFileName(source, options));\n return data;\n}\n\n/**\n * Convert an Excel file, returning the data and the translation diagnostics as\n * separate values.\n */\nexport async function excelToFormulaEngineDetailed(\n source: Blob | ArrayBuffer | Uint8Array,\n options?: ConvertOptions\n): Promise<ConvertResult> {\n return convertWorkbook(source, withFileName(source, options));\n}\n\n/** Pick up the name from a `File` so it lands in workbook metadata. */\nfunction withFileName(\n source: Blob | ArrayBuffer | Uint8Array,\n options: ConvertOptions | undefined\n): ConvertOptions {\n if (options?.fileName !== undefined) {\n return options;\n }\n const name =\n typeof File !== \"undefined\" && source instanceof File\n ? source.name\n : undefined;\n return name ? { ...options, fileName: name } : { ...options };\n}\n\n/**\n * Convert delimited text — CSV, TSV, or semicolon-separated — into engine\n * `WorkbookData` holding a single sheet.\n *\n * The delimiter is detected from the text unless one is given: a `.csv`\n * extension says nothing about the separator, and a comma-decimal locale\n * exports semicolons.\n */\nexport async function csvToFormulaEngine(\n source: Blob | ArrayBuffer | Uint8Array | string,\n options?: CsvConvertOptions\n): Promise<ExcelWorkbookData> {\n const { data } = await csvToFormulaEngineDetailed(source, options);\n return data;\n}\n\n/** As {@link csvToFormulaEngine}, with the diagnostics returned separately. */\nexport async function csvToFormulaEngineDetailed(\n source: Blob | ArrayBuffer | Uint8Array | string,\n options?: CsvConvertOptions\n): Promise<ConvertResult> {\n const text = await readTextFrom(source);\n const resolved = withCsvFileName(source, options);\n return convertDelimitedText(text, resolved);\n}\n\n/**\n * Convert whichever kind of spreadsheet file this is.\n *\n * For a drop target, which is handed whatever the user let go of and has to\n * decide afterwards. An `.xlsx` is a ZIP and delimited text is not, so the\n * format is settled by looking at the bytes rather than by trusting the name —\n * a file saved as `.csv` but actually a workbook is a common enough export\n * mistake to be worth handling quietly.\n */\nexport async function spreadsheetToFormulaEngine(\n source: Blob | ArrayBuffer | Uint8Array,\n options?: ConvertOptions & CsvConvertOptions\n): Promise<ExcelWorkbookData> {\n const { data } = await spreadsheetToFormulaEngineDetailed(source, options);\n return data;\n}\n\n/** As {@link spreadsheetToFormulaEngine}, with the diagnostics separately. */\nexport async function spreadsheetToFormulaEngineDetailed(\n source: Blob | ArrayBuffer | Uint8Array,\n options?: ConvertOptions & CsvConvertOptions\n): Promise<ConvertResult> {\n const bytes = await toBytes(source);\n const fileName =\n options?.fileName ??\n (typeof File !== \"undefined\" && source instanceof File ? source.name : undefined);\n\n if (looksLikeZip(bytes)) {\n return convertWorkbook(bytes, withFileName(source, options));\n }\n\n /*\n A file named .xlsx that is not a ZIP is a broken workbook, not delimited\n text. Falling through to the text reader would turn it into a one-cell sheet\n of mojibake and report success, which is worse than saying it cannot be read.\n */\n if (fileName && /\\.(xlsx|xlsm)$/i.test(fileName)) {\n throw new Error(\n `${fileName} is named as an Excel workbook but is not one — the file is ` +\n `corrupt, or it is a legacy .xls saved under the wrong extension.`\n );\n }\n\n assertLooksLikeText(bytes, fileName);\n return csvToFormulaEngineDetailed(bytes, withCsvFileName(source, options));\n}\n\n/**\n * Refuse bytes that are plainly not text.\n *\n * Without a usable file name there is nothing but the content to go on, and\n * every byte sequence \"parses\" as delimited text — so an image dropped by\n * mistake would become a sheet of one enormous unreadable cell. A NUL byte does\n * not occur in real delimited text and is the cheapest reliable tell.\n */\nfunction assertLooksLikeText(bytes: Uint8Array, fileName: string | undefined): void {\n const sample = bytes.subarray(0, 8192);\n if (sample.indexOf(0) !== -1) {\n throw new Error(\n `${fileName ?? \"The file\"} is not a spreadsheet: it contains binary data ` +\n `rather than delimited text.`\n );\n }\n}\n\n/** Every .xlsx is a ZIP, and every ZIP starts `PK\\x03\\x04`. */\nfunction looksLikeZip(bytes: Uint8Array): boolean {\n return (\n bytes.length >= 4 &&\n bytes[0] === 0x50 &&\n bytes[1] === 0x4b &&\n bytes[2] === 0x03 &&\n bytes[3] === 0x04\n );\n}\n\nasync function toBytes(\n source: Blob | ArrayBuffer | Uint8Array\n): Promise<Uint8Array> {\n if (source instanceof Uint8Array) return source;\n if (source instanceof ArrayBuffer) return new Uint8Array(source);\n return new Uint8Array(await source.arrayBuffer());\n}\n\n/**\n * Default the sheet name to the file's own name, so a dropped `sales.csv`\n * becomes a sheet called `sales` rather than `Sheet1`.\n */\nfunction withCsvFileName(\n source: Blob | ArrayBuffer | Uint8Array | string,\n options: CsvConvertOptions | undefined\n): CsvConvertOptions {\n const name =\n typeof File !== \"undefined\" && source instanceof File ? source.name : undefined;\n const fileName = options?.fileName ?? name;\n if (!fileName) return { ...options };\n return {\n ...options,\n fileName,\n sheetName:\n options?.sheetName ??\n (fileName.replace(/\\.(csv|tsv|tab|txt)$/i, \"\").trim() || \"Sheet1\")\n };\n}\n\nexport { convertWorkbook };\nexport { convertDelimitedText } from \"./src/csv/convert\";\nexport {\n detectDelimiter,\n parseDelimitedText,\n stripBom,\n} from \"./src/csv/parse\";\n\nexport type {\n ConvertOptions,\n ConvertResult,\n CsvConvertOptions,\n Diagnostic,\n DiagnosticCode,\n DiagnosticSeverity,\n ExcelCellMetadata,\n ExcelSheetMetadata,\n ExcelWorkbookData,\n ExcelWorkbookMetadata,\n} from \"./src/types\";\n\nexport {\n findUnsupportedFunctions,\n offsetFormulaReferences,\n translateFormula,\n} from \"./src/translate/formula\";\n\nexport { excelSerialToIso } from \"./src/translate/dates\";\n\nexport {\n columnIndexToLabel,\n columnLabelToIndex,\n parseA1,\n parseA1Range,\n toA1,\n} from \"./src/a1\";\n"
|
|
17
17
|
],
|
|
18
|
-
"mappings": "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",
|
|
19
|
-
"debugId": "
|
|
18
|
+
"mappings": "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",
|
|
19
|
+
"debugId": "5AA8F8A121F02B2D64756E2164756E21",
|
|
20
20
|
"names": []
|
|
21
21
|
}
|
package/dist/index.mjs
CHANGED
|
@@ -1800,11 +1800,22 @@ async function spreadsheetToFormulaEngine(source, options) {
|
|
|
1800
1800
|
}
|
|
1801
1801
|
async function spreadsheetToFormulaEngineDetailed(source, options) {
|
|
1802
1802
|
const bytes = await toBytes2(source);
|
|
1803
|
+
const fileName = options?.fileName ?? (typeof File !== "undefined" && source instanceof File ? source.name : undefined);
|
|
1803
1804
|
if (looksLikeZip(bytes)) {
|
|
1804
1805
|
return convertWorkbook(bytes, withFileName(source, options));
|
|
1805
1806
|
}
|
|
1807
|
+
if (fileName && /\.(xlsx|xlsm)$/i.test(fileName)) {
|
|
1808
|
+
throw new Error(`${fileName} is named as an Excel workbook but is not one — the file is ` + `corrupt, or it is a legacy .xls saved under the wrong extension.`);
|
|
1809
|
+
}
|
|
1810
|
+
assertLooksLikeText(bytes, fileName);
|
|
1806
1811
|
return csvToFormulaEngineDetailed(bytes, withCsvFileName(source, options));
|
|
1807
1812
|
}
|
|
1813
|
+
function assertLooksLikeText(bytes, fileName) {
|
|
1814
|
+
const sample = bytes.subarray(0, 8192);
|
|
1815
|
+
if (sample.indexOf(0) !== -1) {
|
|
1816
|
+
throw new Error(`${fileName ?? "The file"} is not a spreadsheet: it contains binary data ` + `rather than delimited text.`);
|
|
1817
|
+
}
|
|
1818
|
+
}
|
|
1808
1819
|
function looksLikeZip(bytes) {
|
|
1809
1820
|
return bytes.length >= 4 && bytes[0] === 80 && bytes[1] === 75 && bytes[2] === 3 && bytes[3] === 4;
|
|
1810
1821
|
}
|
|
@@ -1849,4 +1860,4 @@ export {
|
|
|
1849
1860
|
translateFormula
|
|
1850
1861
|
};
|
|
1851
1862
|
|
|
1852
|
-
//# debugId=
|
|
1863
|
+
//# debugId=261D0E01F4A42BBA64756E2164756E21
|
package/dist/index.mjs.map
CHANGED
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
"/**\n * The conversion pipeline: an .xlsx package in, `WorkbookData` out.\n */\n\nimport type {\n SerializedCellValue,\n WorkbookDataCellStyle,\n WorkbookDataConditionalStyle,\n WorkbookDataNamedExpression,\n WorkbookDataSheet,\n WorkbookDataTable,\n} from \"@ricsam/formula-engine\";\nimport { readXlsxPackage } from \"./xlsx/package\";\nimport {\n parseSharedStrings,\n parseTables,\n parseWorkbook,\n type RawTable,\n} from \"./xlsx/workbook\";\nimport { parseWorksheet, type RawCell } from \"./xlsx/worksheet\";\nimport { parseStyles, type ExcelFormat } from \"./xlsx/styles\";\nimport { offsetFormulaReferences, translateFormula } from \"./translate/formula\";\nimport { translateConditionalFormat } from \"./translate/conditional-format\";\nimport { excelSerialToIso } from \"./translate/dates\";\nimport {\n parseA1Range,\n rangeReferenceToSpreadsheetRange,\n toA1,\n toSpreadsheetRange,\n type ParsedRange,\n} from \"./a1\";\nimport type {\n ConvertOptions,\n ConvertResult,\n Diagnostic,\n ExcelCellMetadata,\n ExcelSheetMetadata,\n ExcelWorkbookData,\n} from \"./types\";\n\n/**\n * Excel's built-in defined names. They configure print areas and filters rather\n * than naming a value, so importing them as named expressions would be noise.\n */\nconst BUILTIN_DEFINED_NAMES = new Set([\n \"_xlnm.print_area\",\n \"_xlnm.print_titles\",\n \"_xlnm._filterdatabase\",\n \"_xlnm.criteria\",\n \"_xlnm.extract\",\n \"_xlnm.database\",\n \"_xlnm.sheet_title\",\n]);\n\nexport async function convertWorkbook(\n source: Blob | ArrayBuffer | Uint8Array,\n options: ConvertOptions = {}\n): Promise<ConvertResult> {\n const {\n styles: importStyles = true,\n conditionalFormatting: importConditionalFormatting = true,\n tables: importTables = true,\n definedNames: importDefinedNames = true,\n cellMetadata: importCellMetadata = true,\n convertDates = true,\n } = options;\n\n const diagnostics: Diagnostic[] = [];\n const pkg = await readXlsxPackage(source);\n\n const sharedStrings = parseSharedStrings(pkg);\n const { sheets: sheetEntries, definedNames, date1904 } = parseWorkbook(pkg);\n const styleTable = parseStyles(pkg);\n\n const selected = options.sheets\n ? sheetEntries.filter((entry) => options.sheets!.includes(entry.name))\n : sheetEntries;\n\n const sheets: WorkbookDataSheet<ExcelCellMetadata, ExcelSheetMetadata>[] = [];\n const tables: WorkbookDataTable[] = [];\n const cellStyles: WorkbookDataCellStyle[] = [];\n const conditionalStyles: WorkbookDataConditionalStyle[] = [];\n const importedSheetNames = new Set<string>();\n\n for (const entry of selected) {\n const worksheet = parseWorksheet(pkg, entry.partPath, sharedStrings);\n importedSheetNames.add(entry.name);\n\n /*\n Tables are read before the cells are, because a formula's translation\n depends on whether its own cell sits inside one: Excel stores a calculated\n column's reference as `Table[[#This Row],[Col]]` and displays it as\n `[@Col]`, and reproducing that needs to know which table \"this row\" is in.\n */\n const sheetTables = importTables ? parseTables(pkg, entry.partPath) : [];\n const tableRanges = sheetTables\n .map((table) => ({ name: table.displayName, range: parseA1Range(table.ref) }))\n .filter(\n (entryTable): entryTable is { name: string; range: ParsedRange } =>\n entryTable.range !== undefined\n );\n\n /** The table a cell sits inside, or undefined when it sits in none. */\n const tableAt = (colIndex: number, rowIndex: number): string | undefined =>\n tableRanges.find(\n ({ range }) =>\n colIndex >= range.start.colIndex &&\n colIndex <= range.end.colIndex &&\n rowIndex >= range.start.rowIndex &&\n rowIndex <= range.end.rowIndex\n )?.name;\n\n const content = new Map<string, SerializedCellValue>();\n const cellMetadata = new Map<string, ExcelCellMetadata>();\n // Cells sharing one style are collected so each distinct style becomes a\n // single engine rule over many areas rather than one rule per cell.\n const styleGroups = new Map<number, RawCell[]>();\n\n for (const cell of worksheet.cells) {\n const format =\n cell.styleIndex === undefined\n ? undefined\n : styleTable.formats[cell.styleIndex];\n\n const value = cellValue(cell, format, {\n convertDates,\n date1904,\n sheetName: entry.name,\n diagnostics,\n containingTableName: tableAt(cell.colIndex, cell.rowIndex),\n });\n if (value !== undefined) {\n content.set(cell.reference, value);\n }\n\n if (importStyles && cell.styleIndex !== undefined && format) {\n if (Object.keys(format.style).length > 0) {\n const group = styleGroups.get(cell.styleIndex);\n if (group) {\n group.push(cell);\n } else {\n styleGroups.set(cell.styleIndex, [cell]);\n }\n }\n }\n\n if (importCellMetadata) {\n const metadata: ExcelCellMetadata = {};\n if (format?.numberFormat) {\n metadata.numberFormat = format.numberFormat;\n }\n const hyperlink = worksheet.hyperlinks[cell.reference];\n if (hyperlink) {\n metadata.hyperlink = hyperlink;\n }\n if (Object.keys(metadata).length > 0) {\n cellMetadata.set(cell.reference, metadata);\n }\n }\n }\n\n if (importStyles) {\n for (const [styleIndex, cells] of styleGroups) {\n const format = styleTable.formats[styleIndex];\n if (!format) {\n continue;\n }\n cellStyles.push({\n areas: coalesceCellsIntoAreas(entry.name, cells),\n style: format.style,\n });\n }\n }\n\n if (importConditionalFormatting) {\n // Excel evaluates the lowest priority number last, so it wins. The engine\n // applies later rules on top, so rules are emitted in reverse priority.\n const ordered = [...worksheet.conditionalFormats].sort(\n (a, b) => b.priority - a.priority\n );\n for (const rule of ordered) {\n const { result, diagnostics: ruleDiagnostics } =\n translateConditionalFormat(rule, {\n sheetName: entry.name,\n differentialFormats: styleTable.differentialFormats,\n });\n diagnostics.push(...ruleDiagnostics);\n if (result) {\n conditionalStyles.push(result);\n }\n }\n }\n\n if (importTables) {\n for (const table of sheetTables) {\n const converted = convertTable(table, entry.name, diagnostics);\n if (converted) {\n tables.push(converted);\n }\n }\n }\n\n const sheetMetadata: ExcelSheetMetadata = {};\n if (Object.keys(worksheet.columnWidths).length > 0) {\n sheetMetadata.columnWidths = worksheet.columnWidths;\n }\n if (Object.keys(worksheet.rowHeights).length > 0) {\n sheetMetadata.rowHeights = worksheet.rowHeights;\n }\n if (worksheet.merges.length > 0) {\n sheetMetadata.merges = worksheet.merges;\n }\n if (worksheet.frozen) {\n sheetMetadata.frozen = worksheet.frozen;\n }\n if (entry.state !== \"visible\") {\n sheetMetadata.visible = false;\n }\n\n sheets.push({\n name: entry.name,\n content,\n cellMetadata: cellMetadata.size > 0 ? cellMetadata : undefined,\n sheetMetadata:\n Object.keys(sheetMetadata).length > 0 ? sheetMetadata : undefined,\n });\n }\n\n const namedExpressions = importDefinedNames\n ? convertDefinedNames(\n definedNames,\n sheetEntries.map((entry) => entry.name),\n importedSheetNames,\n diagnostics\n )\n : [];\n\n const data: ExcelWorkbookData = {\n sheets,\n tables: tables.length > 0 ? tables : undefined,\n namedExpressions:\n namedExpressions.length > 0 ? namedExpressions : undefined,\n cellStyles: cellStyles.length > 0 ? cellStyles : undefined,\n conditionalStyles:\n conditionalStyles.length > 0 ? conditionalStyles : undefined,\n workbookMetadata: {\n fileName: options.fileName,\n sheetOrder: sheetEntries.map((entry) => entry.name),\n diagnostics: diagnostics.length > 0 ? diagnostics : undefined,\n },\n };\n\n return { data, diagnostics };\n}\n\ninterface CellValueContext {\n convertDates: boolean;\n date1904: boolean;\n sheetName: string;\n diagnostics: Diagnostic[];\n /** The table this cell sits inside, when it sits inside one. */\n containingTableName?: string;\n}\n\n/**\n * The engine stores a cell as a formula string, a literal, or nothing. A cell\n * with a formula keeps the formula: Excel's cached result is discarded, because\n * the engine recalculates.\n */\nfunction cellValue(\n cell: RawCell,\n format: ExcelFormat | undefined,\n context: CellValueContext\n): SerializedCellValue {\n if (cell.formula !== undefined) {\n const body = cell.formulaOffset\n ? offsetFormulaReferences(\n cell.formula,\n cell.formulaOffset.cols,\n cell.formulaOffset.rows\n )\n : cell.formula;\n\n const translated = translateFormula(body, {\n sheetName: context.sheetName,\n cellReference: cell.reference,\n containingTableName: context.containingTableName,\n });\n context.diagnostics.push(...translated.diagnostics);\n return translated.formula;\n }\n\n switch (cell.kind) {\n case \"number\": {\n const value = cell.value as number;\n if (context.convertDates && format?.isDateFormat) {\n return excelSerialToIso(value, context.date1904);\n }\n return value;\n }\n case \"boolean\":\n return cell.value as boolean;\n case \"string\":\n return cell.value as string;\n case \"date\":\n return cell.value as string;\n case \"error\":\n // Excel's own error text is valid engine cell content.\n return cell.value as string;\n case \"empty\":\n return undefined;\n }\n}\n\nfunction convertTable(\n table: RawTable,\n sheetName: string,\n diagnostics: Diagnostic[]\n): WorkbookDataTable | undefined {\n const parsed = parseA1Range(table.ref);\n if (!parsed) {\n diagnostics.push({\n severity: \"warning\",\n code: \"skipped-table\",\n message: `Table \"${table.displayName}\" has an unreadable range (${table.ref}).`,\n sheetName,\n });\n return undefined;\n }\n\n if (table.headerRowCount === 0) {\n // The engine requires a header row, since structured references name it.\n diagnostics.push({\n severity: \"warning\",\n code: \"skipped-table\",\n message:\n `Table \"${table.displayName}\" has no header row, which the engine ` +\n `requires for structured references, so it was skipped.`,\n sheetName,\n });\n return undefined;\n }\n\n const numCols = parsed.end.colIndex - parsed.start.colIndex + 1;\n const dataRows =\n parsed.end.rowIndex -\n parsed.start.rowIndex +\n 1 -\n table.headerRowCount -\n table.totalsRowCount;\n\n if (numCols <= 0 || dataRows < 0) {\n diagnostics.push({\n severity: \"warning\",\n code: \"skipped-table\",\n message: `Table \"${table.displayName}\" has an empty range (${table.ref}).`,\n sheetName,\n });\n return undefined;\n }\n\n return {\n name: table.displayName,\n sheetName,\n start: toA1(parsed.start),\n numRows: { type: \"number\", value: dataRows },\n numCols,\n };\n}\n\nfunction convertDefinedNames(\n definedNames: { name: string; formula: string; localSheetId?: number; hidden: boolean }[],\n sheetNames: string[],\n importedSheetNames: Set<string>,\n diagnostics: Diagnostic[]\n): WorkbookDataNamedExpression[] {\n const result: WorkbookDataNamedExpression[] = [];\n\n for (const definedName of definedNames) {\n if (BUILTIN_DEFINED_NAMES.has(definedName.name.toLowerCase())) {\n continue;\n }\n if (definedName.hidden || definedName.formula.trim() === \"\") {\n continue;\n }\n if (definedName.formula.includes(\"#REF!\")) {\n diagnostics.push({\n severity: \"warning\",\n code: \"skipped-defined-name\",\n message: `Defined name \"${definedName.name}\" refers to a deleted range.`,\n source: definedName.formula,\n });\n continue;\n }\n\n const sheetName =\n definedName.localSheetId === undefined\n ? undefined\n : sheetNames[definedName.localSheetId];\n\n if (sheetName !== undefined && !importedSheetNames.has(sheetName)) {\n continue;\n }\n\n // Named expressions are stored as a formula body with no leading \"=\".\n const translated = translateFormula(definedName.formula);\n diagnostics.push(...translated.diagnostics);\n\n result.push({\n name: definedName.name,\n expression: translated.formula.slice(1),\n sheetName,\n });\n }\n\n return result;\n}\n\n/**\n * Turn a set of cells sharing one style into as few rectangular areas as\n * possible.\n *\n * Excel's style model is per-cell, but the engine's is per-area, so emitting\n * one area per cell would produce enormous rule lists on real workbooks. Cells\n * are merged into horizontal runs, then adjacent identical runs are merged\n * vertically into blocks.\n */\nexport function coalesceCellsIntoAreas(\n sheetName: string,\n cells: { colIndex: number; rowIndex: number }[]\n): { sheetName: string; range: ReturnType<typeof toSpreadsheetRange> }[] {\n const byRow = new Map<number, number[]>();\n for (const cell of cells) {\n const row = byRow.get(cell.rowIndex);\n if (row) {\n row.push(cell.colIndex);\n } else {\n byRow.set(cell.rowIndex, [cell.colIndex]);\n }\n }\n\n interface Run {\n rowIndex: number;\n startCol: number;\n endCol: number;\n }\n\n const runs: Run[] = [];\n for (const [rowIndex, columns] of byRow) {\n columns.sort((a, b) => a - b);\n let startCol = columns[0]!;\n let previous = startCol;\n for (let i = 1; i < columns.length; i++) {\n const current = columns[i]!;\n if (current === previous + 1) {\n previous = current;\n continue;\n }\n runs.push({ rowIndex, startCol, endCol: previous });\n startCol = current;\n previous = current;\n }\n runs.push({ rowIndex, startCol, endCol: previous });\n }\n\n // Merge runs with identical column spans in consecutive rows into blocks.\n runs.sort((a, b) =>\n a.startCol - b.startCol || a.endCol - b.endCol || a.rowIndex - b.rowIndex\n );\n\n const areas: { sheetName: string; range: ReturnType<typeof toSpreadsheetRange> }[] = [];\n let index = 0;\n while (index < runs.length) {\n const first = runs[index]!;\n let lastRow = first.rowIndex;\n let next = index + 1;\n while (\n next < runs.length &&\n runs[next]!.startCol === first.startCol &&\n runs[next]!.endCol === first.endCol &&\n runs[next]!.rowIndex === lastRow + 1\n ) {\n lastRow = runs[next]!.rowIndex;\n next++;\n }\n\n areas.push({\n sheetName,\n range: toSpreadsheetRange({\n start: { colIndex: first.startCol, rowIndex: first.rowIndex },\n end: { colIndex: first.endCol, rowIndex: lastRow },\n }),\n });\n index = next;\n }\n\n return areas;\n}\n\nexport { rangeReferenceToSpreadsheetRange };\n",
|
|
14
14
|
"/**\n * Delimited-text parsing: CSV, TSV, and the semicolon-separated files a\n * comma-decimal locale produces.\n *\n * Follows RFC 4180 for quoting — a field wrapped in double quotes may contain\n * the delimiter, line breaks, and doubled quotes standing for one — because that\n * is what every spreadsheet writes and the naive `split(\",\")` gets wrong on the\n * first address field it meets.\n */\n\n/** Delimiters worth guessing between. */\nexport const CANDIDATE_DELIMITERS = [\",\", \"\\t\", \";\", \"|\"] as const;\n\nexport type Delimiter = string;\n\n/**\n * Split delimited text into rows of raw string fields.\n *\n * Values keep the exact text they had: trimming and type conversion are separate\n * decisions made later, where the caller's options are in scope.\n */\nexport function parseDelimitedText(text: string, delimiter: Delimiter): string[][] {\n const rows: string[][] = [];\n let row: string[] = [];\n let field = \"\";\n let inQuotes = false;\n let fieldWasQuoted = false;\n // Distinguishes \"no fields yet\" from \"one empty field\", so a trailing newline\n // does not produce a spurious final row.\n let rowHasContent = false;\n\n const endField = () => {\n row.push(field);\n field = \"\";\n fieldWasQuoted = false;\n rowHasContent = true;\n };\n\n const endRow = () => {\n endField();\n rows.push(row);\n row = [];\n rowHasContent = false;\n };\n\n for (let i = 0; i < text.length; i++) {\n const char = text[i]!;\n\n if (inQuotes) {\n if (char === '\"') {\n if (text[i + 1] === '\"') {\n // A doubled quote inside a quoted field is one literal quote.\n field += '\"';\n i++;\n } else {\n inQuotes = false;\n }\n } else {\n field += char;\n }\n continue;\n }\n\n if (char === '\"' && field.length === 0) {\n inQuotes = true;\n fieldWasQuoted = true;\n continue;\n }\n\n if (char === delimiter) {\n endField();\n continue;\n }\n\n if (char === \"\\r\") {\n // Treat CRLF and a bare CR as one line ending.\n if (text[i + 1] === \"\\n\") i++;\n endRow();\n continue;\n }\n\n if (char === \"\\n\") {\n endRow();\n continue;\n }\n\n field += char;\n }\n\n // A file not ending in a newline still has a last row; one that does should\n // not gain an empty one. A lone quoted empty field counts as content.\n if (field.length > 0 || fieldWasQuoted || rowHasContent) {\n endRow();\n }\n\n return rows;\n}\n\n/**\n * Guess the delimiter from the text itself.\n *\n * Scores each candidate on how *consistently* it splits the first several lines\n * rather than on how often it appears: prose full of commas scores badly because\n * its lines disagree about the field count, while a two-column TSV scores\n * perfectly on one tab per line. Quoted sections are skipped, so a comma inside\n * `\"Smith, J\"` never votes for comma.\n *\n * Falls back to comma, which is both the commonest and the least surprising\n * thing to be wrong about.\n */\nexport function detectDelimiter(\n text: string,\n candidates: readonly string[] = CANDIDATE_DELIMITERS\n): Delimiter {\n const lines = takeSampleLines(text, 20);\n if (lines.length === 0) return \",\";\n\n let best: { delimiter: string; score: number } | undefined;\n\n for (const delimiter of candidates) {\n const counts = lines.map((line) => countOutsideQuotes(line, delimiter));\n const present = counts.filter((count) => count > 0);\n // A delimiter that never appears is not a candidate.\n if (present.length === 0) continue;\n\n const first = counts[0]!;\n // Consistency across lines is the signal; ties break toward more fields,\n // which is what distinguishes the real delimiter from one that happens to\n // appear once per line inside the data.\n const consistent = counts.filter((count) => count === first).length;\n const score = consistent / counts.length + Math.min(first, 50) / 1000;\n\n if (!best || score > best.score) {\n best = { delimiter, score };\n }\n }\n\n return best?.delimiter ?? \",\";\n}\n\n/**\n * The first `limit` non-empty lines, ignoring line breaks inside quoted fields.\n */\nfunction takeSampleLines(text: string, limit: number): string[] {\n const lines: string[] = [];\n let current = \"\";\n let inQuotes = false;\n\n for (let i = 0; i < text.length && lines.length < limit; i++) {\n const char = text[i]!;\n\n if (char === '\"') {\n if (inQuotes && text[i + 1] === '\"') {\n current += '\"\"';\n i++;\n continue;\n }\n inQuotes = !inQuotes;\n current += char;\n continue;\n }\n\n if (!inQuotes && (char === \"\\n\" || char === \"\\r\")) {\n if (char === \"\\r\" && text[i + 1] === \"\\n\") i++;\n if (current.trim().length > 0) lines.push(current);\n current = \"\";\n continue;\n }\n\n current += char;\n }\n\n if (current.trim().length > 0 && lines.length < limit) lines.push(current);\n return lines;\n}\n\nfunction countOutsideQuotes(line: string, delimiter: string): number {\n let count = 0;\n let inQuotes = false;\n\n for (let i = 0; i < line.length; i++) {\n const char = line[i]!;\n if (char === '\"') {\n if (inQuotes && line[i + 1] === '\"') {\n i++;\n continue;\n }\n inQuotes = !inQuotes;\n continue;\n }\n if (!inQuotes && char === delimiter) count++;\n }\n\n return count;\n}\n\n/**\n * Strip a UTF-8 byte-order mark.\n *\n * Excel writes one on every CSV it exports, and left in place it becomes part of\n * the first header cell — where it is invisible, so the column looks right and\n * every lookup against its name silently misses.\n */\nexport function stripBom(text: string): string {\n return text.charCodeAt(0) === 0xfeff ? text.slice(1) : text;\n}\n",
|
|
15
15
|
"/**\n * Delimited text in, `WorkbookData` out.\n *\n * The interesting decisions here are all about what a bare string *is*. A CSV\n * carries no types, so every cell is a judgement call, and the ones that matter\n * are the cases where guessing wrong destroys data rather than merely looking\n * wrong: a leading-zero part number, an identifier too long for a float.\n */\n\nimport type { SerializedCellValue } from \"@ricsam/formula-engine\";\nimport { columnIndexToLabel } from \"../a1\";\nimport { translateFormula } from \"../translate/formula\";\nimport type {\n CsvConvertOptions,\n Diagnostic,\n ExcelWorkbookData,\n} from \"../types\";\nimport { detectDelimiter, parseDelimitedText, stripBom } from \"./parse\";\n\nexport interface ConvertCsvResult {\n data: ExcelWorkbookData;\n diagnostics: Diagnostic[];\n}\n\n/** Cells beyond this are refused rather than silently locking up the tab. */\nconst MAX_CELLS = 2_000_000;\n\nexport function convertDelimitedText(\n text: string,\n options: CsvConvertOptions = {}\n): ConvertCsvResult {\n const {\n sheetName = \"Sheet1\",\n fileName,\n parseNumbers = true,\n parseBooleans = true,\n trimFields = false,\n } = options;\n\n const diagnostics: Diagnostic[] = [];\n const body = stripBom(text);\n const delimiter = options.delimiter ?? detectDelimiter(body);\n const rows = parseDelimitedText(body, delimiter);\n\n const widest = rows.reduce((max, row) => Math.max(max, row.length), 0);\n if (rows.length * widest > MAX_CELLS) {\n throw new Error(\n `The file has about ${rows.length * widest} cells, more than the ` +\n `${MAX_CELLS} this importer will load at once.`\n );\n }\n\n const content = new Map<string, SerializedCellValue>();\n\n for (let rowIndex = 0; rowIndex < rows.length; rowIndex++) {\n const row = rows[rowIndex]!;\n for (let colIndex = 0; colIndex < row.length; colIndex++) {\n const raw = trimFields ? row[colIndex]!.trim() : row[colIndex]!;\n // An empty cell is absent rather than an empty string: the engine deletes\n // empty values anyway, and a sparse sheet is the point of its storage.\n if (raw.length === 0) continue;\n\n const reference = `${columnIndexToLabel(colIndex)}${rowIndex + 1}`;\n content.set(\n reference,\n toCellValue(raw, {\n parseNumbers,\n parseBooleans,\n sheetName,\n reference,\n diagnostics,\n })\n );\n }\n }\n\n const data: ExcelWorkbookData = {\n sheets: [{ name: sheetName, content }],\n workbookMetadata: {\n fileName,\n sheetOrder: [sheetName],\n diagnostics: diagnostics.length > 0 ? diagnostics : undefined,\n },\n };\n\n return { data, diagnostics };\n}\n\ninterface ToCellValueContext {\n parseNumbers: boolean;\n parseBooleans: boolean;\n sheetName: string;\n reference: string;\n diagnostics: Diagnostic[];\n}\n\nfunction toCellValue(raw: string, context: ToCellValueContext): SerializedCellValue {\n // A field beginning with `=` is a formula, the way it is when a spreadsheet\n // opens the same file. See the note on CsvConvertOptions.\n if (raw.startsWith(\"=\") && raw.length > 1) {\n const translated = translateFormula(raw, {\n sheetName: context.sheetName,\n cellReference: context.reference,\n });\n context.diagnostics.push(...translated.diagnostics);\n return translated.formula;\n }\n\n if (context.parseBooleans) {\n const upper = raw.toUpperCase();\n if (upper === \"TRUE\") return true;\n if (upper === \"FALSE\") return false;\n }\n\n if (context.parseNumbers) {\n const number = toNumber(raw);\n if (number !== undefined) return number;\n }\n\n return raw;\n}\n\n/**\n * The numeric value of a field, or undefined to keep it as text.\n *\n * Deliberately narrower than `Number()`. Three kinds of string look numeric and\n * must not be converted, because converting them loses information that cannot\n * be recovered from the result:\n *\n * - Leading zeros (`007`, `01234`) — part numbers, postcodes, phone extensions.\n * This is the mangling Excel is notorious for.\n * - Integers beyond `Number.MAX_SAFE_INTEGER` — long identifiers, which silently\n * change value when they become floats.\n * - Anything `Number()` accepts that is not a plain decimal: `0x1f`, `Infinity`,\n * `1_000`, and the empty string.\n */\nexport function toNumber(raw: string): number | undefined {\n const text = raw.trim();\n if (text.length === 0) return undefined;\n\n // A plain decimal, with an optional sign and exponent. Nothing else.\n if (!/^[+-]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][+-]?\\d+)?$/.test(text)) {\n return undefined;\n }\n\n const digits = text.replace(/^[+-]/, \"\");\n // `0`, `0.5` and `0e3` are fine; `007` and `01.5` are identifiers.\n if (/^0\\d/.test(digits)) return undefined;\n\n const value = Number(text);\n if (!Number.isFinite(value)) return undefined;\n\n // A long integer that cannot survive as a float stays text.\n if (\n !text.includes(\".\") &&\n !/[eE]/.test(text) &&\n !Number.isSafeInteger(value)\n ) {\n return undefined;\n }\n\n return value;\n}\n\n/** Decode bytes as UTF-8, which is what every modern exporter writes. */\nexport async function readTextFrom(\n source: Blob | ArrayBuffer | Uint8Array | string\n): Promise<string> {\n if (typeof source === \"string\") return source;\n if (source instanceof Uint8Array || source instanceof ArrayBuffer) {\n return new TextDecoder(\"utf-8\").decode(source);\n }\n return source.text();\n}\n",
|
|
16
|
-
"/**\n * excel-to-formula-engine\n *\n * Converts an Excel .xlsx file into `WorkbookData` for `@ricsam/formula-engine`,\n * in the browser and in Node/Bun.\n *\n * ```ts\n * const data = await excelToFormulaEngine(blob);\n * engine.addWorkbook({ workbookName: \"Budget\", data });\n * ```\n */\n\nimport { convertWorkbook } from \"./src/convert\";\nimport { convertDelimitedText, readTextFrom } from \"./src/csv/convert\";\nimport type {\n ConvertOptions,\n ConvertResult,\n CsvConvertOptions,\n ExcelWorkbookData,\n} from \"./src/types\";\n\n/**\n * Convert an Excel file into engine `WorkbookData`.\n *\n * Accepts a `Blob` or `File` from a file input, or raw bytes. The result is\n * ready to hand to `FormulaEngine.addWorkbook`.\n *\n * Anything that could not be translated is reported in\n * `data.workbookMetadata.diagnostics`; use {@link excelToFormulaEngineDetailed}\n * when you want the diagnostics alongside the data instead.\n *\n * @throws when the input is not a readable .xlsx package.\n */\nexport async function excelToFormulaEngine(\n source: Blob | ArrayBuffer | Uint8Array,\n options?: ConvertOptions\n): Promise<ExcelWorkbookData> {\n const { data } = await convertWorkbook(source, withFileName(source, options));\n return data;\n}\n\n/**\n * Convert an Excel file, returning the data and the translation diagnostics as\n * separate values.\n */\nexport async function excelToFormulaEngineDetailed(\n source: Blob | ArrayBuffer | Uint8Array,\n options?: ConvertOptions\n): Promise<ConvertResult> {\n return convertWorkbook(source, withFileName(source, options));\n}\n\n/** Pick up the name from a `File` so it lands in workbook metadata. */\nfunction withFileName(\n source: Blob | ArrayBuffer | Uint8Array,\n options: ConvertOptions | undefined\n): ConvertOptions {\n if (options?.fileName !== undefined) {\n return options;\n }\n const name =\n typeof File !== \"undefined\" && source instanceof File\n ? source.name\n : undefined;\n return name ? { ...options, fileName: name } : { ...options };\n}\n\n/**\n * Convert delimited text — CSV, TSV, or semicolon-separated — into engine\n * `WorkbookData` holding a single sheet.\n *\n * The delimiter is detected from the text unless one is given: a `.csv`\n * extension says nothing about the separator, and a comma-decimal locale\n * exports semicolons.\n */\nexport async function csvToFormulaEngine(\n source: Blob | ArrayBuffer | Uint8Array | string,\n options?: CsvConvertOptions\n): Promise<ExcelWorkbookData> {\n const { data } = await csvToFormulaEngineDetailed(source, options);\n return data;\n}\n\n/** As {@link csvToFormulaEngine}, with the diagnostics returned separately. */\nexport async function csvToFormulaEngineDetailed(\n source: Blob | ArrayBuffer | Uint8Array | string,\n options?: CsvConvertOptions\n): Promise<ConvertResult> {\n const text = await readTextFrom(source);\n const resolved = withCsvFileName(source, options);\n return convertDelimitedText(text, resolved);\n}\n\n/**\n * Convert whichever kind of spreadsheet file this is.\n *\n * For a drop target, which is handed whatever the user let go of and has to\n * decide afterwards. An `.xlsx` is a ZIP and delimited text is not, so the\n * format is settled by looking at the bytes rather than by trusting the name —\n * a file saved as `.csv` but actually a workbook is a common enough export\n * mistake to be worth handling quietly.\n */\nexport async function spreadsheetToFormulaEngine(\n source: Blob | ArrayBuffer | Uint8Array,\n options?: ConvertOptions & CsvConvertOptions\n): Promise<ExcelWorkbookData> {\n const { data } = await spreadsheetToFormulaEngineDetailed(source, options);\n return data;\n}\n\n/** As {@link spreadsheetToFormulaEngine}, with the diagnostics separately. */\nexport async function spreadsheetToFormulaEngineDetailed(\n source: Blob | ArrayBuffer | Uint8Array,\n options?: ConvertOptions & CsvConvertOptions\n): Promise<ConvertResult> {\n const bytes = await toBytes(source);\n if (looksLikeZip(bytes)) {\n return convertWorkbook(bytes, withFileName(source, options));\n }\n return csvToFormulaEngineDetailed(bytes, withCsvFileName(source, options));\n}\n\n/** Every .xlsx is a ZIP, and every ZIP starts `PK\\x03\\x04`. */\nfunction looksLikeZip(bytes: Uint8Array): boolean {\n return (\n bytes.length >= 4 &&\n bytes[0] === 0x50 &&\n bytes[1] === 0x4b &&\n bytes[2] === 0x03 &&\n bytes[3] === 0x04\n );\n}\n\nasync function toBytes(\n source: Blob | ArrayBuffer | Uint8Array\n): Promise<Uint8Array> {\n if (source instanceof Uint8Array) return source;\n if (source instanceof ArrayBuffer) return new Uint8Array(source);\n return new Uint8Array(await source.arrayBuffer());\n}\n\n/**\n * Default the sheet name to the file's own name, so a dropped `sales.csv`\n * becomes a sheet called `sales` rather than `Sheet1`.\n */\nfunction withCsvFileName(\n source: Blob | ArrayBuffer | Uint8Array | string,\n options: CsvConvertOptions | undefined\n): CsvConvertOptions {\n const name =\n typeof File !== \"undefined\" && source instanceof File ? source.name : undefined;\n const fileName = options?.fileName ?? name;\n if (!fileName) return { ...options };\n return {\n ...options,\n fileName,\n sheetName:\n options?.sheetName ??\n (fileName.replace(/\\.(csv|tsv|tab|txt)$/i, \"\").trim() || \"Sheet1\")\n };\n}\n\nexport { convertWorkbook };\nexport { convertDelimitedText } from \"./src/csv/convert\";\nexport {\n detectDelimiter,\n parseDelimitedText,\n stripBom,\n} from \"./src/csv/parse\";\n\nexport type {\n ConvertOptions,\n ConvertResult,\n CsvConvertOptions,\n Diagnostic,\n DiagnosticCode,\n DiagnosticSeverity,\n ExcelCellMetadata,\n ExcelSheetMetadata,\n ExcelWorkbookData,\n ExcelWorkbookMetadata,\n} from \"./src/types\";\n\nexport {\n findUnsupportedFunctions,\n offsetFormulaReferences,\n translateFormula,\n} from \"./src/translate/formula\";\n\nexport { excelSerialToIso } from \"./src/translate/dates\";\n\nexport {\n columnIndexToLabel,\n columnLabelToIndex,\n parseA1,\n parseA1Range,\n toA1,\n} from \"./src/a1\";\n"
|
|
16
|
+
"/**\n * excel-to-formula-engine\n *\n * Converts an Excel .xlsx file into `WorkbookData` for `@ricsam/formula-engine`,\n * in the browser and in Node/Bun.\n *\n * ```ts\n * const data = await excelToFormulaEngine(blob);\n * engine.addWorkbook({ workbookName: \"Budget\", data });\n * ```\n */\n\nimport { convertWorkbook } from \"./src/convert\";\nimport { convertDelimitedText, readTextFrom } from \"./src/csv/convert\";\nimport type {\n ConvertOptions,\n ConvertResult,\n CsvConvertOptions,\n ExcelWorkbookData,\n} from \"./src/types\";\n\n/**\n * Convert an Excel file into engine `WorkbookData`.\n *\n * Accepts a `Blob` or `File` from a file input, or raw bytes. The result is\n * ready to hand to `FormulaEngine.addWorkbook`.\n *\n * Anything that could not be translated is reported in\n * `data.workbookMetadata.diagnostics`; use {@link excelToFormulaEngineDetailed}\n * when you want the diagnostics alongside the data instead.\n *\n * @throws when the input is not a readable .xlsx package.\n */\nexport async function excelToFormulaEngine(\n source: Blob | ArrayBuffer | Uint8Array,\n options?: ConvertOptions\n): Promise<ExcelWorkbookData> {\n const { data } = await convertWorkbook(source, withFileName(source, options));\n return data;\n}\n\n/**\n * Convert an Excel file, returning the data and the translation diagnostics as\n * separate values.\n */\nexport async function excelToFormulaEngineDetailed(\n source: Blob | ArrayBuffer | Uint8Array,\n options?: ConvertOptions\n): Promise<ConvertResult> {\n return convertWorkbook(source, withFileName(source, options));\n}\n\n/** Pick up the name from a `File` so it lands in workbook metadata. */\nfunction withFileName(\n source: Blob | ArrayBuffer | Uint8Array,\n options: ConvertOptions | undefined\n): ConvertOptions {\n if (options?.fileName !== undefined) {\n return options;\n }\n const name =\n typeof File !== \"undefined\" && source instanceof File\n ? source.name\n : undefined;\n return name ? { ...options, fileName: name } : { ...options };\n}\n\n/**\n * Convert delimited text — CSV, TSV, or semicolon-separated — into engine\n * `WorkbookData` holding a single sheet.\n *\n * The delimiter is detected from the text unless one is given: a `.csv`\n * extension says nothing about the separator, and a comma-decimal locale\n * exports semicolons.\n */\nexport async function csvToFormulaEngine(\n source: Blob | ArrayBuffer | Uint8Array | string,\n options?: CsvConvertOptions\n): Promise<ExcelWorkbookData> {\n const { data } = await csvToFormulaEngineDetailed(source, options);\n return data;\n}\n\n/** As {@link csvToFormulaEngine}, with the diagnostics returned separately. */\nexport async function csvToFormulaEngineDetailed(\n source: Blob | ArrayBuffer | Uint8Array | string,\n options?: CsvConvertOptions\n): Promise<ConvertResult> {\n const text = await readTextFrom(source);\n const resolved = withCsvFileName(source, options);\n return convertDelimitedText(text, resolved);\n}\n\n/**\n * Convert whichever kind of spreadsheet file this is.\n *\n * For a drop target, which is handed whatever the user let go of and has to\n * decide afterwards. An `.xlsx` is a ZIP and delimited text is not, so the\n * format is settled by looking at the bytes rather than by trusting the name —\n * a file saved as `.csv` but actually a workbook is a common enough export\n * mistake to be worth handling quietly.\n */\nexport async function spreadsheetToFormulaEngine(\n source: Blob | ArrayBuffer | Uint8Array,\n options?: ConvertOptions & CsvConvertOptions\n): Promise<ExcelWorkbookData> {\n const { data } = await spreadsheetToFormulaEngineDetailed(source, options);\n return data;\n}\n\n/** As {@link spreadsheetToFormulaEngine}, with the diagnostics separately. */\nexport async function spreadsheetToFormulaEngineDetailed(\n source: Blob | ArrayBuffer | Uint8Array,\n options?: ConvertOptions & CsvConvertOptions\n): Promise<ConvertResult> {\n const bytes = await toBytes(source);\n const fileName =\n options?.fileName ??\n (typeof File !== \"undefined\" && source instanceof File ? source.name : undefined);\n\n if (looksLikeZip(bytes)) {\n return convertWorkbook(bytes, withFileName(source, options));\n }\n\n /*\n A file named .xlsx that is not a ZIP is a broken workbook, not delimited\n text. Falling through to the text reader would turn it into a one-cell sheet\n of mojibake and report success, which is worse than saying it cannot be read.\n */\n if (fileName && /\\.(xlsx|xlsm)$/i.test(fileName)) {\n throw new Error(\n `${fileName} is named as an Excel workbook but is not one — the file is ` +\n `corrupt, or it is a legacy .xls saved under the wrong extension.`\n );\n }\n\n assertLooksLikeText(bytes, fileName);\n return csvToFormulaEngineDetailed(bytes, withCsvFileName(source, options));\n}\n\n/**\n * Refuse bytes that are plainly not text.\n *\n * Without a usable file name there is nothing but the content to go on, and\n * every byte sequence \"parses\" as delimited text — so an image dropped by\n * mistake would become a sheet of one enormous unreadable cell. A NUL byte does\n * not occur in real delimited text and is the cheapest reliable tell.\n */\nfunction assertLooksLikeText(bytes: Uint8Array, fileName: string | undefined): void {\n const sample = bytes.subarray(0, 8192);\n if (sample.indexOf(0) !== -1) {\n throw new Error(\n `${fileName ?? \"The file\"} is not a spreadsheet: it contains binary data ` +\n `rather than delimited text.`\n );\n }\n}\n\n/** Every .xlsx is a ZIP, and every ZIP starts `PK\\x03\\x04`. */\nfunction looksLikeZip(bytes: Uint8Array): boolean {\n return (\n bytes.length >= 4 &&\n bytes[0] === 0x50 &&\n bytes[1] === 0x4b &&\n bytes[2] === 0x03 &&\n bytes[3] === 0x04\n );\n}\n\nasync function toBytes(\n source: Blob | ArrayBuffer | Uint8Array\n): Promise<Uint8Array> {\n if (source instanceof Uint8Array) return source;\n if (source instanceof ArrayBuffer) return new Uint8Array(source);\n return new Uint8Array(await source.arrayBuffer());\n}\n\n/**\n * Default the sheet name to the file's own name, so a dropped `sales.csv`\n * becomes a sheet called `sales` rather than `Sheet1`.\n */\nfunction withCsvFileName(\n source: Blob | ArrayBuffer | Uint8Array | string,\n options: CsvConvertOptions | undefined\n): CsvConvertOptions {\n const name =\n typeof File !== \"undefined\" && source instanceof File ? source.name : undefined;\n const fileName = options?.fileName ?? name;\n if (!fileName) return { ...options };\n return {\n ...options,\n fileName,\n sheetName:\n options?.sheetName ??\n (fileName.replace(/\\.(csv|tsv|tab|txt)$/i, \"\").trim() || \"Sheet1\")\n };\n}\n\nexport { convertWorkbook };\nexport { convertDelimitedText } from \"./src/csv/convert\";\nexport {\n detectDelimiter,\n parseDelimitedText,\n stripBom,\n} from \"./src/csv/parse\";\n\nexport type {\n ConvertOptions,\n ConvertResult,\n CsvConvertOptions,\n Diagnostic,\n DiagnosticCode,\n DiagnosticSeverity,\n ExcelCellMetadata,\n ExcelSheetMetadata,\n ExcelWorkbookData,\n ExcelWorkbookMetadata,\n} from \"./src/types\";\n\nexport {\n findUnsupportedFunctions,\n offsetFormulaReferences,\n translateFormula,\n} from \"./src/translate/formula\";\n\nexport { excelSerialToIso } from \"./src/translate/dates\";\n\nexport {\n columnIndexToLabel,\n columnLabelToIndex,\n parseA1,\n parseA1Range,\n toA1,\n} from \"./src/a1\";\n"
|
|
17
17
|
],
|
|
18
|
-
"mappings": "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",
|
|
19
|
-
"debugId": "
|
|
18
|
+
"mappings": "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",
|
|
19
|
+
"debugId": "261D0E01F4A42BBA64756E2164756E21",
|
|
20
20
|
"names": []
|
|
21
21
|
}
|