@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,240 @@
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
+ });
@@ -1,13 +0,0 @@
1
- import { ExcelWorksheet } from "./ExcelWorksheet";
2
- import { ExcelCellStyle } from "./ExcelCellStyle";
3
- export declare class ExcelCell {
4
- readonly excelWorkSheet: ExcelWorksheet;
5
- readonly row: number;
6
- readonly col: number;
7
- cellData: any;
8
- readonly style: ExcelCellStyle;
9
- value: any;
10
- formula: string | undefined;
11
- constructor(excelWorkSheet: ExcelWorksheet, row: number, col: number);
12
- merge(row: number, col: number): void;
13
- }
package/dist/ExcelCell.js DELETED
@@ -1,161 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var ExcelUtils_1 = require("./utils/ExcelUtils");
4
- var ExcelCellStyle_1 = require("./ExcelCellStyle");
5
- var common_1 = require("@simplysm/common");
6
- var ExcelCell = (function () {
7
- function ExcelCell(excelWorkSheet, row, col) {
8
- var _this = this;
9
- this.excelWorkSheet = excelWorkSheet;
10
- this.row = row;
11
- this.col = col;
12
- this.excelWorkSheet.sheetData.worksheet.sheetData[0].row = this.excelWorkSheet.sheetData.worksheet.sheetData[0].row || [];
13
- var rowNodes = this.excelWorkSheet.sheetData.worksheet.sheetData[0].row;
14
- var currRow = rowNodes.single(function (item) { return Number(item.$.r) === row + 1; });
15
- if (!currRow) {
16
- currRow = { $: { r: row + 1 } };
17
- var beforeRow = rowNodes.orderBy(function (item) { return item.$.r; }).last(function (item) { return item.$.r < currRow.$.r; });
18
- var beforeRowIndex = beforeRow ? rowNodes.indexOf(beforeRow) : -1;
19
- rowNodes.insert(beforeRowIndex + 1, currRow);
20
- }
21
- currRow.c = currRow.c || [];
22
- var cellNodes = currRow.c;
23
- var currCell = cellNodes.single(function (item) { return item.$.r === ExcelUtils_1.ExcelUtils.getAddress(_this.row, _this.col); });
24
- if (!currCell) {
25
- currCell = { $: { r: ExcelUtils_1.ExcelUtils.getAddress(this.row, this.col) } };
26
- var colStyle = common_1.optional(function () { return _this.excelWorkSheet.column(col).colData.$.style; });
27
- if (colStyle) {
28
- currCell.$.s = colStyle;
29
- }
30
- var beforeCell = cellNodes.orderBy(function (item) { return item.$.r; }).last(function (item) { return item.$.r < currCell.$.r; });
31
- var beforeCellIndex = beforeCell ? cellNodes.indexOf(beforeCell) : -1;
32
- cellNodes.insert(beforeCellIndex + 1, currCell);
33
- }
34
- this.cellData = currCell;
35
- }
36
- Object.defineProperty(ExcelCell.prototype, "style", {
37
- get: function () {
38
- return new ExcelCellStyle_1.ExcelCellStyle(this);
39
- },
40
- enumerable: true,
41
- configurable: true
42
- });
43
- Object.defineProperty(ExcelCell.prototype, "value", {
44
- get: function () {
45
- if (!this.cellData.v) {
46
- return undefined;
47
- }
48
- var value = this.cellData.v[0]._ || this.cellData.v[0];
49
- if (!value) {
50
- return undefined;
51
- }
52
- else if (this.cellData.$.t === "str") {
53
- return value;
54
- }
55
- else if (this.cellData.$.t === "b") {
56
- return Number(value) === 1;
57
- }
58
- else if (this.cellData.$.t === undefined && this.style.numberFormat === "number") {
59
- return Number(value);
60
- }
61
- else if (this.cellData.$.t === undefined && this.style.numberFormat === "Currency") {
62
- return Number(value);
63
- }
64
- else if (this.cellData.$.t === undefined && this.style.numberFormat === "DateOnly") {
65
- return ExcelUtils_1.ExcelUtils.getDateOnly(Number(value));
66
- }
67
- else if (this.cellData.$.t === undefined && this.style.numberFormat === "DateTime") {
68
- return ExcelUtils_1.ExcelUtils.getDateTime(Number(value));
69
- }
70
- else if (this.cellData.$.t === "s") {
71
- var sstIndex = Number(value);
72
- if (this.excelWorkSheet.workbook.sstData.sst.si[sstIndex].t) {
73
- return this.excelWorkSheet.workbook.sstData.sst.si[sstIndex].t[0]._ || this.excelWorkSheet.workbook.sstData.sst.si[sstIndex].t[0];
74
- }
75
- else {
76
- return this.excelWorkSheet.workbook.sstData.sst.si[sstIndex].r.map(function (item) { return item.t[0]; }).join("");
77
- }
78
- }
79
- else {
80
- throw new Error("지원되지 않는 타입입니다: " + this.cellData.$.t + ", " + this.style.numberFormat);
81
- }
82
- },
83
- set: function (value) {
84
- if (value === undefined) {
85
- delete this.cellData.$.t;
86
- delete this.cellData.v;
87
- }
88
- else if (typeof value === "string") {
89
- this.cellData.$.t = "str";
90
- this.cellData.v = this.cellData.v || {};
91
- this.cellData.v._ = value;
92
- }
93
- else if (typeof value === "boolean") {
94
- this.cellData.$.t = "b";
95
- this.cellData.v = this.cellData.v || {};
96
- this.cellData.v._ = value === true ? "1" : value === false ? "0" : undefined;
97
- }
98
- else if (typeof value === "number") {
99
- delete this.cellData.$.t;
100
- this.style.numberFormat = "number";
101
- this.cellData.v = this.cellData.v || {};
102
- this.cellData.v._ = value;
103
- }
104
- else if (value instanceof common_1.DateOnly) {
105
- delete this.cellData.$.t;
106
- this.style.numberFormat = "DateOnly";
107
- this.cellData.v = this.cellData.v || {};
108
- this.cellData.v._ = ExcelUtils_1.ExcelUtils.getTimeNumber(value);
109
- }
110
- else if (value instanceof common_1.DateTime) {
111
- delete this.cellData.$.t;
112
- this.style.numberFormat = "DateTime";
113
- this.cellData.v = this.cellData.v || {};
114
- this.cellData.v._ = ExcelUtils_1.ExcelUtils.getTimeNumber(value);
115
- }
116
- else {
117
- throw new Error("지원되지 않는 타입입니다: " + value);
118
- }
119
- },
120
- enumerable: true,
121
- configurable: true
122
- });
123
- Object.defineProperty(ExcelCell.prototype, "formula", {
124
- get: function () {
125
- if (!this.cellData.f) {
126
- return undefined;
127
- }
128
- else {
129
- return this.cellData.f[0]._ || this.cellData.f[0];
130
- }
131
- },
132
- set: function (value) {
133
- if (this.cellData.v && ((this.cellData.v[0] && this.cellData.v[0]._) || this.cellData.v._)) {
134
- throw new Error("하나의 셀에 'value'가 지정된 상태로, 'Formula'를 지정할 수 없습니다. ('formula'를 먼저 지정하고 'value'값을 넣으세요.)");
135
- }
136
- if (value === undefined) {
137
- delete this.cellData.$.t;
138
- delete this.cellData.f;
139
- }
140
- else {
141
- this.cellData.$.t = "str";
142
- this.cellData.f = this.cellData.f || {};
143
- this.cellData.f._ = value;
144
- }
145
- },
146
- enumerable: true,
147
- configurable: true
148
- });
149
- ExcelCell.prototype.merge = function (row, col) {
150
- this.excelWorkSheet.sheetData.worksheet.mergeCells = this.excelWorkSheet.sheetData.worksheet.mergeCells || [{}];
151
- this.excelWorkSheet.sheetData.worksheet.mergeCells[0].mergeCell = this.excelWorkSheet.sheetData.worksheet.mergeCells[0].mergeCell || [];
152
- this.excelWorkSheet.sheetData.worksheet.mergeCells[0].mergeCell.push({
153
- $: {
154
- ref: ExcelUtils_1.ExcelUtils.getRangeAddress(this.row, this.col, row, col)
155
- }
156
- });
157
- };
158
- return ExcelCell;
159
- }());
160
- exports.ExcelCell = ExcelCell;
161
- //# sourceMappingURL=ExcelCell.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExcelCell.js","sourceRoot":"","sources":["../src/ExcelCell.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- import { ExcelCell } from "./ExcelCell";
2
- export declare class ExcelCellStyle {
3
- private readonly _excelCell;
4
- alignH: "center" | "left" | "right";
5
- background: string;
6
- foreground: string;
7
- bold: boolean;
8
- numberFormat: "DateTime" | "DateOnly" | "number" | "Currency";
9
- borderLeftWidth: "thin" | "medium";
10
- borderLeftColor: string;
11
- borderRightWidth: "thin" | "medium";
12
- borderRightColor: string;
13
- borderTopWidth: "thin" | "medium";
14
- borderTopColor: string;
15
- borderBottomWidth: "thin" | "medium";
16
- borderBottomColor: string;
17
- borderWidth: "thin" | "medium";
18
- borderColor: string;
19
- private _createNewFill;
20
- private _createNewStyle;
21
- private _createNewFont;
22
- private _createNewBorder;
23
- private _setBorderWidth;
24
- private _setBorderColor;
25
- private _setFillData;
26
- private _setFontData;
27
- private _setStyleData;
28
- private _getStyleData;
29
- private _setBorderData;
30
- constructor(_excelCell: ExcelCell);
31
- }