@loaders.gl/excel 4.4.5 → 5.0.0-alpha.2
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/LICENSE +14 -3
- package/dist/bundled.d.ts +3 -0
- package/dist/bundled.d.ts.map +1 -0
- package/dist/bundled.js +5 -0
- package/dist/bundled.js.map +1 -0
- package/dist/dist.dev.js +36143 -21760
- package/dist/dist.min.js +54 -37
- package/dist/excel-format.d.ts +2 -0
- package/dist/excel-format.d.ts.map +1 -1
- package/dist/excel-format.js +2 -0
- package/dist/excel-format.js.map +1 -1
- package/dist/excel-loader-with-parser.d.ts +60 -0
- package/dist/excel-loader-with-parser.d.ts.map +1 -0
- package/dist/excel-loader-with-parser.js +29 -0
- package/dist/excel-loader-with-parser.js.map +1 -0
- package/dist/excel-loader.d.ts +40 -14
- package/dist/excel-loader.d.ts.map +1 -1
- package/dist/excel-loader.js +11 -13
- package/dist/excel-loader.js.map +1 -1
- package/dist/excel-worker.js +37702 -23157
- package/dist/index.cjs +892 -43
- package/dist/index.cjs.map +3 -4
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/convert-excel-rows-to-arrow.d.ts +11 -0
- package/dist/lib/convert-excel-rows-to-arrow.d.ts.map +1 -0
- package/dist/lib/convert-excel-rows-to-arrow.js +72 -0
- package/dist/lib/convert-excel-rows-to-arrow.js.map +1 -0
- package/dist/lib/encode-excel.d.ts.map +1 -1
- package/dist/lib/encode-excel.js +3 -0
- package/dist/lib/encode-excel.js.map +1 -1
- package/dist/unbundled.d.ts +3 -0
- package/dist/unbundled.d.ts.map +1 -0
- package/dist/unbundled.js +5 -0
- package/dist/unbundled.js.map +1 -0
- package/dist/workers/excel-worker.js +5 -2
- package/dist/workers/excel-worker.js.map +1 -1
- package/package.json +15 -5
- package/src/bundled.ts +9 -0
- package/src/excel-format.ts +2 -0
- package/src/excel-loader-with-parser.ts +51 -0
- package/src/excel-loader.ts +21 -21
- package/src/index.ts +5 -1
- package/src/lib/convert-excel-rows-to-arrow.ts +83 -0
- package/src/lib/encode-excel.ts +4 -0
- package/src/unbundled.ts +6 -0
- package/src/workers/excel-worker.ts +6 -2
package/dist/index.cjs.map
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/
|
|
4
|
-
"sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// Excel Loader\n\nexport {ExcelFormat} from './excel-format';\nexport type {ExcelLoaderOptions} from './excel-loader';\nexport {ExcelLoader, ExcelWorkerLoader} from './excel-loader';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Format} from '@loaders.gl/loader-utils';\n\n/**\n * Excel files\n */\nexport const ExcelFormat = {\n name: 'Excel',\n id: 'excel',\n module: 'excel',\n extensions: ['xls', 'xlsb', 'xlsm', 'xlsx'],\n mimeTypes: [\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/vnd.ms-excel'\n ],\n category: 'table',\n binary: true\n} as const satisfies Format;\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {ExcelLoaderOptions} from '../excel-loader';\nimport {utils, read} from 'xlsx';\n// import {convertToArrayRow} from '@loaders.gl/schema';\n\n// local table names cache with dataUrl/tableNames array key/values\nconst dataTableNamesMap = {};\n\n/**\n * Gets local or remote Excel file data.\n * @param arrayBuffer Loaded data\n * @param options Data parse options.\n */\nexport function parseExcel(\n arrayBuffer: ArrayBuffer,\n options?: ExcelLoaderOptions\n): {[key: string]: unknown}[] {\n const dataUrl = 'dummy';\n // const dataFileType: string = dataUrl.substr(dataUrl.lastIndexOf('.')); // file extension\n\n // create Excel 'workbook'\n const workbook = read(arrayBuffer, {\n type: 'array'\n // cellDates: true\n });\n\n // load data sheets\n let dataRows: {[key: string]: unknown}[] = [];\n dataTableNamesMap[dataUrl] = [];\n if (workbook.SheetNames.length > 0) {\n if (workbook.SheetNames.length > 1) {\n // cache sheet names\n dataTableNamesMap[dataUrl] = workbook.SheetNames;\n // eslint-ignore-next-line\n // console.debug(`getData(): file: sheetNames:`, workbook.SheetNames);\n }\n\n // determine spreadsheet to load\n let sheetName = workbook.SheetNames[0];\n if (options?.excel?.sheet && workbook.SheetNames.indexOf(options?.excel?.sheet) >= 0) {\n // reset to requested table name\n sheetName = options?.excel?.sheet;\n }\n\n // get worksheet data row objects array\n const worksheet = workbook.Sheets[sheetName];\n dataRows = utils.sheet_to_json(worksheet);\n\n // const headers = dataRows.length ? Object.keys(dataRows[0]) : [];\n // if (options?.excel?.type === 'array-row-table') {\n // dataRows = dataRows.map(row => convertToArrayRow(row, headers))\n // }\n }\n\n return dataRows;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';\nimport type {ObjectRowTable} from '@loaders.gl/schema';\nimport {parseExcel} from './lib/parse-excel';\nimport {ExcelFormat} from './excel-format';\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport type ExcelLoaderOptions = LoaderOptions & {\n /** Options for ExcelLoader */\n excel?: {\n /** Format of returned data */\n shape?: /* 'array-row-table' | */ 'object-row-table';\n /** Specify which sheet to load, if omitted loads default sheet */\n sheet?: string;\n /** Override the URL to the worker bundle (by default loads from unpkg.com) */\n workerUrl?: string;\n };\n};\n\n/**\n * Worker Loader for Excel files\n */\nexport const ExcelWorkerLoader = {\n ...ExcelFormat,\n dataType: null as unknown as ObjectRowTable,\n batchType: null as never,\n version: VERSION,\n worker: true,\n options: {\n excel: {\n shape: 'object-row-table',\n sheet: undefined // Load default Sheet\n }\n }\n} as const satisfies Loader<ObjectRowTable, never, ExcelLoaderOptions>;\n\n/**\n * Loader for Excel files\n */\nexport const ExcelLoader = {\n ...ExcelWorkerLoader,\n async parse(arrayBuffer: ArrayBuffer, options?: ExcelLoaderOptions): Promise<ObjectRowTable> {\n const data = parseExcel(arrayBuffer, options);\n return {shape: 'object-row-table', data};\n }\n} as const satisfies LoaderWithParser<ObjectRowTable, never, ExcelLoaderOptions>;\n"],
|
|
5
|
-
"
|
|
6
|
-
"names": []
|
|
3
|
+
"sources": ["../src/excel-format.ts", "../src/lib/parse-excel.ts", "../../schema-utils/src/lib/schema/data-type.ts", "../../schema-utils/src/lib/schema/convert-arrow-schema.ts", "../../schema-utils/src/lib/schema/deduce-table-schema.ts", "../../schema-utils/src/lib/table/tables/make-table.ts", "../../schema-utils/src/lib/table/batch-builder/arrow-table-builder.ts", "../../schema-utils/src/index.ts", "../src/lib/convert-excel-rows-to-arrow.ts", "../src/excel-loader-with-parser.ts", "../src/excel-loader.ts", "../src/index.ts"],
|
|
4
|
+
"mappings": "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",
|
|
5
|
+
"names": ["arrow", "arrow", "arrow", "ExcelLoaderWithParser"]
|
|
7
6
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
export { ExcelFormat } from "./excel-format.js";
|
|
2
2
|
export type { ExcelLoaderOptions } from "./excel-loader.js";
|
|
3
|
-
export { ExcelLoader
|
|
3
|
+
export { ExcelLoader } from "./excel-loader.js";
|
|
4
|
+
/** @deprecated Use ExcelLoader. */
|
|
5
|
+
export { ExcelWorkerLoader } from "./excel-loader.js";
|
|
4
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAC3C,YAAY,EAAC,kBAAkB,EAAC,0BAAuB;AACvD,OAAO,EAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAC3C,YAAY,EAAC,kBAAkB,EAAC,0BAAuB;AACvD,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAG3C,mCAAmC;AACnC,OAAO,EAAC,iBAAiB,EAAC,0BAAuB"}
|
package/dist/index.js
CHANGED
|
@@ -3,5 +3,8 @@
|
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
// Excel Loader
|
|
5
5
|
export { ExcelFormat } from "./excel-format.js";
|
|
6
|
-
export { ExcelLoader
|
|
6
|
+
export { ExcelLoader } from "./excel-loader.js";
|
|
7
|
+
// DEPRECATED EXPORTS
|
|
8
|
+
/** @deprecated Use ExcelLoader. */
|
|
9
|
+
export { ExcelWorkerLoader } from "./excel-loader.js";
|
|
7
10
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,eAAe;AAEf,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAE3C,OAAO,EAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,eAAe;AAEf,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAE3C,OAAO,EAAC,WAAW,EAAC,0BAAuB;AAE3C,qBAAqB;AACrB,mCAAmC;AACnC,OAAO,EAAC,iBAAiB,EAAC,0BAAuB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { ArrowTable } from '@loaders.gl/schema';
|
|
2
|
+
/**
|
|
3
|
+
* Converts parsed Excel rows to an Arrow table, including empty sheets.
|
|
4
|
+
*
|
|
5
|
+
* @param rows - Parsed Excel rows keyed by worksheet column name.
|
|
6
|
+
* @returns A loaders.gl Arrow table with one Apache Arrow column per row property.
|
|
7
|
+
*/
|
|
8
|
+
export declare function convertExcelRowsToArrowTable(rows: {
|
|
9
|
+
[key: string]: unknown;
|
|
10
|
+
}[]): ArrowTable;
|
|
11
|
+
//# sourceMappingURL=convert-excel-rows-to-arrow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-excel-rows-to-arrow.d.ts","sourceRoot":"","sources":["../../src/lib/convert-excel-rows-to-arrow.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,UAAU,EAA0C,MAAM,oBAAoB,CAAC;AAI5F;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAC,EAAE,GAAG,UAAU,CAoBzF"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
import { ArrowTableBuilder, makeTableFromData } from '@loaders.gl/schema-utils';
|
|
5
|
+
import * as arrow from 'apache-arrow';
|
|
6
|
+
/**
|
|
7
|
+
* Converts parsed Excel rows to an Arrow table, including empty sheets.
|
|
8
|
+
*
|
|
9
|
+
* @param rows - Parsed Excel rows keyed by worksheet column name.
|
|
10
|
+
* @returns A loaders.gl Arrow table with one Apache Arrow column per row property.
|
|
11
|
+
*/
|
|
12
|
+
export function convertExcelRowsToArrowTable(rows) {
|
|
13
|
+
const table = rows.length > 0
|
|
14
|
+
? makeTableFromData(rows)
|
|
15
|
+
: { shape: 'object-row-table', schema: { fields: [], metadata: {} }, data: rows };
|
|
16
|
+
const schema = deducePrimitiveAwareSchema(table);
|
|
17
|
+
if (table.data.length === 0 || schema.fields.length === 0) {
|
|
18
|
+
return {
|
|
19
|
+
shape: 'arrow-table',
|
|
20
|
+
schema,
|
|
21
|
+
data: new arrow.Table(new arrow.Schema([]))
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
const arrowTableBuilder = new ArrowTableBuilder(schema);
|
|
25
|
+
for (const row of table.data) {
|
|
26
|
+
arrowTableBuilder.addObjectRow(row);
|
|
27
|
+
}
|
|
28
|
+
return arrowTableBuilder.finishTable();
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Deduces a schema that handles primitive numbers and booleans in Excel rows.
|
|
32
|
+
*
|
|
33
|
+
* @param table - Object-row table produced from parsed Excel rows.
|
|
34
|
+
* @returns A schema with primitive values promoted from `null` to Arrow-compatible types.
|
|
35
|
+
*/
|
|
36
|
+
function deducePrimitiveAwareSchema(table) {
|
|
37
|
+
const fields = table.schema.fields.map((field) => {
|
|
38
|
+
if (field.type === 'float32') {
|
|
39
|
+
return { ...field, type: 'float64' };
|
|
40
|
+
}
|
|
41
|
+
if (field.type !== 'null') {
|
|
42
|
+
return field;
|
|
43
|
+
}
|
|
44
|
+
for (const row of table.data) {
|
|
45
|
+
const type = getDataTypeFromPrimitive(row[field.name]);
|
|
46
|
+
if (type !== 'null') {
|
|
47
|
+
return { ...field, type };
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return field;
|
|
51
|
+
});
|
|
52
|
+
return { ...table.schema, fields };
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Deduces a loaders.gl data type from primitive spreadsheet cell values.
|
|
56
|
+
*
|
|
57
|
+
* @param value - Spreadsheet cell value.
|
|
58
|
+
* @returns The matching loaders.gl data type, or `null` for unsupported values.
|
|
59
|
+
*/
|
|
60
|
+
function getDataTypeFromPrimitive(value) {
|
|
61
|
+
switch (typeof value) {
|
|
62
|
+
case 'number':
|
|
63
|
+
return 'float64';
|
|
64
|
+
case 'boolean':
|
|
65
|
+
return 'bool';
|
|
66
|
+
case 'string':
|
|
67
|
+
return 'utf8';
|
|
68
|
+
default:
|
|
69
|
+
return value instanceof Date ? 'date-millisecond' : 'null';
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=convert-excel-rows-to-arrow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"convert-excel-rows-to-arrow.js","sourceRoot":"","sources":["../../src/lib/convert-excel-rows-to-arrow.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,iBAAiB,EAAE,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAC9E,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC;;;;;GAKG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAAgC;IAC3E,MAAM,KAAK,GACT,IAAI,CAAC,MAAM,GAAG,CAAC;QACb,CAAC,CAAC,iBAAiB,CAAC,IAAI,CAAC;QACzB,CAAC,CAAC,EAAC,KAAK,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAC,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAC,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC;IAClF,MAAM,MAAM,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAEjD,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1D,OAAO;YACL,KAAK,EAAE,aAAa;YACpB,MAAM;YACN,IAAI,EAAE,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;SAC5C,CAAC;IACJ,CAAC;IAED,MAAM,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACxD,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,iBAAiB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,iBAAiB,CAAC,WAAW,EAAE,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACH,SAAS,0BAA0B,CAAC,KAAqB;IACvD,MAAM,MAAM,GAAG,KAAK,CAAC,MAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAS,EAAE;QACvD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,EAAC,GAAG,KAAK,EAAE,IAAI,EAAE,SAAS,EAAC,CAAC;QACrC,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC7B,MAAM,IAAI,GAAG,wBAAwB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACvD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;gBACpB,OAAO,EAAC,GAAG,KAAK,EAAE,IAAI,EAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC;IAEH,OAAO,EAAC,GAAG,KAAK,CAAC,MAAO,EAAE,MAAM,EAAC,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,SAAS,wBAAwB,CAAC,KAAc;IAC9C,QAAQ,OAAO,KAAK,EAAE,CAAC;QACrB,KAAK,QAAQ;YACX,OAAO,SAAS,CAAC;QACnB,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC;QAChB,KAAK,QAAQ;YACX,OAAO,MAAM,CAAC;QAChB;YACE,OAAO,KAAK,YAAY,IAAI,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC;IAC/D,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encode-excel.d.ts","sourceRoot":"","sources":["../../src/lib/encode-excel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"encode-excel.d.ts","sourceRoot":"","sources":["../../src/lib/encode-excel.ts"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8EE"}
|
package/dist/lib/encode-excel.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encode-excel.js","sourceRoot":"","sources":["../../src/lib/encode-excel.ts"],"names":[],"mappings":";AAAA,gCAAgC;AAEhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8EE"}
|
|
1
|
+
{"version":3,"file":"encode-excel.js","sourceRoot":"","sources":["../../src/lib/encode-excel.ts"],"names":[],"mappings":";AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,gCAAgC;AAEhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8EE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unbundled.d.ts","sourceRoot":"","sources":["../src/unbundled.ts"],"names":[],"mappings":"AAIA,YAAY,EAAC,kBAAkB,EAAC,0BAAuB;AACvD,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAC,0BAAuB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unbundled.js","sourceRoot":"","sources":["../src/unbundled.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAC,0BAAuB"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
1
4
|
import { createLoaderWorker } from '@loaders.gl/loader-utils';
|
|
2
|
-
import {
|
|
3
|
-
createLoaderWorker(
|
|
5
|
+
import { ExcelLoaderWithParser } from "../excel-loader-with-parser.js";
|
|
6
|
+
createLoaderWorker(ExcelLoaderWithParser);
|
|
4
7
|
//# sourceMappingURL=excel-worker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"excel-worker.js","sourceRoot":"","sources":["../../src/workers/excel-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAC,
|
|
1
|
+
{"version":3,"file":"excel-worker.js","sourceRoot":"","sources":["../../src/workers/excel-worker.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,kBAAkB,EAAC,MAAM,0BAA0B,CAAC;AAC5D,OAAO,EAAC,qBAAqB,EAAC,uCAAoC;AAElE,kBAAkB,CAAC,qBAAqB,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loaders.gl/excel",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0-alpha.2",
|
|
4
4
|
"description": "Framework-independent loader for Excel files",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -30,6 +30,14 @@
|
|
|
30
30
|
"import": "./dist/index.js",
|
|
31
31
|
"require": "./dist/index.cjs"
|
|
32
32
|
},
|
|
33
|
+
"./unbundled": {
|
|
34
|
+
"types": "./dist/unbundled.d.ts",
|
|
35
|
+
"import": "./dist/unbundled.js"
|
|
36
|
+
},
|
|
37
|
+
"./bundled": {
|
|
38
|
+
"types": "./dist/bundled.d.ts",
|
|
39
|
+
"import": "./dist/bundled.js"
|
|
40
|
+
},
|
|
33
41
|
"./excel-worker.js": {
|
|
34
42
|
"import": "./dist/excel-worker.js"
|
|
35
43
|
}
|
|
@@ -47,12 +55,14 @@
|
|
|
47
55
|
"build-worker": "esbuild src/workers/excel-worker.ts --bundle --outfile=dist/excel-worker.js --define:__VERSION__=\\\"$npm_package_version\\\""
|
|
48
56
|
},
|
|
49
57
|
"dependencies": {
|
|
50
|
-
"@loaders.gl/loader-utils": "
|
|
51
|
-
"@loaders.gl/schema": "
|
|
58
|
+
"@loaders.gl/loader-utils": "5.0.0-alpha.2",
|
|
59
|
+
"@loaders.gl/schema": "5.0.0-alpha.2",
|
|
60
|
+
"@loaders.gl/schema-utils": "5.0.0-alpha.2",
|
|
61
|
+
"apache-arrow": ">= 17.0.0",
|
|
52
62
|
"xlsx": "^0.18.5"
|
|
53
63
|
},
|
|
54
64
|
"peerDependencies": {
|
|
55
|
-
"@loaders.gl/core": "~
|
|
65
|
+
"@loaders.gl/core": "~5.0.0-alpha.0"
|
|
56
66
|
},
|
|
57
|
-
"gitHead": "
|
|
67
|
+
"gitHead": "27bcc0db684abb66a83003263c9d1cafd9e5b2dd"
|
|
58
68
|
}
|
package/src/bundled.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
export type {ExcelLoaderOptions} from './excel-loader-with-parser';
|
|
6
|
+
export {
|
|
7
|
+
ExcelLoaderWithParser as ExcelLoader,
|
|
8
|
+
ExcelWorkerLoaderWithParser as ExcelWorkerLoader
|
|
9
|
+
} from './excel-loader-with-parser';
|
package/src/excel-format.ts
CHANGED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
import type {Loader, LoaderWithParser, LoaderOptions} from '@loaders.gl/loader-utils';
|
|
6
|
+
import type {ArrowTable, ObjectRowTable} from '@loaders.gl/schema';
|
|
7
|
+
import {parseExcel} from './lib/parse-excel';
|
|
8
|
+
import {convertExcelRowsToArrowTable} from './lib/convert-excel-rows-to-arrow';
|
|
9
|
+
import {ExcelWorkerLoader as ExcelWorkerLoaderMetadata} from './excel-loader';
|
|
10
|
+
import {ExcelLoader as ExcelLoaderMetadata} from './excel-loader';
|
|
11
|
+
|
|
12
|
+
const {preload: _ExcelWorkerLoaderPreload, ...ExcelWorkerLoaderMetadataWithoutPreload} =
|
|
13
|
+
ExcelWorkerLoaderMetadata;
|
|
14
|
+
const {preload: _ExcelLoaderPreload, ...ExcelLoaderMetadataWithoutPreload} = ExcelLoaderMetadata;
|
|
15
|
+
|
|
16
|
+
/** Options for parsing Excel worksheets. */
|
|
17
|
+
export type ExcelLoaderOptions = LoaderOptions & {
|
|
18
|
+
/** Options for ExcelLoaderWithParser */
|
|
19
|
+
excel?: {
|
|
20
|
+
/** Selects row-table output or Apache Arrow output. */
|
|
21
|
+
shape?: /* 'array-row-table' | */ 'object-row-table' | 'arrow-table';
|
|
22
|
+
/** Specify which sheet to load, if omitted loads default sheet. */
|
|
23
|
+
sheet?: string;
|
|
24
|
+
/** Override the URL to the worker bundle (by default loads from unpkg.com). */
|
|
25
|
+
workerUrl?: string;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
/** Worker loader for Excel files. */
|
|
30
|
+
export const ExcelWorkerLoaderWithParser = {
|
|
31
|
+
...ExcelWorkerLoaderMetadataWithoutPreload
|
|
32
|
+
} as const satisfies Loader<ObjectRowTable | ArrowTable, never, ExcelLoaderOptions>;
|
|
33
|
+
|
|
34
|
+
/** Loader for Excel files. */
|
|
35
|
+
export const ExcelLoaderWithParser = {
|
|
36
|
+
...ExcelLoaderMetadataWithoutPreload,
|
|
37
|
+
async parse(
|
|
38
|
+
arrayBuffer: ArrayBuffer,
|
|
39
|
+
options?: ExcelLoaderOptions
|
|
40
|
+
): Promise<ObjectRowTable | ArrowTable> {
|
|
41
|
+
const excelOptions = {
|
|
42
|
+
...options,
|
|
43
|
+
excel: {...ExcelLoaderWithParser.options.excel, ...options?.excel}
|
|
44
|
+
} as ExcelLoaderOptions;
|
|
45
|
+
const rows = parseExcel(arrayBuffer, excelOptions);
|
|
46
|
+
if (excelOptions.excel?.shape === 'arrow-table') {
|
|
47
|
+
return convertExcelRowsToArrowTable(rows);
|
|
48
|
+
}
|
|
49
|
+
return {shape: 'object-row-table', data: rows};
|
|
50
|
+
}
|
|
51
|
+
} as const satisfies LoaderWithParser<ObjectRowTable | ArrowTable, never, ExcelLoaderOptions>;
|
package/src/excel-loader.ts
CHANGED
|
@@ -2,33 +2,37 @@
|
|
|
2
2
|
// SPDX-License-Identifier: MIT
|
|
3
3
|
// Copyright (c) vis.gl contributors
|
|
4
4
|
|
|
5
|
-
import type {Loader,
|
|
6
|
-
import type {ObjectRowTable} from '@loaders.gl/schema';
|
|
7
|
-
import {parseExcel} from './lib/parse-excel';
|
|
5
|
+
import type {Loader, LoaderOptions} from '@loaders.gl/loader-utils';
|
|
6
|
+
import type {ArrowTable, ObjectRowTable} from '@loaders.gl/schema';
|
|
8
7
|
import {ExcelFormat} from './excel-format';
|
|
9
8
|
|
|
10
9
|
// __VERSION__ is injected by babel-plugin-version-inline
|
|
11
10
|
// @ts-ignore TS2304: Cannot find name '__VERSION__'.
|
|
12
11
|
const VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';
|
|
13
12
|
|
|
13
|
+
/** Options for parsing Excel worksheets. */
|
|
14
14
|
export type ExcelLoaderOptions = LoaderOptions & {
|
|
15
15
|
/** Options for ExcelLoader */
|
|
16
16
|
excel?: {
|
|
17
|
-
/**
|
|
18
|
-
shape?: /* 'array-row-table' | */ 'object-row-table';
|
|
19
|
-
/** Specify which sheet to load, if omitted loads default sheet */
|
|
17
|
+
/** Selects row-table output or Apache Arrow output. */
|
|
18
|
+
shape?: /* 'array-row-table' | */ 'object-row-table' | 'arrow-table';
|
|
19
|
+
/** Specify which sheet to load, if omitted loads default sheet. */
|
|
20
20
|
sheet?: string;
|
|
21
|
-
/** Override the URL to the worker bundle (by default loads from unpkg.com) */
|
|
21
|
+
/** Override the URL to the worker bundle (by default loads from unpkg.com). */
|
|
22
22
|
workerUrl?: string;
|
|
23
23
|
};
|
|
24
24
|
};
|
|
25
25
|
|
|
26
|
-
/**
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
/** Preloads the parser-bearing Excel loader implementation. */
|
|
27
|
+
async function preload() {
|
|
28
|
+
const {ExcelLoaderWithParser} = await import('./excel-loader-with-parser');
|
|
29
|
+
return ExcelLoaderWithParser;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/** Metadata-only worker loader for Excel files. */
|
|
29
33
|
export const ExcelWorkerLoader = {
|
|
30
34
|
...ExcelFormat,
|
|
31
|
-
dataType: null as unknown as ObjectRowTable,
|
|
35
|
+
dataType: null as unknown as ObjectRowTable | ArrowTable,
|
|
32
36
|
batchType: null as never,
|
|
33
37
|
version: VERSION,
|
|
34
38
|
worker: true,
|
|
@@ -37,16 +41,12 @@ export const ExcelWorkerLoader = {
|
|
|
37
41
|
shape: 'object-row-table',
|
|
38
42
|
sheet: undefined // Load default Sheet
|
|
39
43
|
}
|
|
40
|
-
}
|
|
41
|
-
|
|
44
|
+
},
|
|
45
|
+
preload
|
|
46
|
+
} as const satisfies Loader<ObjectRowTable | ArrowTable, never, ExcelLoaderOptions>;
|
|
42
47
|
|
|
43
|
-
/**
|
|
44
|
-
* Loader for Excel files
|
|
45
|
-
*/
|
|
48
|
+
/** Metadata-only loader for Excel files. */
|
|
46
49
|
export const ExcelLoader = {
|
|
47
50
|
...ExcelWorkerLoader,
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
return {shape: 'object-row-table', data};
|
|
51
|
-
}
|
|
52
|
-
} as const satisfies LoaderWithParser<ObjectRowTable, never, ExcelLoaderOptions>;
|
|
51
|
+
preload
|
|
52
|
+
} as const satisfies Loader<ObjectRowTable | ArrowTable, never, ExcelLoaderOptions>;
|
package/src/index.ts
CHANGED
|
@@ -6,4 +6,8 @@
|
|
|
6
6
|
|
|
7
7
|
export {ExcelFormat} from './excel-format';
|
|
8
8
|
export type {ExcelLoaderOptions} from './excel-loader';
|
|
9
|
-
export {ExcelLoader
|
|
9
|
+
export {ExcelLoader} from './excel-loader';
|
|
10
|
+
|
|
11
|
+
// DEPRECATED EXPORTS
|
|
12
|
+
/** @deprecated Use ExcelLoader. */
|
|
13
|
+
export {ExcelWorkerLoader} from './excel-loader';
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
5
|
+
import type {ArrowTable, DataType, Field, ObjectRowTable, Schema} from '@loaders.gl/schema';
|
|
6
|
+
import {ArrowTableBuilder, makeTableFromData} from '@loaders.gl/schema-utils';
|
|
7
|
+
import * as arrow from 'apache-arrow';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Converts parsed Excel rows to an Arrow table, including empty sheets.
|
|
11
|
+
*
|
|
12
|
+
* @param rows - Parsed Excel rows keyed by worksheet column name.
|
|
13
|
+
* @returns A loaders.gl Arrow table with one Apache Arrow column per row property.
|
|
14
|
+
*/
|
|
15
|
+
export function convertExcelRowsToArrowTable(rows: {[key: string]: unknown}[]): ArrowTable {
|
|
16
|
+
const table: ObjectRowTable =
|
|
17
|
+
rows.length > 0
|
|
18
|
+
? makeTableFromData(rows)
|
|
19
|
+
: {shape: 'object-row-table', schema: {fields: [], metadata: {}}, data: rows};
|
|
20
|
+
const schema = deducePrimitiveAwareSchema(table);
|
|
21
|
+
|
|
22
|
+
if (table.data.length === 0 || schema.fields.length === 0) {
|
|
23
|
+
return {
|
|
24
|
+
shape: 'arrow-table',
|
|
25
|
+
schema,
|
|
26
|
+
data: new arrow.Table(new arrow.Schema([]))
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const arrowTableBuilder = new ArrowTableBuilder(schema);
|
|
31
|
+
for (const row of table.data) {
|
|
32
|
+
arrowTableBuilder.addObjectRow(row);
|
|
33
|
+
}
|
|
34
|
+
return arrowTableBuilder.finishTable();
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Deduces a schema that handles primitive numbers and booleans in Excel rows.
|
|
39
|
+
*
|
|
40
|
+
* @param table - Object-row table produced from parsed Excel rows.
|
|
41
|
+
* @returns A schema with primitive values promoted from `null` to Arrow-compatible types.
|
|
42
|
+
*/
|
|
43
|
+
function deducePrimitiveAwareSchema(table: ObjectRowTable): Schema {
|
|
44
|
+
const fields = table.schema!.fields.map((field): Field => {
|
|
45
|
+
if (field.type === 'float32') {
|
|
46
|
+
return {...field, type: 'float64'};
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if (field.type !== 'null') {
|
|
50
|
+
return field;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
for (const row of table.data) {
|
|
54
|
+
const type = getDataTypeFromPrimitive(row[field.name]);
|
|
55
|
+
if (type !== 'null') {
|
|
56
|
+
return {...field, type};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return field;
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
return {...table.schema!, fields};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Deduces a loaders.gl data type from primitive spreadsheet cell values.
|
|
68
|
+
*
|
|
69
|
+
* @param value - Spreadsheet cell value.
|
|
70
|
+
* @returns The matching loaders.gl data type, or `null` for unsupported values.
|
|
71
|
+
*/
|
|
72
|
+
function getDataTypeFromPrimitive(value: unknown): DataType {
|
|
73
|
+
switch (typeof value) {
|
|
74
|
+
case 'number':
|
|
75
|
+
return 'float64';
|
|
76
|
+
case 'boolean':
|
|
77
|
+
return 'bool';
|
|
78
|
+
case 'string':
|
|
79
|
+
return 'utf8';
|
|
80
|
+
default:
|
|
81
|
+
return value instanceof Date ? 'date-millisecond' : 'null';
|
|
82
|
+
}
|
|
83
|
+
}
|
package/src/lib/encode-excel.ts
CHANGED
package/src/unbundled.ts
ADDED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
+
// loaders.gl
|
|
2
|
+
// SPDX-License-Identifier: MIT
|
|
3
|
+
// Copyright (c) vis.gl contributors
|
|
4
|
+
|
|
1
5
|
import {createLoaderWorker} from '@loaders.gl/loader-utils';
|
|
2
|
-
import {
|
|
6
|
+
import {ExcelLoaderWithParser} from '../excel-loader-with-parser';
|
|
3
7
|
|
|
4
|
-
createLoaderWorker(
|
|
8
|
+
createLoaderWorker(ExcelLoaderWithParser);
|