@senlinz/import-export 0.1.0 → 0.1.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.
@@ -8,7 +8,7 @@ type ExcelColumnDataType = "text" | "number" | "date" | "image";
8
8
  * - Node.js can use `fromExcel`, `toExcel`, and `generateExcelTemplate` when compatible browser globals are available.
9
9
  *
10
10
  * Known limitations:
11
- * - Import validates headers strictly against `columns[].name` order and position.
11
+ * - Schema-based import validates headers strictly against `columns[].name` order and position.
12
12
  * - Grouped export expects parent columns and data groups to be declared before children.
13
13
  * - Image export requires `imageFetcher`.
14
14
  */
@@ -99,4 +99,18 @@ interface ExcelCellFormatDefinition {
99
99
  dateFormat?: string;
100
100
  borderColor?: string;
101
101
  }
102
- export { ExcelDefinition, ExcelColumnDefinition, ExcelCellFormatDefinition, ExcelColumnDataType };
102
+ interface DynamicExcelImportOptions {
103
+ /** Preferred worksheet name. Falls back to the first sheet when omitted or missing. */
104
+ sheetName?: string;
105
+ /** 1-based worksheet row number to use as the header row. Defaults to the first non-empty row. */
106
+ headerRow?: number;
107
+ }
108
+ interface DynamicExcelImportResult {
109
+ /** Actual worksheet name that was imported. */
110
+ sheetName: string;
111
+ /** Header labels read from the worksheet in left-to-right order. */
112
+ headers: string[];
113
+ /** Row data keyed by the imported header labels. */
114
+ rows: Record<string, string>[];
115
+ }
116
+ export { ExcelDefinition, ExcelColumnDefinition, ExcelCellFormatDefinition, ExcelColumnDataType, DynamicExcelImportOptions, DynamicExcelImportResult };
@@ -1,20 +1,25 @@
1
1
  export type * from './ExcelDefinition';
2
2
  export type { InitializeWasmOptions } from './runtime.js';
3
3
  import { ExcelDefinition } from './ExcelDefinition';
4
- import { importExcel, exportExcel, downloadExcelTemplate, fromExcel, toExcel, generateExcelTemplate } from './utils.js';
4
+ import type { DynamicExcelImportOptions, DynamicExcelImportResult } from './ExcelDefinition';
5
+ import { importExcel, importExcelDynamic, exportExcel, downloadExcelTemplate, fromExcel, fromExcelDynamic, toExcel, generateExcelTemplate } from './utils.js';
5
6
  import { bundledWasmSource, initializeWasm } from './runtime.js';
6
7
  declare function getUtils(): {
7
8
  importExcel: typeof importExcel;
9
+ importExcelDynamic: typeof importExcelDynamic;
8
10
  exportExcel: typeof exportExcel;
9
11
  downloadExcelTemplate: typeof downloadExcelTemplate;
10
12
  fromExcel: typeof fromExcel;
13
+ fromExcelDynamic: typeof fromExcelDynamic;
11
14
  toExcel: typeof toExcel;
12
15
  generateExcelTemplate: typeof generateExcelTemplate;
13
16
  };
14
17
  declare function _importExcel<T>(definition: ExcelDefinition): Promise<T[]>;
18
+ declare function _importExcelDynamic(options?: DynamicExcelImportOptions): Promise<DynamicExcelImportResult>;
15
19
  declare function _exportExcel<T>(definition: ExcelDefinition, data: T[]): Promise<void>;
16
20
  declare function _fromExcel<T>(definition: ExcelDefinition, buffer: Uint8Array): Promise<T[]>;
21
+ declare function _fromExcelDynamic(buffer: Uint8Array, options?: DynamicExcelImportOptions): Promise<DynamicExcelImportResult>;
17
22
  declare function _toExcel<T>(definition: ExcelDefinition, data: T[]): Promise<Uint8Array>;
18
23
  declare function _downloadExcelTemplate(definition: ExcelDefinition): Promise<void>;
19
24
  declare function _generateExcelTemplate(definition: ExcelDefinition): Promise<Uint8Array>;
20
- export { bundledWasmSource, getUtils, initializeWasm, _importExcel as importExcel, _exportExcel as exportExcel, _fromExcel as fromExcel, _toExcel as toExcel, _downloadExcelTemplate as downloadExcelTemplate, _generateExcelTemplate as generateExcelTemplate, };
25
+ export { bundledWasmSource, getUtils, initializeWasm, _importExcel as importExcel, _importExcelDynamic as importExcelDynamic, _exportExcel as exportExcel, _fromExcel as fromExcel, _fromExcelDynamic as fromExcelDynamic, _toExcel as toExcel, _downloadExcelTemplate as downloadExcelTemplate, _generateExcelTemplate as generateExcelTemplate, };
@@ -1,9 +1,11 @@
1
- import { ExcelDefinition } from './ExcelDefinition';
1
+ import { ExcelDefinition, DynamicExcelImportOptions, DynamicExcelImportResult } from './ExcelDefinition';
2
2
  declare function _fromExcel<T>(definition: ExcelDefinition, buffer: Uint8Array): Promise<T[]>;
3
+ declare function _fromExcelDynamic(buffer: Uint8Array, options?: DynamicExcelImportOptions): Promise<DynamicExcelImportResult>;
3
4
  declare function _toExcel<T>(definition: ExcelDefinition, data: T[]): Promise<Uint8Array<ArrayBufferLike>>;
4
5
  declare function generateExcelTemplate(definition: ExcelDefinition): Promise<Uint8Array<ArrayBufferLike>>;
5
6
  declare function downloadExcelTemplate(definition: ExcelDefinition): Promise<void>;
6
7
  declare function download(data: Uint8Array | string, name: string, type?: string): void;
7
8
  declare function importExcel<T>(definition: ExcelDefinition): Promise<T[]>;
9
+ declare function importExcelDynamic(options?: DynamicExcelImportOptions): Promise<DynamicExcelImportResult>;
8
10
  declare function exportExcel<T>(definition: ExcelDefinition, data: T[]): Promise<void>;
9
- export { importExcel, exportExcel, downloadExcelTemplate, _fromExcel as fromExcel, _toExcel as toExcel, generateExcelTemplate, download };
11
+ export { importExcel, importExcelDynamic, exportExcel, downloadExcelTemplate, _fromExcel as fromExcel, _fromExcelDynamic as fromExcelDynamic, _toExcel as toExcel, generateExcelTemplate, download };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@senlinz/import-export",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "import/export excel core",
5
5
  "files": [
6
6
  "dist/**/*.js",
@@ -39,7 +39,7 @@
39
39
  },
40
40
  "dependencies": {
41
41
  "fflate": "^0.8.2",
42
- "@senlinz/import-export-wasm": "0.1.0"
42
+ "@senlinz/import-export-wasm": "0.1.1"
43
43
  },
44
44
  "keywords": [
45
45
  "rust",