@simplysm/excel 1.0.138 → 13.0.0-beta.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.
Files changed (207) hide show
  1. package/.cache/typecheck-browser.tsbuildinfo +1 -0
  2. package/.cache/typecheck-node.tsbuildinfo +1 -0
  3. package/.cache/typecheck-tests-browser.tsbuildinfo +1 -0
  4. package/.cache/typecheck-tests-node.tsbuildinfo +1 -0
  5. package/README.md +491 -0
  6. package/dist/core-common/src/common.types.d.ts +74 -0
  7. package/dist/core-common/src/common.types.d.ts.map +1 -0
  8. package/dist/core-common/src/env.d.ts +6 -0
  9. package/dist/core-common/src/env.d.ts.map +1 -0
  10. package/dist/core-common/src/errors/argument-error.d.ts +25 -0
  11. package/dist/core-common/src/errors/argument-error.d.ts.map +1 -0
  12. package/dist/core-common/src/errors/not-implemented-error.d.ts +29 -0
  13. package/dist/core-common/src/errors/not-implemented-error.d.ts.map +1 -0
  14. package/dist/core-common/src/errors/sd-error.d.ts +27 -0
  15. package/dist/core-common/src/errors/sd-error.d.ts.map +1 -0
  16. package/dist/core-common/src/errors/timeout-error.d.ts +31 -0
  17. package/dist/core-common/src/errors/timeout-error.d.ts.map +1 -0
  18. package/dist/core-common/src/extensions/arr-ext.d.ts +15 -0
  19. package/dist/core-common/src/extensions/arr-ext.d.ts.map +1 -0
  20. package/dist/core-common/src/extensions/arr-ext.helpers.d.ts +19 -0
  21. package/dist/core-common/src/extensions/arr-ext.helpers.d.ts.map +1 -0
  22. package/dist/core-common/src/extensions/arr-ext.types.d.ts +215 -0
  23. package/dist/core-common/src/extensions/arr-ext.types.d.ts.map +1 -0
  24. package/dist/core-common/src/extensions/map-ext.d.ts +57 -0
  25. package/dist/core-common/src/extensions/map-ext.d.ts.map +1 -0
  26. package/dist/core-common/src/extensions/set-ext.d.ts +36 -0
  27. package/dist/core-common/src/extensions/set-ext.d.ts.map +1 -0
  28. package/dist/core-common/src/features/debounce-queue.d.ts +53 -0
  29. package/dist/core-common/src/features/debounce-queue.d.ts.map +1 -0
  30. package/dist/core-common/src/features/event-emitter.d.ts +66 -0
  31. package/dist/core-common/src/features/event-emitter.d.ts.map +1 -0
  32. package/dist/core-common/src/features/serial-queue.d.ts +47 -0
  33. package/dist/core-common/src/features/serial-queue.d.ts.map +1 -0
  34. package/dist/core-common/src/index.d.ts +32 -0
  35. package/dist/core-common/src/index.d.ts.map +1 -0
  36. package/dist/core-common/src/types/date-only.d.ts +152 -0
  37. package/dist/core-common/src/types/date-only.d.ts.map +1 -0
  38. package/dist/core-common/src/types/date-time.d.ts +96 -0
  39. package/dist/core-common/src/types/date-time.d.ts.map +1 -0
  40. package/dist/core-common/src/types/lazy-gc-map.d.ts +80 -0
  41. package/dist/core-common/src/types/lazy-gc-map.d.ts.map +1 -0
  42. package/dist/core-common/src/types/time.d.ts +68 -0
  43. package/dist/core-common/src/types/time.d.ts.map +1 -0
  44. package/dist/core-common/src/types/uuid.d.ts +35 -0
  45. package/dist/core-common/src/types/uuid.d.ts.map +1 -0
  46. package/dist/core-common/src/utils/bytes.d.ts +51 -0
  47. package/dist/core-common/src/utils/bytes.d.ts.map +1 -0
  48. package/dist/core-common/src/utils/date-format.d.ts +90 -0
  49. package/dist/core-common/src/utils/date-format.d.ts.map +1 -0
  50. package/dist/core-common/src/utils/json.d.ts +34 -0
  51. package/dist/core-common/src/utils/json.d.ts.map +1 -0
  52. package/dist/core-common/src/utils/num.d.ts +60 -0
  53. package/dist/core-common/src/utils/num.d.ts.map +1 -0
  54. package/dist/core-common/src/utils/obj.d.ts +258 -0
  55. package/dist/core-common/src/utils/obj.d.ts.map +1 -0
  56. package/dist/core-common/src/utils/path.d.ts +23 -0
  57. package/dist/core-common/src/utils/path.d.ts.map +1 -0
  58. package/dist/core-common/src/utils/primitive.d.ts +18 -0
  59. package/dist/core-common/src/utils/primitive.d.ts.map +1 -0
  60. package/dist/core-common/src/utils/str.d.ts +103 -0
  61. package/dist/core-common/src/utils/str.d.ts.map +1 -0
  62. package/dist/core-common/src/utils/template-strings.d.ts +84 -0
  63. package/dist/core-common/src/utils/template-strings.d.ts.map +1 -0
  64. package/dist/core-common/src/utils/transferable.d.ts +47 -0
  65. package/dist/core-common/src/utils/transferable.d.ts.map +1 -0
  66. package/dist/core-common/src/utils/wait.d.ts +19 -0
  67. package/dist/core-common/src/utils/wait.d.ts.map +1 -0
  68. package/dist/core-common/src/utils/xml.d.ts +36 -0
  69. package/dist/core-common/src/utils/xml.d.ts.map +1 -0
  70. package/dist/core-common/src/zip/sd-zip.d.ts +80 -0
  71. package/dist/core-common/src/zip/sd-zip.d.ts.map +1 -0
  72. package/dist/excel/src/excel-cell.d.ts +68 -0
  73. package/dist/excel/src/excel-cell.d.ts.map +1 -0
  74. package/dist/excel/src/excel-col.d.ts +19 -0
  75. package/dist/excel/src/excel-col.d.ts.map +1 -0
  76. package/dist/excel/src/excel-row.d.ts +17 -0
  77. package/dist/excel/src/excel-row.d.ts.map +1 -0
  78. package/dist/excel/src/excel-workbook.d.ts +66 -0
  79. package/dist/excel/src/excel-workbook.d.ts.map +1 -0
  80. package/dist/excel/src/excel-worksheet.d.ts +102 -0
  81. package/dist/excel/src/excel-worksheet.d.ts.map +1 -0
  82. package/dist/excel/src/excel-wrapper.d.ts +42 -0
  83. package/dist/excel/src/excel-wrapper.d.ts.map +1 -0
  84. package/dist/excel/src/index.d.ts +9 -0
  85. package/dist/excel/src/index.d.ts.map +1 -0
  86. package/dist/excel/src/types.d.ts +445 -0
  87. package/dist/excel/src/types.d.ts.map +1 -0
  88. package/dist/excel/src/utils/excel-utils.d.ts +50 -0
  89. package/dist/excel/src/utils/excel-utils.d.ts.map +1 -0
  90. package/dist/excel/src/utils/zip-cache.d.ts +23 -0
  91. package/dist/excel/src/utils/zip-cache.d.ts.map +1 -0
  92. package/dist/excel/src/xml/excel-xml-content-type.d.ts +12 -0
  93. package/dist/excel/src/xml/excel-xml-content-type.d.ts.map +1 -0
  94. package/dist/excel/src/xml/excel-xml-drawing.d.ts +26 -0
  95. package/dist/excel/src/xml/excel-xml-drawing.d.ts.map +1 -0
  96. package/dist/excel/src/xml/excel-xml-relationship.d.ts +18 -0
  97. package/dist/excel/src/xml/excel-xml-relationship.d.ts.map +1 -0
  98. package/dist/excel/src/xml/excel-xml-shared-string.d.ts +19 -0
  99. package/dist/excel/src/xml/excel-xml-shared-string.d.ts.map +1 -0
  100. package/dist/excel/src/xml/excel-xml-style.d.ts +31 -0
  101. package/dist/excel/src/xml/excel-xml-style.d.ts.map +1 -0
  102. package/dist/excel/src/xml/excel-xml-unknown.d.ts +11 -0
  103. package/dist/excel/src/xml/excel-xml-unknown.d.ts.map +1 -0
  104. package/dist/excel/src/xml/excel-xml-workbook.d.ts +22 -0
  105. package/dist/excel/src/xml/excel-xml-workbook.d.ts.map +1 -0
  106. package/dist/excel/src/xml/excel-xml-worksheet.d.ts +103 -0
  107. package/dist/excel/src/xml/excel-xml-worksheet.d.ts.map +1 -0
  108. package/dist/excel-cell.js +261 -0
  109. package/dist/excel-cell.js.map +7 -0
  110. package/dist/excel-col.js +36 -0
  111. package/dist/excel-col.js.map +7 -0
  112. package/dist/excel-row.js +31 -0
  113. package/dist/excel-row.js.map +7 -0
  114. package/dist/excel-workbook.js +137 -0
  115. package/dist/excel-workbook.js.map +7 -0
  116. package/dist/excel-worksheet.js +279 -0
  117. package/dist/excel-worksheet.js.map +7 -0
  118. package/dist/excel-wrapper.js +220 -0
  119. package/dist/excel-wrapper.js.map +7 -0
  120. package/dist/index.js +9 -15
  121. package/dist/index.js.map +7 -1
  122. package/dist/types.js +1 -0
  123. package/dist/types.js.map +7 -0
  124. package/dist/utils/excel-utils.js +162 -0
  125. package/dist/utils/excel-utils.js.map +7 -0
  126. package/dist/utils/zip-cache.js +74 -0
  127. package/dist/utils/zip-cache.js.map +7 -0
  128. package/dist/xml/excel-xml-content-type.js +57 -0
  129. package/dist/xml/excel-xml-content-type.js.map +7 -0
  130. package/dist/xml/excel-xml-drawing.js +77 -0
  131. package/dist/xml/excel-xml-drawing.js.map +7 -0
  132. package/dist/xml/excel-xml-relationship.js +72 -0
  133. package/dist/xml/excel-xml-relationship.js.map +7 -0
  134. package/dist/xml/excel-xml-shared-string.js +61 -0
  135. package/dist/xml/excel-xml-shared-string.js.map +7 -0
  136. package/dist/xml/excel-xml-style.js +313 -0
  137. package/dist/xml/excel-xml-style.js.map +7 -0
  138. package/dist/xml/excel-xml-unknown.js +11 -0
  139. package/dist/xml/excel-xml-unknown.js.map +7 -0
  140. package/dist/xml/excel-xml-workbook.js +94 -0
  141. package/dist/xml/excel-xml-workbook.js.map +7 -0
  142. package/dist/xml/excel-xml-worksheet.js +405 -0
  143. package/dist/xml/excel-xml-worksheet.js.map +7 -0
  144. package/package.json +13 -7
  145. package/src/excel-cell.ts +326 -0
  146. package/src/excel-col.ts +43 -0
  147. package/src/excel-row.ts +37 -0
  148. package/src/excel-workbook.ts +206 -0
  149. package/src/excel-worksheet.ts +380 -0
  150. package/src/excel-wrapper.ts +219 -0
  151. package/src/index.ts +13 -9
  152. package/src/types.ts +396 -0
  153. package/src/utils/excel-utils.ts +201 -0
  154. package/src/utils/zip-cache.ts +103 -0
  155. package/src/xml/excel-xml-content-type.ts +64 -0
  156. package/src/xml/excel-xml-drawing.ts +87 -0
  157. package/src/xml/excel-xml-relationship.ts +86 -0
  158. package/src/xml/excel-xml-shared-string.ts +80 -0
  159. package/src/xml/excel-xml-style.ts +393 -0
  160. package/src/xml/excel-xml-unknown.ts +11 -0
  161. package/src/xml/excel-xml-workbook.ts +112 -0
  162. package/src/xml/excel-xml-worksheet.ts +544 -0
  163. package/tests/excel-cell.spec.ts +407 -0
  164. package/tests/excel-col.spec.ts +112 -0
  165. package/tests/excel-row.spec.ts +71 -0
  166. package/tests/excel-workbook.spec.ts +166 -0
  167. package/tests/excel-worksheet.spec.ts +389 -0
  168. package/tests/excel-wrapper.spec.ts +275 -0
  169. package/tests/fixtures/logo.png +0 -0
  170. package/tests/image-insert.spec.ts +188 -0
  171. package/tests/utils/excel-utils.spec.ts +240 -0
  172. package/dist/ExcelCell.d.ts +0 -13
  173. package/dist/ExcelCell.js +0 -161
  174. package/dist/ExcelCell.js.map +0 -1
  175. package/dist/ExcelCellStyle.d.ts +0 -31
  176. package/dist/ExcelCellStyle.js +0 -312
  177. package/dist/ExcelCellStyle.js.map +0 -1
  178. package/dist/ExcelColumn.d.ts +0 -8
  179. package/dist/ExcelColumn.js +0 -49
  180. package/dist/ExcelColumn.js.map +0 -1
  181. package/dist/ExcelRow.d.ts +0 -7
  182. package/dist/ExcelRow.js +0 -21
  183. package/dist/ExcelRow.js.map +0 -1
  184. package/dist/ExcelWorkbook.d.ts +0 -24
  185. package/dist/ExcelWorkbook.js +0 -418
  186. package/dist/ExcelWorkbook.js.map +0 -1
  187. package/dist/ExcelWorksheet.d.ts +0 -14
  188. package/dist/ExcelWorksheet.js +0 -31
  189. package/dist/ExcelWorksheet.js.map +0 -1
  190. package/dist/index.d.ts +0 -9
  191. package/dist/utils/ExcelUtils.d.ts +0 -14
  192. package/dist/utils/ExcelUtils.js +0 -66
  193. package/dist/utils/ExcelUtils.js.map +0 -1
  194. package/dist/utils/XmlConvert.d.ts +0 -4
  195. package/dist/utils/XmlConvert.js +0 -64
  196. package/dist/utils/XmlConvert.js.map +0 -1
  197. package/src/ExcelCell.ts +0 -163
  198. package/src/ExcelCellStyle.ts +0 -297
  199. package/src/ExcelColumn.ts +0 -46
  200. package/src/ExcelRow.ts +0 -17
  201. package/src/ExcelWorkbook.ts +0 -369
  202. package/src/ExcelWorksheet.ts +0 -27
  203. package/src/utils/ExcelUtils.ts +0 -68
  204. package/src/utils/XmlConvert.ts +0 -20
  205. package/tsconfig.build.json +0 -18
  206. package/tsconfig.json +0 -18
  207. package/tslint.json +0 -5
@@ -0,0 +1,445 @@
1
+ import type { DateOnly, DateTime, Time } from "@simplysm/core-common";
2
+ export interface ExcelXmlContentTypeData {
3
+ Types: {
4
+ $: {
5
+ xmlns: string;
6
+ };
7
+ Default: {
8
+ $: {
9
+ Extension: string;
10
+ ContentType: string;
11
+ };
12
+ }[];
13
+ Override: {
14
+ $: {
15
+ PartName: string;
16
+ ContentType: string;
17
+ };
18
+ }[];
19
+ };
20
+ }
21
+ export interface ExcelXmlRelationshipData {
22
+ Relationships: {
23
+ $: {
24
+ xmlns: string;
25
+ };
26
+ Relationship?: ExcelRelationshipData[];
27
+ };
28
+ }
29
+ export interface ExcelRelationshipData {
30
+ $: {
31
+ Id: string;
32
+ Target: string;
33
+ Type: string;
34
+ };
35
+ }
36
+ export interface ExcelXmlWorkbookData {
37
+ workbook: {
38
+ $: {
39
+ "xmlns": string;
40
+ "xmlns:r"?: string;
41
+ };
42
+ bookViews?: [
43
+ {
44
+ workbookView: [{}];
45
+ }
46
+ ];
47
+ sheets?: [
48
+ {
49
+ sheet: {
50
+ $: {
51
+ "name": string;
52
+ "sheetId": string;
53
+ "r:id": string;
54
+ };
55
+ }[];
56
+ }
57
+ ];
58
+ };
59
+ }
60
+ export interface ExcelXmlWorksheetData {
61
+ worksheet: {
62
+ $: {
63
+ "xmlns": string;
64
+ "xmlns:r"?: string;
65
+ };
66
+ dimension?: [
67
+ {
68
+ $: {
69
+ ref: string;
70
+ };
71
+ }
72
+ ];
73
+ sheetViews?: [
74
+ {
75
+ sheetView: {
76
+ $: {
77
+ workbookViewId: string;
78
+ zoomScale?: string;
79
+ };
80
+ pane?: [
81
+ {
82
+ $: {
83
+ xSplit?: string;
84
+ ySplit?: string;
85
+ topLeftCell?: string;
86
+ activePane?: string;
87
+ state?: string;
88
+ };
89
+ }
90
+ ];
91
+ }[];
92
+ }
93
+ ];
94
+ sheetFormatPr?: [
95
+ {
96
+ $: {
97
+ defaultRowHeight: string;
98
+ };
99
+ }
100
+ ];
101
+ cols?: [
102
+ {
103
+ col: {
104
+ $: {
105
+ min: string;
106
+ max: string;
107
+ width?: string;
108
+ bestFit?: string;
109
+ customWidth?: string;
110
+ };
111
+ }[];
112
+ }
113
+ ];
114
+ sheetData: [
115
+ {
116
+ row?: ExcelRowData[];
117
+ }
118
+ ];
119
+ mergeCells?: [
120
+ {
121
+ $: {
122
+ count: string;
123
+ };
124
+ mergeCell: {
125
+ $: {
126
+ ref: string;
127
+ };
128
+ }[];
129
+ }
130
+ ];
131
+ drawing?: {
132
+ $: {
133
+ "r:id": string;
134
+ };
135
+ }[];
136
+ };
137
+ }
138
+ export interface ExcelRowData {
139
+ $: {
140
+ r: string;
141
+ };
142
+ c?: ExcelCellData[];
143
+ }
144
+ export interface ExcelCellData {
145
+ $: {
146
+ r: string;
147
+ s?: string;
148
+ t?: string;
149
+ };
150
+ v?: [string];
151
+ f?: [string];
152
+ is?: {
153
+ t?: {
154
+ _?: string;
155
+ }[];
156
+ }[];
157
+ }
158
+ export interface ExcelXmlDrawingData {
159
+ wsDr: {
160
+ $: {
161
+ "xmlns": string;
162
+ "xmlns:a"?: string;
163
+ "xmlns:r"?: string;
164
+ };
165
+ twoCellAnchor?: {
166
+ from?: {
167
+ col: string[];
168
+ colOff?: string[];
169
+ row: string[];
170
+ rowOff?: string[];
171
+ }[];
172
+ to?: {
173
+ col: string[];
174
+ colOff?: string[];
175
+ row: string[];
176
+ rowOff?: string[];
177
+ }[];
178
+ pic?: {
179
+ nvPicPr?: {
180
+ cNvPr?: {
181
+ $: {
182
+ id: string;
183
+ name: string;
184
+ descr?: string;
185
+ };
186
+ }[];
187
+ cNvPicPr?: Array<{
188
+ "a:picLocks"?: Array<{
189
+ $: {
190
+ noChangeAspect?: string;
191
+ };
192
+ }>;
193
+ }>;
194
+ }[];
195
+ blipFill?: {
196
+ "a:blip"?: Array<{
197
+ $: {
198
+ "r:embed": string;
199
+ };
200
+ }>;
201
+ "a:stretch"?: Array<{
202
+ "a:fillRect": unknown[];
203
+ }>;
204
+ }[];
205
+ spPr?: {
206
+ "a:xfrm"?: Array<{
207
+ "a:off"?: Array<{
208
+ $: {
209
+ x: string;
210
+ y: string;
211
+ };
212
+ }>;
213
+ "a:ext"?: Array<{
214
+ $: {
215
+ cx: string;
216
+ cy: string;
217
+ };
218
+ }>;
219
+ }>;
220
+ "a:prstGeom"?: Array<{
221
+ "$": {
222
+ prst: string;
223
+ };
224
+ "a:avLst": unknown[];
225
+ }>;
226
+ }[];
227
+ }[];
228
+ clientData?: unknown[];
229
+ }[];
230
+ };
231
+ }
232
+ export interface ExcelXmlSharedStringData {
233
+ sst: {
234
+ $: {
235
+ xmlns: string;
236
+ };
237
+ si?: ExcelXmlSharedStringDataSi[];
238
+ };
239
+ }
240
+ export type ExcelXmlSharedStringDataSi = {
241
+ t: ExcelXmlSharedStringDataText;
242
+ } | {
243
+ r: {
244
+ t: ExcelXmlSharedStringDataText;
245
+ }[];
246
+ };
247
+ export type ExcelXmlSharedStringDataText = [
248
+ string | {
249
+ $: {
250
+ space?: "preserve";
251
+ };
252
+ _?: string;
253
+ }
254
+ ];
255
+ export interface ExcelXmlStyleData {
256
+ styleSheet: {
257
+ $: {
258
+ xmlns: string;
259
+ };
260
+ numFmts?: [
261
+ {
262
+ $: {
263
+ count: string;
264
+ };
265
+ numFmt?: {
266
+ $: {
267
+ numFmtId: string;
268
+ formatCode: string;
269
+ };
270
+ }[];
271
+ }
272
+ ];
273
+ fonts: [
274
+ {
275
+ $: {
276
+ count: string;
277
+ };
278
+ font: {}[];
279
+ }
280
+ ];
281
+ fills: [
282
+ {
283
+ $: {
284
+ count: string;
285
+ };
286
+ fill: ExcelXmlStyleDataFill[];
287
+ }
288
+ ];
289
+ borders: [
290
+ {
291
+ $: {
292
+ count: string;
293
+ };
294
+ border: ExcelXmlStyleDataBorder[];
295
+ }
296
+ ];
297
+ cellXfs: [
298
+ {
299
+ $: {
300
+ count: string;
301
+ };
302
+ xf: ExcelXmlStyleDataXf[];
303
+ }
304
+ ];
305
+ };
306
+ }
307
+ export interface ExcelXmlStyleDataXf {
308
+ $: {
309
+ numFmtId?: string;
310
+ fontId?: string;
311
+ fillId?: string;
312
+ borderId?: string;
313
+ xfId?: string;
314
+ applyNumberFormat?: string;
315
+ applyFont?: string;
316
+ applyAlignment?: string;
317
+ applyFill?: string;
318
+ applyBorder?: string;
319
+ };
320
+ alignment?: [
321
+ {
322
+ $: {
323
+ horizontal?: "center" | "left" | "right";
324
+ vertical?: "center" | "top" | "bottom";
325
+ };
326
+ }
327
+ ];
328
+ }
329
+ export interface ExcelXmlStyleDataFill {
330
+ patternFill: [
331
+ {
332
+ $: {
333
+ patternType: "none" | "solid" | "gray125";
334
+ };
335
+ fgColor?: [{
336
+ $: {
337
+ rgb: string;
338
+ };
339
+ }];
340
+ }
341
+ ];
342
+ }
343
+ export interface ExcelXmlStyleDataBorder {
344
+ top?: [
345
+ {
346
+ $: {
347
+ style: "thin" | "medium";
348
+ };
349
+ color?: [{
350
+ $: {
351
+ rgb: string;
352
+ };
353
+ }];
354
+ }
355
+ ];
356
+ left?: [
357
+ {
358
+ $: {
359
+ style: "thin" | "medium";
360
+ };
361
+ color?: [{
362
+ $: {
363
+ rgb: string;
364
+ };
365
+ }];
366
+ }
367
+ ];
368
+ right?: [
369
+ {
370
+ $: {
371
+ style: "thin" | "medium";
372
+ };
373
+ color?: [{
374
+ $: {
375
+ rgb: string;
376
+ };
377
+ }];
378
+ }
379
+ ];
380
+ bottom?: [
381
+ {
382
+ $: {
383
+ style: "thin" | "medium";
384
+ };
385
+ color?: [{
386
+ $: {
387
+ rgb: string;
388
+ };
389
+ }];
390
+ }
391
+ ];
392
+ }
393
+ export type ExcelValueType = number | string | DateOnly | DateTime | Time | boolean | undefined;
394
+ export type ExcelNumberFormat = "number" | "string" | "DateOnly" | "DateTime" | "Time";
395
+ /**
396
+ * Excel 셀 타입
397
+ * - s: 공유 문자열 (SharedString)
398
+ * - b: 불리언
399
+ * - str: 수식 결과 문자열
400
+ * - n: 숫자
401
+ * - inlineStr: 인라인 문자열 (리치 텍스트)
402
+ * - e: 에러
403
+ */
404
+ export type ExcelCellType = "s" | "b" | "str" | "n" | "inlineStr" | "e";
405
+ export interface ExcelAddressPoint {
406
+ r: number;
407
+ c: number;
408
+ }
409
+ export interface ExcelAddressRangePoint {
410
+ s: ExcelAddressPoint;
411
+ e: ExcelAddressPoint;
412
+ }
413
+ export interface ExcelXml {
414
+ readonly data: unknown;
415
+ cleanup(): void;
416
+ }
417
+ export type ExcelBorderPosition = "left" | "right" | "top" | "bottom";
418
+ export type ExcelHorizontalAlign = "center" | "left" | "right";
419
+ export type ExcelVerticalAlign = "center" | "top" | "bottom";
420
+ /**
421
+ * 셀 스타일 옵션
422
+ * @example
423
+ * ```typescript
424
+ * await cell.setStyle({
425
+ * background: "00FF0000", // 빨간색
426
+ * border: ["left", "right", "top", "bottom"],
427
+ * horizontalAlign: "center",
428
+ * verticalAlign: "center",
429
+ * numberFormat: "number",
430
+ * });
431
+ * ```
432
+ */
433
+ export interface ExcelStyleOptions {
434
+ /** 배경색 (ARGB 형식, 예: "00FF0000") */
435
+ background?: string;
436
+ /** 테두리 위치 */
437
+ border?: ExcelBorderPosition[];
438
+ /** 가로 정렬 */
439
+ horizontalAlign?: ExcelHorizontalAlign;
440
+ /** 세로 정렬 */
441
+ verticalAlign?: ExcelVerticalAlign;
442
+ /** 숫자 형식 */
443
+ numberFormat?: ExcelNumberFormat;
444
+ }
445
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAItE,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE;QACL,CAAC,EAAE;YACD,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF,OAAO,EAAE;YACP,CAAC,EAAE;gBACD,SAAS,EAAE,MAAM,CAAC;gBAClB,WAAW,EAAE,MAAM,CAAC;aACrB,CAAC;SACH,EAAE,CAAC;QACJ,QAAQ,EAAE;YACR,CAAC,EAAE;gBACD,QAAQ,EAAE,MAAM,CAAC;gBACjB,WAAW,EAAE,MAAM,CAAC;aACrB,CAAC;SACH,EAAE,CAAC;KACL,CAAC;CACH;AAED,MAAM,WAAW,wBAAwB;IACvC,aAAa,EAAE;QACb,CAAC,EAAE;YACD,KAAK,EAAE,MAAM,CAAC;SACf,CAAC;QACF,YAAY,CAAC,EAAE,qBAAqB,EAAE,CAAC;KACxC,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,CAAC,EAAE;QACD,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE;QACR,CAAC,EAAE;YACD,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,CAAC;QACF,SAAS,CAAC,EAAE;YACV;gBACE,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;aACpB;SACF,CAAC;QACF,MAAM,CAAC,EAAE;YACP;gBACE,KAAK,EAAE;oBACL,CAAC,EAAE;wBACD,MAAM,EAAE,MAAM,CAAC;wBACf,SAAS,EAAE,MAAM,CAAC;wBAClB,MAAM,EAAE,MAAM,CAAC;qBAChB,CAAC;iBACH,EAAE,CAAC;aACL;SACF,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE;QACT,CAAC,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC3C,SAAS,CAAC,EAAE;YACV;gBACE,CAAC,EAAE;oBACD,GAAG,EAAE,MAAM,CAAC;iBACb,CAAC;aACH;SACF,CAAC;QACF,UAAU,CAAC,EAAE;YACX;gBACE,SAAS,EAAE;oBACT,CAAC,EAAE;wBACD,cAAc,EAAE,MAAM,CAAC;wBACvB,SAAS,CAAC,EAAE,MAAM,CAAC;qBACpB,CAAC;oBACF,IAAI,CAAC,EAAE;wBACL;4BACE,CAAC,EAAE;gCACD,MAAM,CAAC,EAAE,MAAM,CAAC;gCAChB,MAAM,CAAC,EAAE,MAAM,CAAC;gCAChB,WAAW,CAAC,EAAE,MAAM,CAAC;gCACrB,UAAU,CAAC,EAAE,MAAM,CAAC;gCACpB,KAAK,CAAC,EAAE,MAAM,CAAC;6BAChB,CAAC;yBACH;qBACF,CAAC;iBACH,EAAE,CAAC;aACL;SACF,CAAC;QACF,aAAa,CAAC,EAAE;YACd;gBACE,CAAC,EAAE;oBACD,gBAAgB,EAAE,MAAM,CAAC;iBAC1B,CAAC;aACH;SACF,CAAC;QACF,IAAI,CAAC,EAAE;YACL;gBACE,GAAG,EAAE;oBACH,CAAC,EAAE;wBACD,GAAG,EAAE,MAAM,CAAC;wBACZ,GAAG,EAAE,MAAM,CAAC;wBACZ,KAAK,CAAC,EAAE,MAAM,CAAC;wBACf,OAAO,CAAC,EAAE,MAAM,CAAC;wBACjB,WAAW,CAAC,EAAE,MAAM,CAAC;qBACtB,CAAC;iBACH,EAAE,CAAC;aACL;SACF,CAAC;QACF,SAAS,EAAE;YACT;gBACE,GAAG,CAAC,EAAE,YAAY,EAAE,CAAC;aACtB;SACF,CAAC;QACF,UAAU,CAAC,EAAE;YACX;gBACE,CAAC,EAAE;oBAAE,KAAK,EAAE,MAAM,CAAA;iBAAE,CAAC;gBACrB,SAAS,EAAE;oBACT,CAAC,EAAE;wBAAE,GAAG,EAAE,MAAM,CAAA;qBAAE,CAAC;iBACpB,EAAE,CAAC;aACL;SACF,CAAC;QACF,OAAO,CAAC,EAAE;YAAE,CAAC,EAAE;gBAAE,MAAM,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,EAAE,CAAC;KACvC,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE;QACD,CAAC,EAAE,MAAM,CAAC;KACX,CAAC;IACF,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,CAAC,EAAE;QACD,CAAC,EAAE,MAAM,CAAC;QACV,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,CAAC,CAAC,EAAE,MAAM,CAAC;KACZ,CAAC;IACF,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IACb,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC;IACb,EAAE,CAAC,EAAE;QACH,CAAC,CAAC,EAAE;YACF,CAAC,CAAC,EAAE,MAAM,CAAC;SACZ,EAAE,CAAC;KACL,EAAE,CAAC;CACL;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE;QACJ,CAAC,EAAE;YACD,OAAO,EAAE,MAAM,CAAC;YAChB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,SAAS,CAAC,EAAE,MAAM,CAAC;SACpB,CAAC;QACF,aAAa,CAAC,EAAE;YACd,IAAI,CAAC,EAAE;gBACL,GAAG,EAAE,MAAM,EAAE,CAAC;gBACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;gBAClB,GAAG,EAAE,MAAM,EAAE,CAAC;gBACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;aACnB,EAAE,CAAC;YACJ,EAAE,CAAC,EAAE;gBACH,GAAG,EAAE,MAAM,EAAE,CAAC;gBACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;gBAClB,GAAG,EAAE,MAAM,EAAE,CAAC;gBACd,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;aACnB,EAAE,CAAC;YACJ,GAAG,CAAC,EAAE;gBACJ,OAAO,CAAC,EAAE;oBACR,KAAK,CAAC,EAAE;wBAAE,CAAC,EAAE;4BAAE,EAAE,EAAE,MAAM,CAAC;4BAAC,IAAI,EAAE,MAAM,CAAC;4BAAC,KAAK,CAAC,EAAE,MAAM,CAAA;yBAAE,CAAA;qBAAE,EAAE,CAAC;oBAC9D,QAAQ,CAAC,EAAE,KAAK,CAAC;wBAAE,YAAY,CAAC,EAAE,KAAK,CAAC;4BAAE,CAAC,EAAE;gCAAE,cAAc,CAAC,EAAE,MAAM,CAAA;6BAAE,CAAA;yBAAE,CAAC,CAAA;qBAAE,CAAC,CAAC;iBAChF,EAAE,CAAC;gBACJ,QAAQ,CAAC,EAAE;oBACT,QAAQ,CAAC,EAAE,KAAK,CAAC;wBAAE,CAAC,EAAE;4BAAE,SAAS,EAAE,MAAM,CAAA;yBAAE,CAAA;qBAAE,CAAC,CAAC;oBAC/C,WAAW,CAAC,EAAE,KAAK,CAAC;wBAAE,YAAY,EAAE,OAAO,EAAE,CAAA;qBAAE,CAAC,CAAC;iBAClD,EAAE,CAAC;gBACJ,IAAI,CAAC,EAAE;oBACL,QAAQ,CAAC,EAAE,KAAK,CAAC;wBACf,OAAO,CAAC,EAAE,KAAK,CAAC;4BAAE,CAAC,EAAE;gCAAE,CAAC,EAAE,MAAM,CAAC;gCAAC,CAAC,EAAE,MAAM,CAAA;6BAAE,CAAA;yBAAE,CAAC,CAAC;wBACjD,OAAO,CAAC,EAAE,KAAK,CAAC;4BAAE,CAAC,EAAE;gCAAE,EAAE,EAAE,MAAM,CAAC;gCAAC,EAAE,EAAE,MAAM,CAAA;6BAAE,CAAA;yBAAE,CAAC,CAAC;qBACpD,CAAC,CAAC;oBACH,YAAY,CAAC,EAAE,KAAK,CAAC;wBAAE,GAAG,EAAE;4BAAE,IAAI,EAAE,MAAM,CAAA;yBAAE,CAAC;wBAAC,SAAS,EAAE,OAAO,EAAE,CAAA;qBAAE,CAAC,CAAC;iBACvE,EAAE,CAAC;aACL,EAAE,CAAC;YACJ,UAAU,CAAC,EAAE,OAAO,EAAE,CAAC;SACxB,EAAE,CAAC;KACL,CAAC;CACH;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE;QACH,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QACrB,EAAE,CAAC,EAAE,0BAA0B,EAAE,CAAC;KACnC,CAAC;CACH;AAED,MAAM,MAAM,0BAA0B,GAClC;IACE,CAAC,EAAE,4BAA4B,CAAC;CACjC,GACD;IACE,CAAC,EAAE;QACD,CAAC,EAAE,4BAA4B,CAAC;KACjC,EAAE,CAAC;CACL,CAAC;AAEN,MAAM,MAAM,4BAA4B,GAAG;IACvC,MAAM,GACN;QACE,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,UAAU,CAAA;SAAE,CAAC;QAC1B,CAAC,CAAC,EAAE,MAAM,CAAC;KACZ;CACJ,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE;QACV,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QACrB,OAAO,CAAC,EAAE;YACR;gBACE,CAAC,EAAE;oBAAE,KAAK,EAAE,MAAM,CAAA;iBAAE,CAAC;gBACrB,MAAM,CAAC,EAAE;oBACP,CAAC,EAAE;wBACD,QAAQ,EAAE,MAAM,CAAC;wBACjB,UAAU,EAAE,MAAM,CAAC;qBACpB,CAAC;iBACH,EAAE,CAAC;aACL;SACF,CAAC;QACF,KAAK,EAAE;YACL;gBACE,CAAC,EAAE;oBAAE,KAAK,EAAE,MAAM,CAAA;iBAAE,CAAC;gBACrB,IAAI,EAAE,EAAE,EAAE,CAAC;aACZ;SACF,CAAC;QACF,KAAK,EAAE;YACL;gBACE,CAAC,EAAE;oBAAE,KAAK,EAAE,MAAM,CAAA;iBAAE,CAAC;gBACrB,IAAI,EAAE,qBAAqB,EAAE,CAAC;aAC/B;SACF,CAAC;QACF,OAAO,EAAE;YACP;gBACE,CAAC,EAAE;oBAAE,KAAK,EAAE,MAAM,CAAA;iBAAE,CAAC;gBACrB,MAAM,EAAE,uBAAuB,EAAE,CAAC;aACnC;SACF,CAAC;QACF,OAAO,EAAE;YACP;gBACE,CAAC,EAAE;oBAAE,KAAK,EAAE,MAAM,CAAA;iBAAE,CAAC;gBACrB,EAAE,EAAE,mBAAmB,EAAE,CAAC;aAC3B;SACF,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,CAAC,EAAE;QACD,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,SAAS,CAAC,EAAE;QACV;YACE,CAAC,EAAE;gBAAE,UAAU,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;gBAAC,QAAQ,CAAC,EAAE,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAA;aAAE,CAAC;SACzF;KACF,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,WAAW,EAAE;QACX;YACE,CAAC,EAAE;gBAAE,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;aAAE,CAAC;YACjD,OAAO,CAAC,EAAE,CAAC;gBAAE,CAAC,EAAE;oBAAE,GAAG,EAAE,MAAM,CAAA;iBAAE,CAAA;aAAE,CAAC,CAAC;SACpC;KACF,CAAC;CACH;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE;QACJ;YACE,CAAC,EAAE;gBAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAA;aAAE,CAAC;YAChC,KAAK,CAAC,EAAE,CAAC;gBAAE,CAAC,EAAE;oBAAE,GAAG,EAAE,MAAM,CAAA;iBAAE,CAAA;aAAE,CAAC,CAAC;SAClC;KACF,CAAC;IACF,IAAI,CAAC,EAAE;QACL;YACE,CAAC,EAAE;gBAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAA;aAAE,CAAC;YAChC,KAAK,CAAC,EAAE,CAAC;gBAAE,CAAC,EAAE;oBAAE,GAAG,EAAE,MAAM,CAAA;iBAAE,CAAA;aAAE,CAAC,CAAC;SAClC;KACF,CAAC;IACF,KAAK,CAAC,EAAE;QACN;YACE,CAAC,EAAE;gBAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAA;aAAE,CAAC;YAChC,KAAK,CAAC,EAAE,CAAC;gBAAE,CAAC,EAAE;oBAAE,GAAG,EAAE,MAAM,CAAA;iBAAE,CAAA;aAAE,CAAC,CAAC;SAClC;KACF,CAAC;IACF,MAAM,CAAC,EAAE;QACP;YACE,CAAC,EAAE;gBAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,CAAA;aAAE,CAAC;YAChC,KAAK,CAAC,EAAE,CAAC;gBAAE,CAAC,EAAE;oBAAE,GAAG,EAAE,MAAM,CAAA;iBAAE,CAAA;aAAE,CAAC,CAAC;SAClC;KACF,CAAC;CACH;AAMD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,GAAG,OAAO,GAAG,SAAS,CAAC;AAChG,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,UAAU,GAAG,MAAM,CAAC;AAEvF;;;;;;;;GAQG;AACH,MAAM,MAAM,aAAa,GAAG,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,WAAW,GAAG,GAAG,CAAC;AAMxE,MAAM,WAAW,iBAAiB;IAChC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;CACX;AAED,MAAM,WAAW,sBAAsB;IACrC,CAAC,EAAE,iBAAiB,CAAC;IACrB,CAAC,EAAE,iBAAiB,CAAC;CACtB;AAMD,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,OAAO,IAAI,IAAI,CAAC;CACjB;AAMD,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AACtE,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAC/D,MAAM,MAAM,kBAAkB,GAAG,QAAQ,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE7D;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa;IACb,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC/B,YAAY;IACZ,eAAe,CAAC,EAAE,oBAAoB,CAAC;IACvC,YAAY;IACZ,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,YAAY;IACZ,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC"}
@@ -0,0 +1,50 @@
1
+ import type { ExcelAddressPoint, ExcelAddressRangePoint, ExcelNumberFormat } from "../types";
2
+ /**
3
+ * Excel 관련 유틸리티 함수 모음.
4
+ * 셀 주소 변환, 날짜/숫자 변환, 숫자 형식 처리 등의 기능을 제공한다.
5
+ */
6
+ export declare class ExcelUtils {
7
+ /** 셀 좌표를 "A1" 형식 문자열로 변환 */
8
+ static stringifyAddr(point: ExcelAddressPoint): string;
9
+ /** 행 인덱스(0-based)를 행 주소 문자열로 변환 (예: 0 -> "1") */
10
+ static stringifyRowAddr(r: number): string;
11
+ /** 열 인덱스(0-based)를 열 주소 문자열로 변환 (예: 0 -> "A", 26 -> "AA") */
12
+ static stringifyColAddr(c: number): string;
13
+ /** 셀 주소에서 행 인덱스 추출 (예: "A3" -> 2) */
14
+ static parseRowAddrCode(addrCode: string): number;
15
+ /** 셀 주소에서 열 인덱스 추출 (예: "B3" -> 1) */
16
+ static parseColAddrCode(addrCode: string): number;
17
+ /** 셀 주소를 좌표로 변환 (예: "B3" -> {r: 2, c: 1}) */
18
+ static parseCellAddrCode(addr: string): ExcelAddressPoint;
19
+ /** 범위 주소를 좌표로 변환 (예: "A1:C3" -> {s: {r:0,c:0}, e: {r:2,c:2}}) */
20
+ static parseRangeAddrCode(rangeAddr: string): ExcelAddressRangePoint;
21
+ /** 범위 좌표를 주소 문자열로 변환 */
22
+ static stringifyRangeAddr(point: ExcelAddressRangePoint): string;
23
+ /**
24
+ * JavaScript 타임스탬프(ms)를 Excel 날짜 숫자로 변환.
25
+ * Excel은 1900-01-01을 1로 계산한다 (1899-12-30이 날짜 0).
26
+ */
27
+ static convertTimeTickToNumber(tick: number): number;
28
+ /**
29
+ * Excel 날짜 숫자를 JavaScript 타임스탬프(ms)로 변환.
30
+ * Excel은 1900-01-01을 1로 계산한다 (1899-12-30이 날짜 0).
31
+ */
32
+ static convertNumberToTimeTick(num: number): number;
33
+ /** 숫자 형식 코드를 형식 이름으로 변환 */
34
+ static convertNumFmtCodeToName(numFmtCode: string): ExcelNumberFormat;
35
+ /**
36
+ * 숫자 형식 ID를 형식 이름으로 변환
37
+ *
38
+ * @remarks
39
+ * Excel 내장 형식 ID 범위:
40
+ * - 0~13, 37~40, 48: 숫자/일반/통화/백분율 형식
41
+ * - 14~17, 27~31, 34~36, 50~58: 날짜 형식 (지역화 포함)
42
+ * - 22: 날짜+시간 형식
43
+ * - 18~21, 32~33, 45~47: 시간 형식
44
+ * - 49: 텍스트 형식
45
+ */
46
+ static convertNumFmtIdToName(numFmtId: number): ExcelNumberFormat;
47
+ /** 숫자 형식 이름을 형식 ID로 변환 */
48
+ static convertNumFmtNameToId(numFmtName: ExcelNumberFormat): number;
49
+ }
50
+ //# sourceMappingURL=excel-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excel-utils.d.ts","sourceRoot":"","sources":["../../../../src/utils/excel-utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7F;;;GAGG;AACH,qBAAa,UAAU;IACrB,4BAA4B;IAC5B,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,iBAAiB,GAAG,MAAM;IAMtD,iDAAiD;IACjD,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAI1C,6DAA6D;IAC7D,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM;IAe1C,qCAAqC;IACrC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IASjD,qCAAqC;IACrC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM;IAYjD,6CAA6C;IAC7C,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB;IAOzD,iEAAiE;IACjE,MAAM,CAAC,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,sBAAsB;IAQpE,wBAAwB;IACxB,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,sBAAsB,GAAG,MAAM;IAWhE;;;OAGG;IACH,MAAM,CAAC,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAQpD;;;OAGG;IACH,MAAM,CAAC,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IASnD,2BAA2B;IAC3B,MAAM,CAAC,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB;IA0BrE;;;;;;;;;;OAUG;IACH,MAAM,CAAC,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB;IAkCjE,0BAA0B;IAC1B,MAAM,CAAC,qBAAqB,CAAC,UAAU,EAAE,iBAAiB,GAAG,MAAM;CAcpE"}
@@ -0,0 +1,23 @@
1
+ import type { Bytes } from "@simplysm/core-common";
2
+ import type { ExcelXml } from "../types";
3
+ /**
4
+ * Excel ZIP 아카이브의 파일 캐시를 관리하는 클래스.
5
+ * XML 파일은 파싱하여 ExcelXml 객체로, 그 외 파일은 바이트 배열로 캐싱한다.
6
+ *
7
+ * @remarks
8
+ * ## Lazy Loading 캐시 전략
9
+ *
10
+ * - 파일은 첫 접근 시에만 ZIP에서 읽고 파싱한다
11
+ * - 이후 접근은 캐시된 객체를 반환한다
12
+ * - 대용량 Excel 파일에서 필요한 부분만 로드하여 메모리 효율성을 높인다
13
+ */
14
+ export declare class ZipCache {
15
+ private readonly _cache;
16
+ private readonly _zip;
17
+ constructor(arg?: Blob | Bytes);
18
+ get(filePath: string): Promise<ExcelXml | Bytes | undefined>;
19
+ set(filePath: string, content: ExcelXml | Bytes): void;
20
+ toBytes(): Promise<Bytes>;
21
+ close(): Promise<void>;
22
+ }
23
+ //# sourceMappingURL=zip-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zip-cache.d.ts","sourceRoot":"","sources":["../../../../src/utils/zip-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,KAAK,EACV,QAAQ,EAQT,MAAM,UAAU,CAAC;AAUlB;;;;;;;;;;GAUG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmD;IAC1E,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;gBAEtB,GAAG,CAAC,EAAE,IAAI,GAAG,KAAK;IAIxB,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;IAsClE,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,KAAK,GAAG,IAAI;IAIhD,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC;IAgBzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI7B"}
@@ -0,0 +1,12 @@
1
+ import type { ExcelXml, ExcelXmlContentTypeData } from "../types";
2
+ /**
3
+ * [Content_Types].xml 파일을 관리하는 클래스.
4
+ * 파일별 MIME 타입 정보를 관리한다.
5
+ */
6
+ export declare class ExcelXmlContentType implements ExcelXml {
7
+ data: ExcelXmlContentTypeData;
8
+ constructor(data?: ExcelXmlContentTypeData);
9
+ add(partName: string, contentType: string): this;
10
+ cleanup(): void;
11
+ }
12
+ //# sourceMappingURL=excel-xml-content-type.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excel-xml-content-type.d.ts","sourceRoot":"","sources":["../../../../src/xml/excel-xml-content-type.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AAElE;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,QAAQ;IAClD,IAAI,EAAE,uBAAuB,CAAC;gBAElB,IAAI,CAAC,EAAE,uBAAuB;IAoC1C,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAiBhD,OAAO,IAAI,IAAI;CAChB"}
@@ -0,0 +1,26 @@
1
+ import type { ExcelXml, ExcelXmlDrawingData } from "../types";
2
+ /**
3
+ * xl/drawings/drawing*.xml 파일을 관리하는 클래스.
4
+ * 이미지 삽입 시 위치 및 참조 정보를 처리한다.
5
+ */
6
+ export declare class ExcelXmlDrawing implements ExcelXml {
7
+ data: ExcelXmlDrawingData;
8
+ constructor(data?: ExcelXmlDrawingData);
9
+ addPicture(opts: {
10
+ from: {
11
+ r: number;
12
+ c: number;
13
+ rOff?: number | string;
14
+ cOff?: number | string;
15
+ };
16
+ to: {
17
+ r: number;
18
+ c: number;
19
+ rOff?: number | string;
20
+ cOff?: number | string;
21
+ };
22
+ blipRelId: string;
23
+ }): void;
24
+ cleanup(): void;
25
+ }
26
+ //# sourceMappingURL=excel-xml-drawing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excel-xml-drawing.d.ts","sourceRoot":"","sources":["../../../../src/xml/excel-xml-drawing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE9D;;;GAGG;AACH,qBAAa,eAAgB,YAAW,QAAQ;IAC9C,IAAI,EAAE,mBAAmB,CAAC;gBAEd,IAAI,CAAC,EAAE,mBAAmB;IAiBtC,UAAU,CAAC,IAAI,EAAE;QACf,IAAI,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QAC/E,EAAE,EAAE;YAAE,CAAC,EAAE,MAAM,CAAC;YAAC,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;SAAE,CAAC;QAC7E,SAAS,EAAE,MAAM,CAAC;KACnB,GAAG,IAAI;IAuDR,OAAO,IAAI,IAAI;CAChB"}
@@ -0,0 +1,18 @@
1
+ import "@simplysm/core-common";
2
+ import type { ExcelXml, ExcelXmlRelationshipData } from "../types";
3
+ /**
4
+ * *.rels 파일을 관리하는 클래스.
5
+ * 파일 간의 참조 관계를 처리한다.
6
+ */
7
+ export declare class ExcelXmlRelationship implements ExcelXml {
8
+ data: ExcelXmlRelationshipData;
9
+ constructor(data?: ExcelXmlRelationshipData);
10
+ getTargetByRelId(rId: number): string | undefined;
11
+ add(target: string, type: string): this;
12
+ addAndGetId(target: string, type: string): number;
13
+ insert(rId: number, target: string, type: string): this;
14
+ cleanup(): void;
15
+ private get _lastId();
16
+ private _getRelId;
17
+ }
18
+ //# sourceMappingURL=excel-xml-relationship.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excel-xml-relationship.d.ts","sourceRoot":"","sources":["../../../../src/xml/excel-xml-relationship.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAyB,QAAQ,EAAE,wBAAwB,EAAE,MAAM,UAAU,CAAC;AAE1F;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,QAAQ;IACnD,IAAI,EAAE,wBAAwB,CAAC;gBAEnB,IAAI,CAAC,EAAE,wBAAwB;IAc3C,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIjD,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAKvC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM;IAgBjD,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAmBvD,OAAO,IAAI,IAAI;IAEf,OAAO,KAAK,OAAO,GAKlB;IAED,OAAO,CAAC,SAAS;CAOlB"}
@@ -0,0 +1,19 @@
1
+ import type { ExcelXml, ExcelXmlSharedStringData } from "../types";
2
+ import "@simplysm/core-common";
3
+ /**
4
+ * xl/sharedStrings.xml 파일을 관리하는 클래스.
5
+ * 문자열 중복을 방지하여 파일 크기를 최적화한다.
6
+ */
7
+ export declare class ExcelXmlSharedString implements ExcelXml {
8
+ data: ExcelXmlSharedStringData;
9
+ private readonly _stringIndexesMap;
10
+ constructor(data?: ExcelXmlSharedStringData);
11
+ getIdByString(str: string): number | undefined;
12
+ getStringById(id: number): string | undefined;
13
+ add(str: string): number;
14
+ cleanup(): void;
15
+ private _getStringFromSiTag;
16
+ private _getStringFromTTag;
17
+ private _getHasInnerStyleOnSiTag;
18
+ }
19
+ //# sourceMappingURL=excel-xml-shared-string.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excel-xml-shared-string.d.ts","sourceRoot":"","sources":["../../../../src/xml/excel-xml-shared-string.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,wBAAwB,EAGzB,MAAM,UAAU,CAAC;AAClB,OAAO,uBAAuB,CAAC;AAE/B;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,QAAQ;IACnD,IAAI,EAAE,wBAAwB,CAAC;IAE/B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwB;gBAE9C,IAAI,CAAC,EAAE,wBAAwB;IAwB3C,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI9C,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAK7C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAQxB,OAAO,IAAI,IAAI;IAEf,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,wBAAwB;CAGjC"}
@@ -0,0 +1,31 @@
1
+ import type { ExcelBorderPosition, ExcelHorizontalAlign, ExcelVerticalAlign, ExcelXml, ExcelXmlStyleData } from "../types";
2
+ import "@simplysm/core-common";
3
+ export interface ExcelStyle {
4
+ numFmtId?: string;
5
+ numFmtCode?: string;
6
+ border?: ExcelBorderPosition[];
7
+ background?: string;
8
+ verticalAlign?: ExcelVerticalAlign;
9
+ horizontalAlign?: ExcelHorizontalAlign;
10
+ }
11
+ /**
12
+ * xl/styles.xml 파일을 관리하는 클래스.
13
+ * 숫자 형식, 배경색, 테두리, 정렬 등의 스타일을 처리한다.
14
+ */
15
+ export declare class ExcelXmlStyle implements ExcelXml {
16
+ data: ExcelXmlStyleData;
17
+ constructor(data?: ExcelXmlStyleData);
18
+ add(style: ExcelStyle): string;
19
+ addWithClone(id: string, style: ExcelStyle): string;
20
+ get(id: string): ExcelStyle;
21
+ getNumFmtCode(numFmtId: string): string | undefined;
22
+ cleanup(): void;
23
+ private _setNumFmtCode;
24
+ private _applyAlignment;
25
+ private _createBorderFromPositions;
26
+ private _applyBorderPosition;
27
+ private _getSameOrCreateXf;
28
+ private _getSameOrCreateFill;
29
+ private _getSameOrCreateBorder;
30
+ }
31
+ //# sourceMappingURL=excel-xml-style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excel-xml-style.d.ts","sourceRoot":"","sources":["../../../../src/xml/excel-xml-style.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,QAAQ,EACR,iBAAiB,EAIlB,MAAM,UAAU,CAAC;AAClB,OAAO,uBAAuB,CAAC;AAG/B,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,kBAAkB,CAAC;IACnC,eAAe,CAAC,EAAE,oBAAoB,CAAC;CACxC;AAED;;;GAGG;AACH,qBAAa,aAAc,YAAW,QAAQ;IAC5C,IAAI,EAAE,iBAAiB,CAAC;gBAEZ,IAAI,CAAC,EAAE,iBAAiB;IAyCpC,GAAG,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM;IAqC9B,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM;IA4EnD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU;IA4D3B,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKnD,OAAO,IAAI,IAAI;IAsBf,OAAO,CAAC,cAAc;IAqCtB,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,kBAAkB;IAY1B,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,sBAAsB;CAa/B"}