@simplysm/excel 13.0.0-beta.4 → 13.0.0-beta.44

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 (163) hide show
  1. package/README.md +15 -0
  2. package/dist/excel-cell.d.ts.map +1 -0
  3. package/dist/excel-cell.js +3 -3
  4. package/dist/excel-col.d.ts.map +1 -0
  5. package/dist/excel-col.js +1 -1
  6. package/dist/excel-row.d.ts.map +1 -0
  7. package/dist/excel-row.js +1 -1
  8. package/dist/excel-workbook.d.ts.map +1 -0
  9. package/dist/excel-workbook.js +7 -7
  10. package/dist/excel-workbook.js.map +2 -2
  11. package/dist/excel-worksheet.d.ts.map +1 -0
  12. package/dist/excel-worksheet.js +4 -4
  13. package/dist/excel-wrapper.d.ts.map +1 -0
  14. package/dist/excel-wrapper.js +1 -1
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +8 -8
  17. package/dist/types.d.ts.map +1 -0
  18. package/dist/utils/excel-utils.d.ts.map +1 -0
  19. package/dist/utils/zip-cache.d.ts.map +1 -0
  20. package/dist/utils/zip-cache.js +8 -8
  21. package/dist/xml/excel-xml-content-type.d.ts.map +1 -0
  22. package/dist/xml/excel-xml-drawing.d.ts.map +1 -0
  23. package/dist/xml/excel-xml-relationship.d.ts.map +1 -0
  24. package/dist/xml/excel-xml-shared-string.d.ts.map +1 -0
  25. package/dist/xml/excel-xml-style.d.ts.map +1 -0
  26. package/dist/xml/excel-xml-unknown.d.ts.map +1 -0
  27. package/dist/xml/excel-xml-workbook.d.ts.map +1 -0
  28. package/dist/xml/excel-xml-worksheet.d.ts.map +1 -0
  29. package/dist/xml/excel-xml-worksheet.js +1 -1
  30. package/package.json +7 -4
  31. package/.cache/typecheck-browser.tsbuildinfo +0 -1
  32. package/.cache/typecheck-node.tsbuildinfo +0 -1
  33. package/.cache/typecheck-tests-browser.tsbuildinfo +0 -1
  34. package/.cache/typecheck-tests-node.tsbuildinfo +0 -1
  35. package/dist/core-common/src/common.types.d.ts +0 -74
  36. package/dist/core-common/src/common.types.d.ts.map +0 -1
  37. package/dist/core-common/src/env.d.ts +0 -6
  38. package/dist/core-common/src/env.d.ts.map +0 -1
  39. package/dist/core-common/src/errors/argument-error.d.ts +0 -25
  40. package/dist/core-common/src/errors/argument-error.d.ts.map +0 -1
  41. package/dist/core-common/src/errors/not-implemented-error.d.ts +0 -29
  42. package/dist/core-common/src/errors/not-implemented-error.d.ts.map +0 -1
  43. package/dist/core-common/src/errors/sd-error.d.ts +0 -27
  44. package/dist/core-common/src/errors/sd-error.d.ts.map +0 -1
  45. package/dist/core-common/src/errors/timeout-error.d.ts +0 -31
  46. package/dist/core-common/src/errors/timeout-error.d.ts.map +0 -1
  47. package/dist/core-common/src/extensions/arr-ext.d.ts +0 -15
  48. package/dist/core-common/src/extensions/arr-ext.d.ts.map +0 -1
  49. package/dist/core-common/src/extensions/arr-ext.helpers.d.ts +0 -19
  50. package/dist/core-common/src/extensions/arr-ext.helpers.d.ts.map +0 -1
  51. package/dist/core-common/src/extensions/arr-ext.types.d.ts +0 -215
  52. package/dist/core-common/src/extensions/arr-ext.types.d.ts.map +0 -1
  53. package/dist/core-common/src/extensions/map-ext.d.ts +0 -57
  54. package/dist/core-common/src/extensions/map-ext.d.ts.map +0 -1
  55. package/dist/core-common/src/extensions/set-ext.d.ts +0 -36
  56. package/dist/core-common/src/extensions/set-ext.d.ts.map +0 -1
  57. package/dist/core-common/src/features/debounce-queue.d.ts +0 -53
  58. package/dist/core-common/src/features/debounce-queue.d.ts.map +0 -1
  59. package/dist/core-common/src/features/event-emitter.d.ts +0 -66
  60. package/dist/core-common/src/features/event-emitter.d.ts.map +0 -1
  61. package/dist/core-common/src/features/serial-queue.d.ts +0 -47
  62. package/dist/core-common/src/features/serial-queue.d.ts.map +0 -1
  63. package/dist/core-common/src/index.d.ts +0 -32
  64. package/dist/core-common/src/index.d.ts.map +0 -1
  65. package/dist/core-common/src/types/date-only.d.ts +0 -152
  66. package/dist/core-common/src/types/date-only.d.ts.map +0 -1
  67. package/dist/core-common/src/types/date-time.d.ts +0 -96
  68. package/dist/core-common/src/types/date-time.d.ts.map +0 -1
  69. package/dist/core-common/src/types/lazy-gc-map.d.ts +0 -80
  70. package/dist/core-common/src/types/lazy-gc-map.d.ts.map +0 -1
  71. package/dist/core-common/src/types/time.d.ts +0 -68
  72. package/dist/core-common/src/types/time.d.ts.map +0 -1
  73. package/dist/core-common/src/types/uuid.d.ts +0 -35
  74. package/dist/core-common/src/types/uuid.d.ts.map +0 -1
  75. package/dist/core-common/src/utils/bytes.d.ts +0 -51
  76. package/dist/core-common/src/utils/bytes.d.ts.map +0 -1
  77. package/dist/core-common/src/utils/date-format.d.ts +0 -90
  78. package/dist/core-common/src/utils/date-format.d.ts.map +0 -1
  79. package/dist/core-common/src/utils/json.d.ts +0 -34
  80. package/dist/core-common/src/utils/json.d.ts.map +0 -1
  81. package/dist/core-common/src/utils/num.d.ts +0 -60
  82. package/dist/core-common/src/utils/num.d.ts.map +0 -1
  83. package/dist/core-common/src/utils/obj.d.ts +0 -258
  84. package/dist/core-common/src/utils/obj.d.ts.map +0 -1
  85. package/dist/core-common/src/utils/path.d.ts +0 -23
  86. package/dist/core-common/src/utils/path.d.ts.map +0 -1
  87. package/dist/core-common/src/utils/primitive.d.ts +0 -18
  88. package/dist/core-common/src/utils/primitive.d.ts.map +0 -1
  89. package/dist/core-common/src/utils/str.d.ts +0 -103
  90. package/dist/core-common/src/utils/str.d.ts.map +0 -1
  91. package/dist/core-common/src/utils/template-strings.d.ts +0 -84
  92. package/dist/core-common/src/utils/template-strings.d.ts.map +0 -1
  93. package/dist/core-common/src/utils/transferable.d.ts +0 -47
  94. package/dist/core-common/src/utils/transferable.d.ts.map +0 -1
  95. package/dist/core-common/src/utils/wait.d.ts +0 -19
  96. package/dist/core-common/src/utils/wait.d.ts.map +0 -1
  97. package/dist/core-common/src/utils/xml.d.ts +0 -36
  98. package/dist/core-common/src/utils/xml.d.ts.map +0 -1
  99. package/dist/core-common/src/zip/sd-zip.d.ts +0 -80
  100. package/dist/core-common/src/zip/sd-zip.d.ts.map +0 -1
  101. package/dist/excel/src/excel-cell.d.ts.map +0 -1
  102. package/dist/excel/src/excel-col.d.ts.map +0 -1
  103. package/dist/excel/src/excel-row.d.ts.map +0 -1
  104. package/dist/excel/src/excel-workbook.d.ts.map +0 -1
  105. package/dist/excel/src/excel-worksheet.d.ts.map +0 -1
  106. package/dist/excel/src/excel-wrapper.d.ts.map +0 -1
  107. package/dist/excel/src/index.d.ts.map +0 -1
  108. package/dist/excel/src/types.d.ts.map +0 -1
  109. package/dist/excel/src/utils/excel-utils.d.ts.map +0 -1
  110. package/dist/excel/src/utils/zip-cache.d.ts.map +0 -1
  111. package/dist/excel/src/xml/excel-xml-content-type.d.ts.map +0 -1
  112. package/dist/excel/src/xml/excel-xml-drawing.d.ts.map +0 -1
  113. package/dist/excel/src/xml/excel-xml-relationship.d.ts.map +0 -1
  114. package/dist/excel/src/xml/excel-xml-shared-string.d.ts.map +0 -1
  115. package/dist/excel/src/xml/excel-xml-style.d.ts.map +0 -1
  116. package/dist/excel/src/xml/excel-xml-unknown.d.ts.map +0 -1
  117. package/dist/excel/src/xml/excel-xml-workbook.d.ts.map +0 -1
  118. package/dist/excel/src/xml/excel-xml-worksheet.d.ts.map +0 -1
  119. package/src/excel-cell.ts +0 -326
  120. package/src/excel-col.ts +0 -43
  121. package/src/excel-row.ts +0 -37
  122. package/src/excel-workbook.ts +0 -206
  123. package/src/excel-worksheet.ts +0 -380
  124. package/src/excel-wrapper.ts +0 -219
  125. package/src/index.ts +0 -13
  126. package/src/types.ts +0 -396
  127. package/src/utils/excel-utils.ts +0 -201
  128. package/src/utils/zip-cache.ts +0 -103
  129. package/src/xml/excel-xml-content-type.ts +0 -64
  130. package/src/xml/excel-xml-drawing.ts +0 -87
  131. package/src/xml/excel-xml-relationship.ts +0 -86
  132. package/src/xml/excel-xml-shared-string.ts +0 -80
  133. package/src/xml/excel-xml-style.ts +0 -393
  134. package/src/xml/excel-xml-unknown.ts +0 -11
  135. package/src/xml/excel-xml-workbook.ts +0 -112
  136. package/src/xml/excel-xml-worksheet.ts +0 -544
  137. package/tests/excel-cell.spec.ts +0 -407
  138. package/tests/excel-col.spec.ts +0 -112
  139. package/tests/excel-row.spec.ts +0 -71
  140. package/tests/excel-workbook.spec.ts +0 -166
  141. package/tests/excel-worksheet.spec.ts +0 -389
  142. package/tests/excel-wrapper.spec.ts +0 -275
  143. package/tests/fixtures/logo.png +0 -0
  144. package/tests/image-insert.spec.ts +0 -188
  145. package/tests/utils/excel-utils.spec.ts +0 -240
  146. /package/dist/{excel/src/excel-cell.d.ts → excel-cell.d.ts} +0 -0
  147. /package/dist/{excel/src/excel-col.d.ts → excel-col.d.ts} +0 -0
  148. /package/dist/{excel/src/excel-row.d.ts → excel-row.d.ts} +0 -0
  149. /package/dist/{excel/src/excel-workbook.d.ts → excel-workbook.d.ts} +0 -0
  150. /package/dist/{excel/src/excel-worksheet.d.ts → excel-worksheet.d.ts} +0 -0
  151. /package/dist/{excel/src/excel-wrapper.d.ts → excel-wrapper.d.ts} +0 -0
  152. /package/dist/{excel/src/index.d.ts → index.d.ts} +0 -0
  153. /package/dist/{excel/src/types.d.ts → types.d.ts} +0 -0
  154. /package/dist/{excel/src/utils → utils}/excel-utils.d.ts +0 -0
  155. /package/dist/{excel/src/utils → utils}/zip-cache.d.ts +0 -0
  156. /package/dist/{excel/src/xml → xml}/excel-xml-content-type.d.ts +0 -0
  157. /package/dist/{excel/src/xml → xml}/excel-xml-drawing.d.ts +0 -0
  158. /package/dist/{excel/src/xml → xml}/excel-xml-relationship.d.ts +0 -0
  159. /package/dist/{excel/src/xml → xml}/excel-xml-shared-string.d.ts +0 -0
  160. /package/dist/{excel/src/xml → xml}/excel-xml-style.d.ts +0 -0
  161. /package/dist/{excel/src/xml → xml}/excel-xml-unknown.d.ts +0 -0
  162. /package/dist/{excel/src/xml → xml}/excel-xml-workbook.d.ts +0 -0
  163. /package/dist/{excel/src/xml → xml}/excel-xml-worksheet.d.ts +0 -0
@@ -1,240 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { ExcelUtils } from "../../src/utils/excel-utils";
3
-
4
- describe("ExcelUtils", () => {
5
- describe("stringifyColAddr / parseColAddrCode", () => {
6
- it("0-25를 A-Z로 변환한다", () => {
7
- expect(ExcelUtils.stringifyColAddr(0)).toBe("A");
8
- expect(ExcelUtils.stringifyColAddr(1)).toBe("B");
9
- expect(ExcelUtils.stringifyColAddr(25)).toBe("Z");
10
- });
11
-
12
- it("26 이상을 AA, AB 등으로 변환한다", () => {
13
- expect(ExcelUtils.stringifyColAddr(26)).toBe("AA");
14
- expect(ExcelUtils.stringifyColAddr(27)).toBe("AB");
15
- expect(ExcelUtils.stringifyColAddr(51)).toBe("AZ");
16
- expect(ExcelUtils.stringifyColAddr(52)).toBe("BA");
17
- });
18
-
19
- it("큰 열 인덱스도 처리한다", () => {
20
- // 702 = AAA (26^2 + 26 = 702)
21
- expect(ExcelUtils.stringifyColAddr(702)).toBe("AAA");
22
- });
23
-
24
- it("Excel 최대 열 인덱스(XFD, 16383)를 처리한다", () => {
25
- // Excel 최대 열은 XFD (16383번 인덱스, 0-based)
26
- expect(ExcelUtils.stringifyColAddr(16383)).toBe("XFD");
27
- expect(ExcelUtils.parseColAddrCode("XFD")).toBe(16383);
28
- });
29
-
30
- it("A-Z를 0-25로 파싱한다", () => {
31
- expect(ExcelUtils.parseColAddrCode("A")).toBe(0);
32
- expect(ExcelUtils.parseColAddrCode("B")).toBe(1);
33
- expect(ExcelUtils.parseColAddrCode("Z")).toBe(25);
34
- });
35
-
36
- it("AA, AB 등을 26 이상으로 파싱한다", () => {
37
- expect(ExcelUtils.parseColAddrCode("AA")).toBe(26);
38
- expect(ExcelUtils.parseColAddrCode("AB")).toBe(27);
39
- expect(ExcelUtils.parseColAddrCode("AZ")).toBe(51);
40
- expect(ExcelUtils.parseColAddrCode("BA")).toBe(52);
41
- });
42
-
43
- it("셀 주소에서 열 인덱스를 파싱한다", () => {
44
- expect(ExcelUtils.parseColAddrCode("A1")).toBe(0);
45
- expect(ExcelUtils.parseColAddrCode("B10")).toBe(1);
46
- expect(ExcelUtils.parseColAddrCode("AA100")).toBe(26);
47
- });
48
-
49
- it("라운드트립: stringify → parse가 원래 값을 반환한다", () => {
50
- for (let i = 0; i < 100; i++) {
51
- const stringified = ExcelUtils.stringifyColAddr(i);
52
- const parsed = ExcelUtils.parseColAddrCode(stringified);
53
- expect(parsed).toBe(i);
54
- }
55
- });
56
-
57
- it("음수 열 인덱스 입력 시 에러", () => {
58
- expect(() => ExcelUtils.stringifyColAddr(-1)).toThrow();
59
- expect(() => ExcelUtils.stringifyColAddr(-100)).toThrow();
60
- });
61
- });
62
-
63
- describe("stringifyRowAddr / parseRowAddrCode", () => {
64
- it("0-based 인덱스를 1-based 문자열로 변환한다", () => {
65
- expect(ExcelUtils.stringifyRowAddr(0)).toBe("1");
66
- expect(ExcelUtils.stringifyRowAddr(9)).toBe("10");
67
- expect(ExcelUtils.stringifyRowAddr(99)).toBe("100");
68
- });
69
-
70
- it("1-based 문자열을 0-based 인덱스로 파싱한다", () => {
71
- expect(ExcelUtils.parseRowAddrCode("A1")).toBe(0);
72
- expect(ExcelUtils.parseRowAddrCode("B10")).toBe(9);
73
- expect(ExcelUtils.parseRowAddrCode("AA100")).toBe(99);
74
- });
75
- });
76
-
77
- describe("stringifyAddr / parseCellAddrCode", () => {
78
- it("셀 주소를 올바르게 변환한다", () => {
79
- expect(ExcelUtils.stringifyAddr({ r: 0, c: 0 })).toBe("A1");
80
- expect(ExcelUtils.stringifyAddr({ r: 9, c: 1 })).toBe("B10");
81
- expect(ExcelUtils.stringifyAddr({ r: 99, c: 26 })).toBe("AA100");
82
- });
83
-
84
- it("셀 주소를 올바르게 파싱한다", () => {
85
- expect(ExcelUtils.parseCellAddrCode("A1")).toEqual({ r: 0, c: 0 });
86
- expect(ExcelUtils.parseCellAddrCode("B10")).toEqual({ r: 9, c: 1 });
87
- expect(ExcelUtils.parseCellAddrCode("AA100")).toEqual({ r: 99, c: 26 });
88
- });
89
- });
90
-
91
- describe("parseRangeAddrCode / stringifyRangeAddr", () => {
92
- it("단일 셀 범위를 파싱한다", () => {
93
- const range = ExcelUtils.parseRangeAddrCode("A1");
94
- expect(range.s).toEqual({ r: 0, c: 0 });
95
- expect(range.e).toEqual({ r: 0, c: 0 });
96
- });
97
-
98
- it("다중 셀 범위를 파싱한다", () => {
99
- const range = ExcelUtils.parseRangeAddrCode("A1:C3");
100
- expect(range.s).toEqual({ r: 0, c: 0 });
101
- expect(range.e).toEqual({ r: 2, c: 2 });
102
- });
103
-
104
- it("단일 셀 범위를 문자열로 변환한다", () => {
105
- const addr = ExcelUtils.stringifyRangeAddr({
106
- s: { r: 0, c: 0 },
107
- e: { r: 0, c: 0 },
108
- });
109
- expect(addr).toBe("A1");
110
- });
111
-
112
- it("다중 셀 범위를 문자열로 변환한다", () => {
113
- const addr = ExcelUtils.stringifyRangeAddr({
114
- s: { r: 0, c: 0 },
115
- e: { r: 2, c: 2 },
116
- });
117
- expect(addr).toBe("A1:C3");
118
- });
119
- });
120
-
121
- describe("convertTimeTickToNumber / convertNumberToTimeTick", () => {
122
- it("1970-01-01을 올바르게 변환한다", () => {
123
- const date = new Date(Date.UTC(1970, 0, 1, 0, 0, 0));
124
- const tick = date.getTime();
125
- const excelNum = ExcelUtils.convertTimeTickToNumber(tick);
126
- // 1970-01-01은 Excel 기준 25569일째
127
- expect(excelNum).toBeCloseTo(25569, 0);
128
- });
129
-
130
- it("2024-06-15를 올바르게 변환한다", () => {
131
- const date = new Date(Date.UTC(2024, 5, 15, 0, 0, 0));
132
- const tick = date.getTime();
133
- const excelNum = ExcelUtils.convertTimeTickToNumber(tick);
134
- // 대략적인 값 확인
135
- expect(excelNum).toBeGreaterThan(45000);
136
- });
137
-
138
- it("시간 포함 날짜를 올바르게 변환한다", () => {
139
- const date = new Date(Date.UTC(2024, 5, 15, 12, 0, 0));
140
- const tick = date.getTime();
141
- const excelNum = ExcelUtils.convertTimeTickToNumber(tick);
142
- // 12시 = 0.5일 추가
143
- const baseNum = ExcelUtils.convertTimeTickToNumber(new Date(Date.UTC(2024, 5, 15, 0, 0, 0)).getTime());
144
- expect(excelNum - baseNum).toBeCloseTo(0.5, 1);
145
- });
146
-
147
- it("라운드트립: tick → number → tick이 원래 값을 반환한다", () => {
148
- const originalDate = new Date(Date.UTC(2024, 5, 15, 14, 30, 45));
149
- const tick = originalDate.getTime();
150
- const excelNum = ExcelUtils.convertTimeTickToNumber(tick);
151
- const recoveredTick = ExcelUtils.convertNumberToTimeTick(excelNum);
152
- // 밀리초 단위까지 정확히 일치하지 않을 수 있으므로 초 단위로 비교
153
- expect(Math.floor(recoveredTick / 1000)).toBe(Math.floor(tick / 1000));
154
- });
155
- });
156
-
157
- describe("convertNumFmtCodeToName", () => {
158
- it("General을 number로 인식한다", () => {
159
- expect(ExcelUtils.convertNumFmtCodeToName("General")).toBe("number");
160
- });
161
-
162
- it("날짜 패턴을 DateOnly로 인식한다", () => {
163
- expect(ExcelUtils.convertNumFmtCodeToName("yyyy-mm-dd")).toBe("DateOnly");
164
- expect(ExcelUtils.convertNumFmtCodeToName("yy/mm/dd")).toBe("DateOnly");
165
- expect(ExcelUtils.convertNumFmtCodeToName("dd-mmm-yyyy")).toBe("DateOnly");
166
- });
167
-
168
- // NOTE: 현재 구현에서 'mm'은 날짜(month)와 시간(minute) 둘 다에서 사용됨
169
- // 정규식: hasDate = /yy|dd|mm/i, hasTime = /hh|ss/i
170
- // 따라서 "hh:mm:ss"는 hasDate(mm)=true, hasTime(hh,ss)=true → DateTime
171
- // "h:mm"은 hasDate(mm)=true, hasTime=false (h는 hh가 아님) → DateOnly
172
- it("시간 패턴을 처리한다 (mm 모호성 주의)", () => {
173
- // "hh:mm:ss": hasDate(mm)=true, hasTime(hh,ss)=true → DateTime
174
- expect(ExcelUtils.convertNumFmtCodeToName("hh:mm:ss")).toBe("DateTime");
175
- // "h:mm": hasDate(mm)=true, hasTime=false (h≠hh) → DateOnly
176
- expect(ExcelUtils.convertNumFmtCodeToName("h:mm")).toBe("DateOnly");
177
- // 순수 시간 포맷 (ss만 있고 mm 없는 경우)
178
- expect(ExcelUtils.convertNumFmtCodeToName("[h]:ss")).toBe("Time");
179
- });
180
-
181
- it("날짜+시간 패턴을 DateTime으로 인식한다", () => {
182
- expect(ExcelUtils.convertNumFmtCodeToName("yyyy-mm-dd hh:mm:ss")).toBe("DateTime");
183
- // "yy/mm/dd h:mm"는 날짜만 감지됨 (h:mm에서 hh가 아니고 ss도 없으므로)
184
- expect(ExcelUtils.convertNumFmtCodeToName("yy/mm/dd h:mm")).toBe("DateOnly");
185
- // 명확한 DateTime 패턴
186
- expect(ExcelUtils.convertNumFmtCodeToName("yyyy/mm/dd hh:mm:ss")).toBe("DateTime");
187
- });
188
-
189
- it("숫자 패턴을 number로 인식한다", () => {
190
- expect(ExcelUtils.convertNumFmtCodeToName("#,##0")).toBe("number");
191
- expect(ExcelUtils.convertNumFmtCodeToName("0.00")).toBe("number");
192
- expect(ExcelUtils.convertNumFmtCodeToName("#,0")).toBe("number");
193
- });
194
-
195
- it("알 수 없는 포맷 코드 입력 시 에러", () => {
196
- expect(() => ExcelUtils.convertNumFmtCodeToName("unknown-format-xyz")).toThrow();
197
- });
198
- });
199
-
200
- describe("convertNumFmtIdToName", () => {
201
- it("일반적인 숫자 포맷을 인식한다", () => {
202
- expect(ExcelUtils.convertNumFmtIdToName(0)).toBe("number");
203
- expect(ExcelUtils.convertNumFmtIdToName(1)).toBe("number");
204
- expect(ExcelUtils.convertNumFmtIdToName(2)).toBe("number");
205
- });
206
-
207
- it("날짜 포맷을 인식한다", () => {
208
- expect(ExcelUtils.convertNumFmtIdToName(14)).toBe("DateOnly");
209
- expect(ExcelUtils.convertNumFmtIdToName(15)).toBe("DateOnly");
210
- });
211
-
212
- it("날짜+시간 포맷을 인식한다", () => {
213
- expect(ExcelUtils.convertNumFmtIdToName(22)).toBe("DateTime");
214
- });
215
-
216
- it("시간 포맷을 인식한다", () => {
217
- expect(ExcelUtils.convertNumFmtIdToName(18)).toBe("Time");
218
- expect(ExcelUtils.convertNumFmtIdToName(19)).toBe("Time");
219
- });
220
-
221
- it("텍스트 포맷을 인식한다", () => {
222
- expect(ExcelUtils.convertNumFmtIdToName(49)).toBe("string");
223
- });
224
-
225
- it("알 수 없는 numFmtId 입력 시 에러", () => {
226
- expect(() => ExcelUtils.convertNumFmtIdToName(23)).toThrow();
227
- expect(() => ExcelUtils.convertNumFmtIdToName(100)).toThrow();
228
- });
229
- });
230
-
231
- describe("convertNumFmtNameToId", () => {
232
- it("포맷 이름을 ID로 변환한다", () => {
233
- expect(ExcelUtils.convertNumFmtNameToId("number")).toBe(0);
234
- expect(ExcelUtils.convertNumFmtNameToId("DateOnly")).toBe(14);
235
- expect(ExcelUtils.convertNumFmtNameToId("DateTime")).toBe(22);
236
- expect(ExcelUtils.convertNumFmtNameToId("Time")).toBe(18);
237
- expect(ExcelUtils.convertNumFmtNameToId("string")).toBe(49);
238
- });
239
- });
240
- });
File without changes
File without changes
File without changes