@simplysm/excel 14.0.1 → 14.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,107 @@
1
+ # @simplysm/excel
2
+
3
+ Excel file processing library -- read/write .xlsx files with cell styling, formulas, images, and Zod schema-based typed wrapper.
4
+
5
+ Platform: neutral (Node.js and browser).
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ npm install @simplysm/excel
11
+ ```
12
+
13
+ ## API Overview
14
+
15
+ | Category | Items | Documentation |
16
+ |---|---|---|
17
+ | Types & Utilities | ExcelXmlContentTypeData, ExcelXmlRelationshipData, ExcelRelationshipData, ExcelXmlWorkbookData, ExcelXmlWorksheetData, ExcelRowData, ExcelCellData, ExcelXmlDrawingData, ExcelXmlSharedStringData, ExcelXmlSharedStringDataSi, ExcelXmlSharedStringDataText, ExcelXmlStyleData, ExcelXmlStyleDataXf, ExcelXmlStyleDataFill, ExcelXmlStyleDataBorder, ExcelValueType, ExcelNumberFormat, ExcelCellType, ExcelAddressPoint, ExcelAddressRangePoint, ExcelXml, ExcelBorderPosition, ExcelHorizontalAlign, ExcelVerticalAlign, ExcelStyleOptions, ExcelUtils | [docs/types.md](docs/types.md) |
18
+ | Core Classes | ExcelCell, ExcelRow, ExcelCol, ExcelWorksheet, ExcelWorkbook | [docs/core.md](docs/core.md) |
19
+ | Wrapper | ExcelWrapper | [docs/wrapper.md](docs/wrapper.md) |
20
+
21
+ ## Quick Start
22
+
23
+ ### Read an existing Excel file
24
+
25
+ ```typescript
26
+ import { ExcelWorkbook } from "@simplysm/excel";
27
+
28
+ await using wb = new ExcelWorkbook(fileBytes);
29
+ const ws = await wb.getWorksheet(0);
30
+
31
+ // Read a single cell
32
+ const value = await ws.cell(0, 0).getValue();
33
+
34
+ // Read as data table (first row = headers)
35
+ const records = await ws.getDataTable();
36
+ // records: Record<string, ExcelValueType>[]
37
+ ```
38
+
39
+ ### Create a new Excel file
40
+
41
+ ```typescript
42
+ import { ExcelWorkbook } from "@simplysm/excel";
43
+
44
+ await using wb = new ExcelWorkbook();
45
+ const ws = await wb.addWorksheet("Sheet1");
46
+
47
+ await ws.cell(0, 0).setValue("Name");
48
+ await ws.cell(0, 1).setValue("Age");
49
+ await ws.cell(1, 0).setValue("Alice");
50
+ await ws.cell(1, 1).setValue(30);
51
+
52
+ // Apply styling
53
+ await ws.cell(0, 0).setStyle({
54
+ background: "00FFFF00",
55
+ border: ["left", "right", "top", "bottom"],
56
+ horizontalAlign: "center",
57
+ });
58
+
59
+ const bytes = await wb.toBytes();
60
+ ```
61
+
62
+ ### Typed read/write with Zod schema
63
+
64
+ ```typescript
65
+ import { z } from "zod";
66
+ import { ExcelWrapper } from "@simplysm/excel";
67
+
68
+ const schema = z.object({
69
+ name: z.string().describe("Name"),
70
+ age: z.number().describe("Age"),
71
+ active: z.boolean().describe("Active").default(false),
72
+ });
73
+
74
+ const wrapper = new ExcelWrapper(schema);
75
+
76
+ // Read with type safety and validation
77
+ const records = await wrapper.read(fileBytes);
78
+
79
+ // Write with automatic header/style generation
80
+ await using wb = await wrapper.write("Sheet1", records);
81
+ const bytes = await wb.toBytes();
82
+ ```
83
+
84
+ ### Insert an image
85
+
86
+ ```typescript
87
+ await ws.addImage({
88
+ bytes: imageBytes,
89
+ ext: "png",
90
+ from: { r: 1, c: 1 },
91
+ to: { r: 5, c: 3 },
92
+ });
93
+ ```
94
+
95
+ ### Row operations
96
+
97
+ ```typescript
98
+ // Copy a row (overwrite)
99
+ await ws.copyRow(0, 5);
100
+
101
+ // Insert-copy a row (shifts existing rows down)
102
+ await ws.insertCopyRow(0, 3);
103
+
104
+ // Freeze header row and set zoom
105
+ await ws.freezeAt({ r: 0 });
106
+ await ws.setZoom(85);
107
+ ```
@@ -101,10 +101,10 @@ export class ExcelXmlStyle {
101
101
  const cloneFill = obj.clone(prevFill);
102
102
  cloneFill.patternFill[0].$.patternType = "solid";
103
103
  if (cloneFill.patternFill[0].fgColor == null) {
104
- cloneFill.patternFill[0].fgColor = [{ $: { rgb: style.background } }];
104
+ cloneFill.patternFill[0].fgColor = [{ $: { rgb: style.background.toUpperCase() } }];
105
105
  }
106
106
  else {
107
- cloneFill.patternFill[0].fgColor[0].$.rgb = style.background;
107
+ cloneFill.patternFill[0].fgColor[0].$.rgb = style.background.toUpperCase();
108
108
  }
109
109
  cloneXf.$.applyFill = "1";
110
110
  cloneXf.$.fillId = this._getSameOrCreateFill(cloneFill);
@@ -1 +1 @@
1
- {"version":3,"file":"excel-xml-style.js","sourceRoot":"","sources":["..\\..\\src\\xml\\excel-xml-style.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"excel-xml-style.js","sourceRoot":"","sources":["..\\..\\src\\xml\\excel-xml-style.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ export declare class ExcelXmlWorkbook implements ExcelXml {
8
8
  data: ExcelXmlWorkbookData;
9
9
  constructor(data?: ExcelXmlWorkbookData);
10
10
  get lastWsRelId(): number | undefined;
11
+ get lastSheetId(): number | undefined;
11
12
  get sheetNames(): string[];
12
13
  addWorksheet(name: string): this;
13
14
  cleanup(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"excel-xml-workbook.d.ts","sourceRoot":"","sources":["..\\..\\src\\xml\\excel-xml-workbook.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE/D;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,QAAQ;IAC/C,IAAI,EAAE,oBAAoB,CAAC;gBAEf,IAAI,CAAC,EAAE,oBAAoB;IAevC,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAKpC;IAED,IAAI,UAAU,IAAI,MAAM,EAAE,CAEzB;IAED,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAiBhC,OAAO,IAAI,IAAI;IAwBf,cAAc,IAAI,IAAI;IAItB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQlD,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIpD,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIpD,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IASvD,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,gBAAgB;CAIzB"}
1
+ {"version":3,"file":"excel-xml-workbook.d.ts","sourceRoot":"","sources":["..\\..\\src\\xml\\excel-xml-workbook.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAE/D;;;GAGG;AACH,qBAAa,gBAAiB,YAAW,QAAQ;IAC/C,IAAI,EAAE,oBAAoB,CAAC;gBAEf,IAAI,CAAC,EAAE,oBAAoB;IAevC,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAKpC;IAED,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAKpC;IAED,IAAI,UAAU,IAAI,MAAM,EAAE,CAEzB;IAED,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAkBhC,OAAO,IAAI,IAAI;IAwBf,cAAc,IAAI,IAAI;IAItB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQlD,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIpD,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIpD,oBAAoB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IASvD,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,gBAAgB;CAIzB"}
@@ -28,17 +28,25 @@ export class ExcelXmlWorkbook {
28
28
  const maxSheet = sheets.orderByDesc((sheet) => num.parseInt(sheet.$["r:id"])).first();
29
29
  return maxSheet ? num.parseInt(maxSheet.$["r:id"]) : undefined;
30
30
  }
31
+ get lastSheetId() {
32
+ const sheets = this.data.workbook.sheets?.[0].sheet;
33
+ if (!sheets || sheets.length === 0)
34
+ return undefined;
35
+ const maxSheet = sheets.orderByDesc((sheet) => num.parseInt(sheet.$.sheetId)).first();
36
+ return maxSheet ? num.parseInt(maxSheet.$.sheetId) : undefined;
37
+ }
31
38
  get sheetNames() {
32
39
  return this.data.workbook.sheets?.[0].sheet.map((item) => item.$.name) ?? [];
33
40
  }
34
41
  addWorksheet(name) {
35
42
  const replacedName = this._getReplacedName(name);
36
43
  const newWsRelId = (this.lastWsRelId ?? 0) + 1;
44
+ const newSheetId = (this.lastSheetId ?? 0) + 1;
37
45
  this.data.workbook.sheets = this.data.workbook.sheets ?? [{ sheet: [] }];
38
46
  this.data.workbook.sheets[0].sheet.push({
39
47
  $: {
40
48
  "name": replacedName,
41
- "sheetId": newWsRelId.toString(),
49
+ "sheetId": newSheetId.toString(),
42
50
  "r:id": `rId${newWsRelId}`,
43
51
  },
44
52
  });
@@ -1 +1 @@
1
- {"version":3,"file":"excel-xml-workbook.js","sourceRoot":"","sources":["..\\..\\src\\xml\\excel-xml-workbook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"excel-xml-workbook.js","sourceRoot":"","sources":["..\\..\\src\\xml\\excel-xml-workbook.ts"],"names":[],"mappings":"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"}
package/docs/core.md ADDED
@@ -0,0 +1,147 @@
1
+ # Core Classes
2
+
3
+ Core classes for reading and writing Excel workbooks, worksheets, rows, columns, and cells.
4
+
5
+ ## ExcelCell
6
+
7
+ Represents a single Excel cell. Provides value read/write, formula, style, and cell merge operations.
8
+
9
+ All methods are `async` because XML data (SharedStrings, Styles) is loaded on-demand for memory efficiency with large files.
10
+
11
+ ### Properties
12
+
13
+ | Property | Type | Description |
14
+ |---|---|---|
15
+ | `addr` | `readonly ExcelAddressPoint` | Cell address (0-based row/column index) |
16
+
17
+ ### Public Methods
18
+
19
+ | Method | Signature | Description |
20
+ |---|---|---|
21
+ | `setValue` | `(val: ExcelValueType) => Promise<void>` | Set cell value. Pass `undefined` to delete the cell. Handles string, number, boolean, DateOnly, DateTime, and Time types. Date/time values automatically apply the corresponding number format. |
22
+ | `getValue` | `() => Promise<ExcelValueType>` | Read cell value. Returns the typed value based on cell type and number format. SharedString references are resolved automatically. |
23
+ | `setFormula` | `(val: string \| undefined) => Promise<void>` | Set cell formula. Pass `undefined` to remove the formula. |
24
+ | `getFormula` | `() => Promise<string \| undefined>` | Get cell formula. |
25
+ | `merge` | `(r: number, c: number) => Promise<void>` | Merge from this cell to the given end coordinate (0-based). Example: `cell(0,0).merge(2,2)` merges A1:C3. |
26
+ | `getStyleId` | `() => Promise<string \| undefined>` | Get the raw style ID of the cell. |
27
+ | `setStyleId` | `(styleId: string \| undefined) => Promise<void>` | Set the raw style ID of the cell. |
28
+ | `setStyle` | `(opts: ExcelStyleOptions) => Promise<void>` | Set cell style (background, border, alignment, number format). |
29
+
30
+ ## ExcelRow
31
+
32
+ Represents a row in an Excel worksheet. Provides cell access.
33
+
34
+ ### Public Methods
35
+
36
+ | Method | Signature | Description |
37
+ |---|---|---|
38
+ | `cell` | `(c: number) => ExcelCell` | Get cell at column index (0-based). Cached per instance. |
39
+ | `getCells` | `() => Promise<ExcelCell[]>` | Get all cells in the row (within the worksheet's data range). |
40
+
41
+ ## ExcelCol
42
+
43
+ Represents a column in an Excel worksheet. Provides cell access and column width control.
44
+
45
+ ### Public Methods
46
+
47
+ | Method | Signature | Description |
48
+ |---|---|---|
49
+ | `cell` | `(r: number) => ExcelCell` | Get cell at row index (0-based). Cached per instance. |
50
+ | `getCells` | `() => Promise<ExcelCell[]>` | Get all cells in the column (within the worksheet's data range). |
51
+ | `setWidth` | `(size: number) => Promise<void>` | Set column width. |
52
+
53
+ ## ExcelWorksheet
54
+
55
+ Represents an Excel worksheet. Provides cell access, row/column copy, data table processing, image insertion, and view settings.
56
+
57
+ ### Public Methods
58
+
59
+ #### Name
60
+
61
+ | Method | Signature | Description |
62
+ |---|---|---|
63
+ | `getName` | `() => Promise<string>` | Get worksheet name. |
64
+ | `setName` | `(newName: string) => Promise<void>` | Rename the worksheet. |
65
+
66
+ #### Cell Access
67
+
68
+ | Method | Signature | Description |
69
+ |---|---|---|
70
+ | `row` | `(r: number) => ExcelRow` | Get row object (0-based). Cached per instance. |
71
+ | `cell` | `(r: number, c: number) => ExcelCell` | Get cell object (0-based row/column). |
72
+ | `col` | `(c: number) => ExcelCol` | Get column object (0-based). Cached per instance. |
73
+
74
+ #### Copy
75
+
76
+ | Method | Signature | Description |
77
+ |---|---|---|
78
+ | `copyRowStyle` | `(srcR: number, targetR: number) => Promise<void>` | Copy styles from source row to target row (all columns in range). |
79
+ | `copyCellStyle` | `(srcAddr: ExcelAddressPoint, targetAddr: ExcelAddressPoint) => Promise<void>` | Copy style from source cell to target cell. |
80
+ | `copyRow` | `(srcR: number, targetR: number) => Promise<void>` | Copy source row to target row (overwrite). |
81
+ | `copyCell` | `(srcAddr: ExcelAddressPoint, targetAddr: ExcelAddressPoint) => Promise<void>` | Copy source cell to target cell. |
82
+ | `insertCopyRow` | `(srcR: number, targetR: number) => Promise<void>` | Insert-copy source row at target position. Existing rows at and below target are shifted down by one. Merge cells spanning the insertion point are automatically extended. |
83
+
84
+ #### Range & Data
85
+
86
+ | Method | Signature | Description |
87
+ |---|---|---|
88
+ | `getRange` | `() => Promise<ExcelAddressRangePoint>` | Get the data range of the worksheet. |
89
+ | `getCells` | `() => Promise<ExcelCell[][]>` | Get all cells as a 2D array. |
90
+ | `getDataTable` | `(opt?: { headerRowIndex?: number; checkEndColIndex?: number; usableHeaderNameFn?: (headerName: string) => boolean }) => Promise<Record<string, ExcelValueType>[]>` | Read worksheet data as an array of records. First row (or `headerRowIndex`) is used as headers. `checkEndColIndex` stops reading when that column is empty. `usableHeaderNameFn` filters which headers to include. |
91
+ | `setDataMatrix` | `(matrix: ExcelValueType[][]) => Promise<void>` | Write a 2D array to the worksheet (row-major, index 0 is first row). |
92
+ | `setRecords` | `(records: Record<string, ExcelValueType>[]) => Promise<void>` | Write an array of records. Headers are auto-generated in the first row from record keys. |
93
+
94
+ #### View
95
+
96
+ | Method | Signature | Description |
97
+ |---|---|---|
98
+ | `setZoom` | `(percent: number) => Promise<void>` | Set zoom level (percent). |
99
+ | `freezeAt` | `(point: { r?: number; c?: number }) => Promise<void>` | Freeze rows/columns at the given position. |
100
+
101
+ #### Image
102
+
103
+ | Method | Signature | Description |
104
+ |---|---|---|
105
+ | `addImage` | `(opts: { bytes: Bytes; ext: string; from: { r: number; c: number; rOff?: number \| string; cOff?: number \| string }; to?: { r: number; c: number; rOff?: number \| string; cOff?: number \| string } }) => Promise<void>` | Insert an image. `bytes` is the image binary data, `ext` is the file extension (e.g., "png"). `from`/`to` define the anchor coordinates (0-based). Offsets are in EMU. If `to` is omitted, the image spans one cell from `from`. |
106
+
107
+ ## ExcelWorkbook
108
+
109
+ Excel workbook processing class. Manages ZIP resources internally. Supports `await using` for automatic resource cleanup.
110
+
111
+ ### Constructor
112
+
113
+ ```typescript
114
+ constructor(arg?: Blob | Bytes)
115
+ ```
116
+
117
+ - `arg`: Existing Excel file data (Blob or Uint8Array). Omit to create a new empty workbook.
118
+
119
+ ### Properties
120
+
121
+ | Property | Type | Description |
122
+ |---|---|---|
123
+ | `zipCache` | `readonly ZipCache` | Internal ZIP cache (advanced usage). |
124
+
125
+ ### Public Methods
126
+
127
+ #### Worksheet
128
+
129
+ | Method | Signature | Description |
130
+ |---|---|---|
131
+ | `getWorksheetNames` | `() => Promise<string[]>` | Get all worksheet names. |
132
+ | `addWorksheet` | `(name: string) => Promise<ExcelWorksheet>` | Create and return a new worksheet. |
133
+ | `getWorksheet` | `(nameOrIndex: string \| number) => Promise<ExcelWorksheet>` | Get worksheet by name or 0-based index. Throws if not found. |
134
+
135
+ #### Export
136
+
137
+ | Method | Signature | Description |
138
+ |---|---|---|
139
+ | `toBytes` | `() => Promise<Bytes>` | Export workbook as byte array. |
140
+ | `toBlob` | `() => Promise<Blob>` | Export workbook as Blob (MIME: `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`). |
141
+
142
+ #### Lifecycle
143
+
144
+ | Method | Signature | Description |
145
+ |---|---|---|
146
+ | `close` | `() => Promise<void>` | Release resources. Safe to call on already-closed workbooks (no-op). After calling, the instance cannot be used. |
147
+ | `[Symbol.asyncDispose]` | `() => Promise<void>` | Async dispose support (`await using`). Calls `close()`. |
package/docs/types.md ADDED
@@ -0,0 +1,286 @@
1
+ # Types & Utilities
2
+
3
+ Types, enums, and utility functions for Excel file processing.
4
+
5
+ ## XML Data Types
6
+
7
+ Internal XML structure types used by the library to represent .xlsx file contents.
8
+
9
+ ### ExcelXmlContentTypeData
10
+
11
+ Represents `[Content_Types].xml` in the .xlsx archive.
12
+
13
+ | Field | Type | Description |
14
+ |---|---|---|
15
+ | `Types.$` | `{ xmlns: string }` | XML namespace |
16
+ | `Types.Default` | `Array<{ $: { Extension: string; ContentType: string } }>` | Default content type mappings by file extension |
17
+ | `Types.Override` | `Array<{ $: { PartName: string; ContentType: string } }>` | Override content type mappings by part name |
18
+
19
+ ### ExcelXmlRelationshipData
20
+
21
+ Represents a `_rels/*.rels` relationship file.
22
+
23
+ | Field | Type | Description |
24
+ |---|---|---|
25
+ | `Relationships.$` | `{ xmlns: string }` | XML namespace |
26
+ | `Relationships.Relationship?` | `ExcelRelationshipData[]` | Array of relationship entries |
27
+
28
+ ### ExcelRelationshipData
29
+
30
+ A single relationship entry.
31
+
32
+ | Field | Type | Description |
33
+ |---|---|---|
34
+ | `$.Id` | `string` | Relationship ID (e.g., "rId1") |
35
+ | `$.Target` | `string` | Target path |
36
+ | `$.Type` | `string` | Relationship type URI |
37
+
38
+ ### ExcelXmlWorkbookData
39
+
40
+ Represents `xl/workbook.xml`.
41
+
42
+ | Field | Type | Description |
43
+ |---|---|---|
44
+ | `workbook.$` | `{ xmlns: string; "xmlns:r"?: string }` | XML namespaces |
45
+ | `workbook.bookViews?` | `[{ workbookView: [{}] }]` | Workbook view settings |
46
+ | `workbook.sheets?` | `[{ sheet: Array<{ $: { name: string; sheetId: string; "r:id": string } }> }]` | Sheet definitions |
47
+
48
+ ### ExcelXmlWorksheetData
49
+
50
+ Represents `xl/worksheets/sheet*.xml`.
51
+
52
+ | Field | Type | Description |
53
+ |---|---|---|
54
+ | `worksheet.$` | `{ xmlns: string; "xmlns:r"?: string }` | XML namespaces |
55
+ | `worksheet.dimension?` | `[{ $: { ref: string } }]` | Used range reference (e.g., "A1:C10") |
56
+ | `worksheet.sheetViews?` | See source | Sheet view settings (zoom, freeze panes) |
57
+ | `worksheet.sheetFormatPr?` | `[{ $: { defaultRowHeight: string } }]` | Default row height |
58
+ | `worksheet.cols?` | `[{ col: Array<{ $: { min: string; max: string; width?: string; bestFit?: string; customWidth?: string } }> }]` | Column width definitions |
59
+ | `worksheet.sheetData` | `[{ row?: ExcelRowData[] }]` | Row data (required) |
60
+ | `worksheet.mergeCells?` | `[{ $: { count: string }; mergeCell: Array<{ $: { ref: string } }> }]` | Merged cell ranges |
61
+ | `worksheet.drawing?` | `Array<{ $: { "r:id": string } }>` | Drawing references |
62
+
63
+ ### ExcelRowData
64
+
65
+ A single row in worksheet data.
66
+
67
+ | Field | Type | Description |
68
+ |---|---|---|
69
+ | `$.r` | `string` | Row address (1-based, e.g., "1") |
70
+ | `c?` | `ExcelCellData[]` | Cell data array |
71
+
72
+ ### ExcelCellData
73
+
74
+ A single cell in row data.
75
+
76
+ | Field | Type | Description |
77
+ |---|---|---|
78
+ | `$.r` | `string` | Cell address (e.g., "A1") |
79
+ | `$.s?` | `string` | Style ID |
80
+ | `$.t?` | `ExcelCellType` | Cell type |
81
+ | `v?` | `[string]` | Cell value |
82
+ | `f?` | `[string]` | Cell formula |
83
+ | `is?` | `Array<{ t?: (string \| { _?: string })[] }>` | Inline string data |
84
+
85
+ ### ExcelXmlDrawingData
86
+
87
+ Represents `xl/drawings/drawing*.xml`.
88
+
89
+ | Field | Type | Description |
90
+ |---|---|---|
91
+ | `wsDr.$` | `{ xmlns: string; "xmlns:a"?: string; "xmlns:r"?: string }` | XML namespaces |
92
+ | `wsDr.twoCellAnchor?` | Array | Two-cell anchor picture definitions (from/to coordinates, picture properties, blip fill) |
93
+
94
+ ### ExcelXmlSharedStringData
95
+
96
+ Represents `xl/sharedStrings.xml`.
97
+
98
+ | Field | Type | Description |
99
+ |---|---|---|
100
+ | `sst.$` | `{ xmlns: string }` | XML namespace |
101
+ | `sst.si?` | `ExcelXmlSharedStringDataSi[]` | Shared string items |
102
+
103
+ ### ExcelXmlSharedStringDataSi
104
+
105
+ ```typescript
106
+ type ExcelXmlSharedStringDataSi =
107
+ | { t: ExcelXmlSharedStringDataText }
108
+ | { r: { t: ExcelXmlSharedStringDataText }[] };
109
+ ```
110
+
111
+ Either a plain text item (`t`) or a rich text item (`r`) with multiple runs.
112
+
113
+ ### ExcelXmlSharedStringDataText
114
+
115
+ ```typescript
116
+ type ExcelXmlSharedStringDataText = [string | { $: { space?: "preserve" }; _?: string }];
117
+ ```
118
+
119
+ A single-element tuple: either a plain string or an object with optional space-preservation attribute.
120
+
121
+ ### ExcelXmlStyleData
122
+
123
+ Represents `xl/styles.xml`.
124
+
125
+ | Field | Type | Description |
126
+ |---|---|---|
127
+ | `styleSheet.$` | `{ xmlns: string }` | XML namespace |
128
+ | `styleSheet.numFmts?` | `[{ $: { count: string }; numFmt?: Array<{ $: { numFmtId: string; formatCode: string } }> }]` | Number format definitions |
129
+ | `styleSheet.fonts` | `[{ $: { count: string }; font: {}[] }]` | Font definitions |
130
+ | `styleSheet.fills` | `[{ $: { count: string }; fill: ExcelXmlStyleDataFill[] }]` | Fill definitions |
131
+ | `styleSheet.borders` | `[{ $: { count: string }; border: ExcelXmlStyleDataBorder[] }]` | Border definitions |
132
+ | `styleSheet.cellXfs` | `[{ $: { count: string }; xf: ExcelXmlStyleDataXf[] }]` | Cell format definitions |
133
+
134
+ ### ExcelXmlStyleDataXf
135
+
136
+ | Field | Type | Description |
137
+ |---|---|---|
138
+ | `$.numFmtId?` | `string` | Number format ID |
139
+ | `$.fontId?` | `string` | Font ID |
140
+ | `$.fillId?` | `string` | Fill ID |
141
+ | `$.borderId?` | `string` | Border ID |
142
+ | `$.xfId?` | `string` | Parent xf ID |
143
+ | `$.applyNumberFormat?` | `string` | Whether number format is applied |
144
+ | `$.applyFont?` | `string` | Whether font is applied |
145
+ | `$.applyAlignment?` | `string` | Whether alignment is applied |
146
+ | `$.applyFill?` | `string` | Whether fill is applied |
147
+ | `$.applyBorder?` | `string` | Whether border is applied |
148
+ | `alignment?` | `[{ $: { horizontal?: "center" \| "left" \| "right"; vertical?: "center" \| "top" \| "bottom" } }]` | Alignment settings |
149
+
150
+ ### ExcelXmlStyleDataFill
151
+
152
+ | Field | Type | Description |
153
+ |---|---|---|
154
+ | `patternFill` | `[{ $: { patternType: "none" \| "solid" \| "gray125" }; fgColor?: [{ $: { rgb: string } }] }]` | Pattern fill with optional foreground color (ARGB) |
155
+
156
+ ### ExcelXmlStyleDataBorder
157
+
158
+ | Field | Type | Description |
159
+ |---|---|---|
160
+ | `top?` | `[{ $: { style: "thin" \| "medium" }; color?: [{ $: { rgb: string } }] }]` | Top border |
161
+ | `left?` | `[{ $: { style: "thin" \| "medium" }; color?: [{ $: { rgb: string } }] }]` | Left border |
162
+ | `right?` | `[{ $: { style: "thin" \| "medium" }; color?: [{ $: { rgb: string } }] }]` | Right border |
163
+ | `bottom?` | `[{ $: { style: "thin" \| "medium" }; color?: [{ $: { rgb: string } }] }]` | Bottom border |
164
+
165
+ ## Value Types
166
+
167
+ ### ExcelValueType
168
+
169
+ ```typescript
170
+ type ExcelValueType = number | string | DateOnly | DateTime | Time | boolean | undefined;
171
+ ```
172
+
173
+ Union of all supported cell value types. `DateOnly`, `DateTime`, and `Time` are from `@simplysm/core-common`.
174
+
175
+ ### ExcelNumberFormat
176
+
177
+ ```typescript
178
+ type ExcelNumberFormat = "number" | "string" | "DateOnly" | "DateTime" | "Time";
179
+ ```
180
+
181
+ Named number format categories for cell formatting.
182
+
183
+ ### ExcelCellType
184
+
185
+ ```typescript
186
+ type ExcelCellType = "s" | "b" | "str" | "n" | "inlineStr" | "e";
187
+ ```
188
+
189
+ | Value | Description |
190
+ |---|---|
191
+ | `"s"` | Shared string |
192
+ | `"b"` | Boolean |
193
+ | `"str"` | Formula result string |
194
+ | `"n"` | Number |
195
+ | `"inlineStr"` | Inline string (rich text) |
196
+ | `"e"` | Error |
197
+
198
+ ## Address Types
199
+
200
+ ### ExcelAddressPoint
201
+
202
+ A cell coordinate (0-based).
203
+
204
+ | Field | Type | Description |
205
+ |---|---|---|
206
+ | `r` | `number` | Row index (0-based) |
207
+ | `c` | `number` | Column index (0-based) |
208
+
209
+ ### ExcelAddressRangePoint
210
+
211
+ A rectangular cell range.
212
+
213
+ | Field | Type | Description |
214
+ |---|---|---|
215
+ | `s` | `ExcelAddressPoint` | Start (top-left) coordinate |
216
+ | `e` | `ExcelAddressPoint` | End (bottom-right) coordinate |
217
+
218
+ ## ExcelXml Interface
219
+
220
+ ```typescript
221
+ interface ExcelXml {
222
+ readonly data: unknown;
223
+ cleanup(): void;
224
+ }
225
+ ```
226
+
227
+ Internal interface for XML document wrappers.
228
+
229
+ | Member | Type | Description |
230
+ |---|---|---|
231
+ | `data` | `readonly unknown` | Raw XML data |
232
+ | `cleanup()` | `void` | Release resources |
233
+
234
+ ## Style Types
235
+
236
+ ### ExcelBorderPosition
237
+
238
+ ```typescript
239
+ type ExcelBorderPosition = "left" | "right" | "top" | "bottom";
240
+ ```
241
+
242
+ ### ExcelHorizontalAlign
243
+
244
+ ```typescript
245
+ type ExcelHorizontalAlign = "center" | "left" | "right";
246
+ ```
247
+
248
+ ### ExcelVerticalAlign
249
+
250
+ ```typescript
251
+ type ExcelVerticalAlign = "center" | "top" | "bottom";
252
+ ```
253
+
254
+ ### ExcelStyleOptions
255
+
256
+ Cell style options.
257
+
258
+ | Field | Type | Description |
259
+ |---|---|---|
260
+ | `background?` | `string` | Background color in ARGB format (e.g., `"00FF0000"` for red) |
261
+ | `border?` | `ExcelBorderPosition[]` | Border positions to apply |
262
+ | `horizontalAlign?` | `ExcelHorizontalAlign` | Horizontal alignment |
263
+ | `verticalAlign?` | `ExcelVerticalAlign` | Vertical alignment |
264
+ | `numberFormat?` | `ExcelNumberFormat` | Number format |
265
+
266
+ ## ExcelUtils
267
+
268
+ Static utility class for cell address conversion, date/number conversion, and number format handling.
269
+
270
+ ### Static Methods
271
+
272
+ | Method | Signature | Description |
273
+ |---|---|---|
274
+ | `stringifyAddr` | `(point: ExcelAddressPoint) => string` | Convert cell coordinate to "A1" format string |
275
+ | `stringifyRowAddr` | `(r: number) => string` | Convert 0-based row index to row address (e.g., 0 -> "1") |
276
+ | `stringifyColAddr` | `(c: number) => string` | Convert 0-based column index to column address (e.g., 0 -> "A", 26 -> "AA") |
277
+ | `parseRowAddr` | `(addr: string) => number` | Extract 0-based row index from cell address (e.g., "A3" -> 2) |
278
+ | `parseColAddr` | `(addr: string) => number` | Extract 0-based column index from cell address (e.g., "B3" -> 1) |
279
+ | `parseCellAddr` | `(addr: string) => ExcelAddressPoint` | Parse cell address to coordinate (e.g., "B3" -> `{r: 2, c: 1}`) |
280
+ | `parseRangeAddr` | `(rangeAddr: string) => ExcelAddressRangePoint` | Parse range address (e.g., "A1:C3" -> `{s: {r:0,c:0}, e: {r:2,c:2}}`) |
281
+ | `stringifyRangeAddr` | `(point: ExcelAddressRangePoint) => string` | Convert range coordinate to address string |
282
+ | `convertTimeTickToNumber` | `(tick: number) => number` | Convert JS timestamp (ms) to Excel date number |
283
+ | `convertNumberToTimeTick` | `(value: number) => number` | Convert Excel date number to JS timestamp (ms) |
284
+ | `convertNumFmtCodeToName` | `(numFmtCode: string) => ExcelNumberFormat` | Convert number format code to format name |
285
+ | `convertNumFmtIdToName` | `(numFmtId: number) => ExcelNumberFormat` | Convert built-in number format ID to format name |
286
+ | `convertNumFmtNameToId` | `(numFmtName: ExcelNumberFormat) => number` | Convert format name to built-in format ID |
@@ -0,0 +1,70 @@
1
+ # ExcelWrapper
2
+
3
+ Zod schema-based typed Excel wrapper for type-safe reading and writing.
4
+
5
+ ## ExcelWrapper\<TSchema\>
6
+
7
+ ```typescript
8
+ class ExcelWrapper<TSchema extends z.ZodObject<z.ZodRawShape>>
9
+ ```
10
+
11
+ Generic class parameterized by a Zod object schema. The schema defines the record structure and uses `.describe()` to set Excel header names.
12
+
13
+ ### Constructor
14
+
15
+ ```typescript
16
+ constructor(schema: TSchema)
17
+ ```
18
+
19
+ | Parameter | Type | Description |
20
+ |---|---|---|
21
+ | `schema` | `TSchema` (extends `z.ZodObject`) | Zod schema defining the record structure. Use `.describe("Header Name")` on each field to set the Excel column header. |
22
+
23
+ ### Public Methods
24
+
25
+ | Method | Signature | Description |
26
+ |---|---|---|
27
+ | `read` | `(file: Bytes \| Blob, wsNameOrIndex?: string \| number, options?: { excludes?: (keyof z.infer<TSchema>)[] }) => Promise<z.infer<TSchema>[]>` | Read an Excel file into a typed record array. Validates each row against the Zod schema. Throws on validation failure or when no data is found. Default worksheet: index 0. |
28
+ | `write` | `(wsName: string, records: Partial<z.infer<TSchema>>[], options?: { excludes?: (keyof z.infer<TSchema>)[] }) => Promise<ExcelWorkbook>` | Convert records to an Excel workbook. Returns an `ExcelWorkbook` -- caller is responsible for resource management (`await using` or `close()`). Automatically: writes headers from schema descriptions, applies borders to all cells, highlights required field headers in yellow, sets 85% zoom, freezes the header row. |
29
+
30
+ ### Read Behavior
31
+
32
+ - Maps Excel headers to schema fields using `.describe()` display names
33
+ - Skips rows where all values are null/empty
34
+ - Converts cell values to match schema types (string, number, boolean, DateOnly, DateTime, Time)
35
+ - Boolean fields default to `false` when empty
36
+ - Validates each row with `schema.safeParse()` and throws with detailed error messages on failure
37
+
38
+ ### Write Behavior
39
+
40
+ - Header row uses schema field descriptions (falls back to field key)
41
+ - Required non-boolean fields get yellow background highlight (`00FFFF00`)
42
+ - All data cells get borders on all four sides
43
+ - Sets zoom to 85% and freezes the header row
44
+
45
+ ### Usage Example
46
+
47
+ ```typescript
48
+ import { z } from "zod";
49
+ import { ExcelWrapper } from "@simplysm/excel";
50
+
51
+ const schema = z.object({
52
+ name: z.string().describe("Name"),
53
+ age: z.number().describe("Age"),
54
+ active: z.boolean().describe("Active").default(false),
55
+ birthDate: z.instanceof(DateOnly).optional().describe("Birth Date"),
56
+ });
57
+
58
+ const wrapper = new ExcelWrapper(schema);
59
+
60
+ // Read
61
+ const records = await wrapper.read(fileBytes);
62
+ // records: { name: string; age: number; active: boolean; birthDate?: DateOnly }[]
63
+
64
+ // Write
65
+ await using wb = await wrapper.write("Sheet1", [
66
+ { name: "Alice", age: 30, active: true },
67
+ { name: "Bob", age: 25 },
68
+ ]);
69
+ const bytes = await wb.toBytes();
70
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@simplysm/excel",
3
- "version": "14.0.1",
3
+ "version": "14.0.4",
4
4
  "description": "심플리즘 패키지 - 엑셀 (neutral)",
5
5
  "author": "심플리즘",
6
6
  "license": "Apache-2.0",
@@ -14,12 +14,16 @@
14
14
  "types": "./dist/index.d.ts",
15
15
  "files": [
16
16
  "dist",
17
- "src"
17
+ "src",
18
+ "docs"
18
19
  ],
19
20
  "sideEffects": false,
21
+ "devDependencies": {
22
+ "@types/node": "^20.19.37"
23
+ },
20
24
  "dependencies": {
21
25
  "mime": "^4.1.0",
22
26
  "zod": "^4.3.6",
23
- "@simplysm/core-common": "14.0.1"
27
+ "@simplysm/core-common": "14.0.4"
24
28
  }
25
29
  }
@@ -136,9 +136,9 @@ export class ExcelXmlStyle implements ExcelXml {
136
136
  cloneFill.patternFill[0].$.patternType = "solid";
137
137
 
138
138
  if (cloneFill.patternFill[0].fgColor == null) {
139
- cloneFill.patternFill[0].fgColor = [{ $: { rgb: style.background } }];
139
+ cloneFill.patternFill[0].fgColor = [{ $: { rgb: style.background.toUpperCase() } }];
140
140
  } else {
141
- cloneFill.patternFill[0].fgColor[0].$.rgb = style.background;
141
+ cloneFill.patternFill[0].fgColor[0].$.rgb = style.background.toUpperCase();
142
142
  }
143
143
 
144
144
  cloneXf.$.applyFill = "1";
@@ -31,6 +31,13 @@ export class ExcelXmlWorkbook implements ExcelXml {
31
31
  return maxSheet ? num.parseInt(maxSheet.$["r:id"]) : undefined;
32
32
  }
33
33
 
34
+ get lastSheetId(): number | undefined {
35
+ const sheets = this.data.workbook.sheets?.[0].sheet;
36
+ if (!sheets || sheets.length === 0) return undefined;
37
+ const maxSheet = sheets.orderByDesc((sheet) => num.parseInt(sheet.$.sheetId)!).first();
38
+ return maxSheet ? num.parseInt(maxSheet.$.sheetId) : undefined;
39
+ }
40
+
34
41
  get sheetNames(): string[] {
35
42
  return this.data.workbook.sheets?.[0].sheet.map((item) => item.$.name) ?? [];
36
43
  }
@@ -39,12 +46,13 @@ export class ExcelXmlWorkbook implements ExcelXml {
39
46
  const replacedName = this._getReplacedName(name);
40
47
 
41
48
  const newWsRelId = (this.lastWsRelId ?? 0) + 1;
49
+ const newSheetId = (this.lastSheetId ?? 0) + 1;
42
50
 
43
51
  this.data.workbook.sheets = this.data.workbook.sheets ?? [{ sheet: [] }];
44
52
  this.data.workbook.sheets[0].sheet.push({
45
53
  $: {
46
54
  "name": replacedName,
47
- "sheetId": newWsRelId.toString(),
55
+ "sheetId": newSheetId.toString(),
48
56
  "r:id": `rId${newWsRelId}`,
49
57
  },
50
58
  });