@simplysm/excel 14.0.65 → 14.0.69

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/dist/types.d.ts CHANGED
@@ -128,6 +128,7 @@ export interface ExcelXmlWorksheetData {
128
128
  }[];
129
129
  }
130
130
  ];
131
+ conditionalFormatting?: ExcelXmlConditionalFormattingData[];
131
132
  drawing?: {
132
133
  $: {
133
134
  "r:id": string;
@@ -135,6 +136,22 @@ export interface ExcelXmlWorksheetData {
135
136
  }[];
136
137
  };
137
138
  }
139
+ export interface ExcelXmlConditionalFormattingData {
140
+ $: {
141
+ sqref: string;
142
+ };
143
+ cfRule: ExcelXmlCfRuleData[];
144
+ }
145
+ export interface ExcelXmlCfRuleData {
146
+ $: {
147
+ type: "cellIs" | "containsText" | "notContainsText" | "beginsWith" | "endsWith" | "expression";
148
+ operator?: "lessThan" | "lessThanOrEqual" | "equal" | "notEqual" | "greaterThanOrEqual" | "greaterThan" | "between" | "notBetween" | "containsText" | "notContains" | "beginsWith" | "endsWith";
149
+ priority: string;
150
+ dxfId: string;
151
+ text?: string;
152
+ };
153
+ formula: string[];
154
+ }
138
155
  export interface ExcelRowData {
139
156
  $: {
140
157
  r: string;
@@ -275,7 +292,7 @@ export interface ExcelXmlStyleData {
275
292
  $: {
276
293
  count: string;
277
294
  };
278
- font: {}[];
295
+ font: ExcelXmlStyleDataFont[];
279
296
  }
280
297
  ];
281
298
  fills: [
@@ -302,8 +319,73 @@ export interface ExcelXmlStyleData {
302
319
  xf: ExcelXmlStyleDataXf[];
303
320
  }
304
321
  ];
322
+ dxfs?: [
323
+ {
324
+ $: {
325
+ count: string;
326
+ };
327
+ dxf: ExcelXmlStyleDataDxf[];
328
+ }
329
+ ];
305
330
  };
306
331
  }
332
+ export interface ExcelXmlStyleDataFont {
333
+ sz?: [{
334
+ $: {
335
+ val: string;
336
+ };
337
+ }];
338
+ name?: [{
339
+ $: {
340
+ val: string;
341
+ };
342
+ }];
343
+ b?: [{}];
344
+ i?: [{}];
345
+ u?: [{
346
+ $?: {
347
+ val?: ExcelFontUnderline;
348
+ };
349
+ }];
350
+ strike?: [{}];
351
+ color?: [{
352
+ $: {
353
+ rgb: string;
354
+ };
355
+ }];
356
+ }
357
+ export interface ExcelXmlStyleDataDxf {
358
+ font?: [
359
+ {
360
+ b?: [{
361
+ $: {
362
+ val: "0" | "1";
363
+ };
364
+ }];
365
+ color?: [{
366
+ $: {
367
+ rgb: string;
368
+ };
369
+ }];
370
+ }
371
+ ];
372
+ fill?: [
373
+ {
374
+ patternFill: [
375
+ {
376
+ $: {
377
+ patternType?: "solid";
378
+ };
379
+ bgColor?: [{
380
+ $: {
381
+ rgb: string;
382
+ };
383
+ }];
384
+ }
385
+ ];
386
+ }
387
+ ];
388
+ }
307
389
  export interface ExcelXmlStyleDataXf {
308
390
  $: {
309
391
  numFmtId?: string;
@@ -417,6 +499,29 @@ export interface ExcelXml {
417
499
  export type ExcelBorderPosition = "left" | "right" | "top" | "bottom";
418
500
  export type ExcelHorizontalAlign = "center" | "left" | "right";
419
501
  export type ExcelVerticalAlign = "center" | "top" | "bottom";
502
+ export type ExcelFontUnderline = "single" | "double" | "singleAccounting" | "doubleAccounting";
503
+ /**
504
+ * 폰트 속성. cell 단위 override (`ExcelStyleOptions.font`) 와
505
+ * workbook default (`wb.setDefaultStyle({ font })`) 양쪽이 공유한다.
506
+ *
507
+ * 미지정 속성은 OOXML `<font>` 자식 엘리먼트로 emit 되지 않으며, Excel 자체 기본값으로 표시된다.
508
+ */
509
+ export interface ExcelFont {
510
+ /** 폰트 크기 (pt) */
511
+ size?: number;
512
+ /** 폰트명 (예: "맑은 고딕", "Calibri") */
513
+ family?: string;
514
+ /** 굵게 */
515
+ bold?: boolean;
516
+ /** 기울임 */
517
+ italic?: boolean;
518
+ /** 밑줄 — `<u val="..."/>` 의 val 에 그대로 매핑 */
519
+ underline?: ExcelFontUnderline;
520
+ /** 글자색 (ARGB 8자리, 예: "00FF0000") */
521
+ color?: string;
522
+ /** 취소선 */
523
+ strike?: boolean;
524
+ }
420
525
  /**
421
526
  * 셀 스타일 옵션
422
527
  * @example
@@ -449,5 +554,47 @@ export interface ExcelStyleOptions {
449
554
  * `numberFormat`과 동시 지정 시 이 필드가 우선 적용된다.
450
555
  */
451
556
  numberFormatCode?: string;
557
+ /** 폰트 (size/family/bold/italic/underline/color/strike) */
558
+ font?: ExcelFont;
452
559
  }
560
+ /**
561
+ * 조건부 서식 강조 스타일.
562
+ * 미지정 필드는 base 셀 스타일을 그대로 두고, 지정 필드만 OOXML dxf 로 emit 되어 native CF 오버레이로 합성된다.
563
+ */
564
+ export interface ExcelConditionalRuleStyle {
565
+ /** 배경색 (ARGB 8자리, 예: "00FFFF00") */
566
+ background?: string;
567
+ /** 글자색 (ARGB 8자리) */
568
+ fontColor?: string;
569
+ /** 글자 굵기. "normal" 은 base 가 bold 라도 강제 normal. */
570
+ fontWeight?: "bold" | "normal";
571
+ }
572
+ /**
573
+ * 조건부 서식 규칙.
574
+ * - `cellIs` 단일 비교(`<`, `>`, `<=`, `>=`, `=`, `<>`): `value` 는 number 또는 string.
575
+ * - `cellIs` 구간(`between`, `notBetween`): `value` 는 [a, b] 튜플(양 끝 inclusive).
576
+ * - `text` 매칭(`contains`, `notContains`, `beginsWith`, `endsWith`): `value` 는 string. SEARCH 기반(대소문자 무시) 고정.
577
+ *
578
+ * `value: number` 는 raw formula(`<formula>4999</formula>`), `value: string` 은 따옴표 둘러싼 리터럴 formula(`<formula>"OK"</formula>`) 로 emit.
579
+ */
580
+ export type ExcelConditionalRule = {
581
+ type: "cellIs";
582
+ op: "<" | ">" | "<=" | ">=" | "=" | "<>";
583
+ value: number | string;
584
+ style: ExcelConditionalRuleStyle;
585
+ } | {
586
+ type: "cellIs";
587
+ op: "between" | "notBetween";
588
+ value: [number, number] | [string, string];
589
+ style: ExcelConditionalRuleStyle;
590
+ } | {
591
+ type: "text";
592
+ op: "contains" | "notContains" | "beginsWith" | "endsWith";
593
+ value: string;
594
+ style: ExcelConditionalRuleStyle;
595
+ } | {
596
+ type: "expression";
597
+ formula: string;
598
+ style: ExcelConditionalRuleStyle;
599
+ };
453
600
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAiZA,YAAY"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAmiBA,YAAY"}
@@ -0,0 +1,10 @@
1
+ import type { ZipCache } from "./zip-cache";
2
+ import { ExcelXmlStyle } from "../xml/excel-xml-style";
3
+ /**
4
+ * `xl/styles.xml` 을 가져오거나, 없으면 새로 만들어 ZipCache 에 등록한다.
5
+ * Content_Types / workbook.xml.rels 에도 styles.xml 항목을 추가한다.
6
+ *
7
+ * `ExcelCell.setStyle` 과 `ExcelWorkbook.setDefaultStyle` 양쪽이 공유한다.
8
+ */
9
+ export declare function getOrCreateStyleData(zipCache: ZipCache): Promise<ExcelXmlStyle>;
10
+ //# sourceMappingURL=excel-style-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excel-style-data.d.ts","sourceRoot":"","sources":["../../src/utils/excel-style-data.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC,CAmBrF"}
@@ -0,0 +1,22 @@
1
+ import { ExcelXmlContentType } from "../xml/excel-xml-content-type.js";
2
+ import { ExcelXmlRelationship } from "../xml/excel-xml-relationship.js";
3
+ import { ExcelXmlStyle } from "../xml/excel-xml-style.js";
4
+ /**
5
+ * `xl/styles.xml` 을 가져오거나, 없으면 새로 만들어 ZipCache 에 등록한다.
6
+ * Content_Types / workbook.xml.rels 에도 styles.xml 항목을 추가한다.
7
+ *
8
+ * `ExcelCell.setStyle` 과 `ExcelWorkbook.setDefaultStyle` 양쪽이 공유한다.
9
+ */
10
+ export async function getOrCreateStyleData(zipCache) {
11
+ let styleData = (await zipCache.get("xl/styles.xml"));
12
+ if (styleData == null) {
13
+ styleData = new ExcelXmlStyle();
14
+ zipCache.set("xl/styles.xml", styleData);
15
+ const typeData = (await zipCache.get("[Content_Types].xml"));
16
+ typeData.add("/xl/styles.xml", "application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml");
17
+ const wbRelData = (await zipCache.get("xl/_rels/workbook.xml.rels"));
18
+ wbRelData.add("styles.xml", "http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles");
19
+ }
20
+ return styleData;
21
+ }
22
+ //# sourceMappingURL=excel-style-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"excel-style-data.js","sourceRoot":"","sources":["../../src/utils/excel-style-data.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,QAAkB;IAC3D,IAAI,SAAS,GAAG,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,eAAe,CAAC,CAA8B,CAAC;IACnF,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QACtB,SAAS,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,QAAQ,CAAC,GAAG,CAAC,eAAe,EAAE,SAAS,CAAC,CAAC;QAEzC,MAAM,QAAQ,GAAG,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAwB,CAAC;QACpF,QAAQ,CAAC,GAAG,CACV,gBAAgB,EAChB,wEAAwE,CACzE,CAAC;QAEF,MAAM,SAAS,GAAG,CAAC,MAAM,QAAQ,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAyB,CAAC;QAC7F,SAAS,CAAC,GAAG,CACX,YAAY,EACZ,4EAA4E,CAC7E,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { ExcelBorderPosition, ExcelHorizontalAlign, ExcelVerticalAlign, ExcelXml, ExcelXmlStyleData } from "../types";
1
+ import type { ExcelBorderPosition, ExcelConditionalRuleStyle, ExcelFont, ExcelHorizontalAlign, ExcelStyleOptions, ExcelVerticalAlign, ExcelXml, ExcelXmlStyleData } from "../types";
2
2
  import "@simplysm/core-common";
3
3
  export interface ExcelStyle {
4
4
  numFmtId?: string;
@@ -7,7 +7,17 @@ export interface ExcelStyle {
7
7
  background?: string;
8
8
  verticalAlign?: ExcelVerticalAlign;
9
9
  horizontalAlign?: ExcelHorizontalAlign;
10
+ font?: ExcelFont;
10
11
  }
12
+ /**
13
+ * `ExcelStyleOptions` (사용자 표면) → 내부 `ExcelStyle` 변환.
14
+ * cell.setStyle 과 wb.setDefaultStyle 이 공유한다.
15
+ *
16
+ * - background ARGB 8자리 형식 검증
17
+ * - numberFormatCode 가 numberFormat 보다 우선
18
+ * - font 는 그대로 전달 (구체 검증은 ExcelXmlStyle 내부에서 수행)
19
+ */
20
+ export declare function convertExcelStyleOptions(opts: ExcelStyleOptions): ExcelStyle;
11
21
  /**
12
22
  * xl/styles.xml을 관리하는 클래스.
13
23
  * 숫자 형식, 배경색, 테두리, 정렬 등의 스타일을 처리한다.
@@ -16,11 +26,23 @@ export declare class ExcelXmlStyle implements ExcelXml {
16
26
  data: ExcelXmlStyleData;
17
27
  constructor(data?: ExcelXmlStyleData);
18
28
  add(style: ExcelStyle): string;
29
+ /**
30
+ * 워크북 default cell style 설정. `cellXfs[0].xf[0]` (OOXML default cell style 자리) 을 새로 빌드해 덮어쓴다.
31
+ * fonts/fills/borders/numFmts 자원은 `_getSameOrCreate*` 로 누적·dedup 되고 인덱스가 cellXfs[0] 에 박힌다.
32
+ * 미호출 시 기존 cellXfs[0] 그대로 보존된다.
33
+ */
34
+ setDefaultStyle(style: ExcelStyle): void;
19
35
  addWithClone(id: string, style: ExcelStyle): string;
20
36
  get(id: string): ExcelStyle;
37
+ addDxf(style: ExcelConditionalRuleStyle): string;
21
38
  getNumFmtCode(numFmtId: string): string | undefined;
22
39
  cleanup(): void;
23
40
  private _setNumFmtCode;
41
+ private _applyStyleToXf;
42
+ private _validateFont;
43
+ private _buildFontXml;
44
+ private _parseFontXml;
45
+ private _getSameOrCreateFont;
24
46
  private _applyAlignment;
25
47
  private _createBorderFromPositions;
26
48
  private _applyBorderPosition;
@@ -1 +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;IA+EnD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU;IAqE3B,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAMnD,OAAO,IAAI,IAAI;IAsBf,OAAO,CAAC,cAAc;IAuCtB,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,0BAA0B;IAiBlC,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,sBAAsB;CAgB/B"}
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,yBAAyB,EACzB,SAAS,EACT,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,QAAQ,EACR,iBAAiB,EAMlB,MAAM,UAAU,CAAC;AAClB,OAAO,uBAAuB,CAAC;AAI/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;IACvC,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,iBAAiB,GAAG,UAAU,CAiC5E;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;IAM9B;;;;OAIG;IACH,eAAe,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAMxC,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM;IAqFnD,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU;IAoF3B,MAAM,CAAC,KAAK,EAAE,yBAAyB,GAAG,MAAM;IAyChD,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAMnD,OAAO,IAAI,IAAI;IAsBf,OAAO,CAAC,cAAc;IAuCtB,OAAO,CAAC,eAAe;IAsCvB,OAAO,CAAC,aAAa;IAMrB,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,aAAa;IAqBrB,OAAO,CAAC,oBAAoB;IAW5B,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,0BAA0B;IAiBlC,OAAO,CAAC,oBAAoB;IAmB5B,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,sBAAsB;CAgB/B"}
@@ -1,5 +1,42 @@
1
1
  import "@simplysm/core-common";
2
2
  import { num, obj } from "@simplysm/core-common";
3
+ import { ExcelUtils } from "../utils/excel-utils.js";
4
+ /**
5
+ * `ExcelStyleOptions` (사용자 표면) → 내부 `ExcelStyle` 변환.
6
+ * cell.setStyle 과 wb.setDefaultStyle 이 공유한다.
7
+ *
8
+ * - background ARGB 8자리 형식 검증
9
+ * - numberFormatCode 가 numberFormat 보다 우선
10
+ * - font 는 그대로 전달 (구체 검증은 ExcelXmlStyle 내부에서 수행)
11
+ */
12
+ export function convertExcelStyleOptions(opts) {
13
+ const style = {};
14
+ if (opts.background != null) {
15
+ if (!/^[0-9A-F]{8}$/i.test(opts.background)) {
16
+ throw new Error("잘못된 색상 형식입니다. (형식: 00000000: alpha(반전)+rgb)");
17
+ }
18
+ style.background = opts.background;
19
+ }
20
+ if (opts.border != null) {
21
+ style.border = opts.border;
22
+ }
23
+ if (opts.horizontalAlign != null) {
24
+ style.horizontalAlign = opts.horizontalAlign;
25
+ }
26
+ if (opts.verticalAlign != null) {
27
+ style.verticalAlign = opts.verticalAlign;
28
+ }
29
+ if (opts.numberFormatCode != null) {
30
+ style.numFmtCode = opts.numberFormatCode;
31
+ }
32
+ else if (opts.numberFormat != null) {
33
+ style.numFmtId = ExcelUtils.convertNumFmtNameToId(opts.numberFormat).toString();
34
+ }
35
+ if (opts.font != null) {
36
+ style.font = opts.font;
37
+ }
38
+ return style;
39
+ }
3
40
  /**
4
41
  * xl/styles.xml을 관리하는 클래스.
5
42
  * 숫자 형식, 배경색, 테두리, 정렬 등의 스타일을 처리한다.
@@ -49,33 +86,19 @@ export class ExcelXmlStyle {
49
86
  }
50
87
  add(style) {
51
88
  const newXf = { $: {} };
52
- if (style.numFmtId != null) {
53
- newXf.$.numFmtId = style.numFmtId;
54
- }
55
- if (style.numFmtCode != null) {
56
- newXf.$.numFmtId = this._setNumFmtCode(style.numFmtCode);
57
- newXf.$.applyNumberFormat = "1";
58
- }
59
- if (style.background != null) {
60
- const newFill = {
61
- patternFill: [
62
- {
63
- $: { patternType: "solid" },
64
- fgColor: [{ $: { rgb: style.background.toUpperCase() } }],
65
- },
66
- ],
67
- };
68
- newXf.$.applyFill = "1";
69
- newXf.$.fillId = this._getSameOrCreateFill(newFill);
70
- }
71
- if (style.border != null) {
72
- const newBorder = this._createBorderFromPositions(style.border);
73
- newXf.$.applyBorder = "1";
74
- newXf.$.borderId = this._getSameOrCreateBorder(newBorder);
75
- }
76
- this._applyAlignment(newXf, style);
89
+ this._applyStyleToXf(newXf, style);
77
90
  return this._getSameOrCreateXf(newXf);
78
91
  }
92
+ /**
93
+ * 워크북 default cell style 설정. `cellXfs[0].xf[0]` (OOXML default cell style 자리) 을 새로 빌드해 덮어쓴다.
94
+ * fonts/fills/borders/numFmts 자원은 `_getSameOrCreate*` 로 누적·dedup 되고 인덱스가 cellXfs[0] 에 박힌다.
95
+ * 미호출 시 기존 cellXfs[0] 그대로 보존된다.
96
+ */
97
+ setDefaultStyle(style) {
98
+ const newXf = { $: { numFmtId: "0" } };
99
+ this._applyStyleToXf(newXf, style);
100
+ this.data.styleSheet.cellXfs[0].xf[0] = newXf;
101
+ }
79
102
  addWithClone(id, style) {
80
103
  const idNum = num.parseInt(id);
81
104
  if (idNum == null) {
@@ -140,6 +163,11 @@ export class ExcelXmlStyle {
140
163
  cloneXf.$.borderId = this._getSameOrCreateBorder(newBorder);
141
164
  }
142
165
  }
166
+ if (style.font != null) {
167
+ this._validateFont(style.font);
168
+ cloneXf.$.applyFont = "1";
169
+ cloneXf.$.fontId = this._getSameOrCreateFont(this._buildFontXml(style.font));
170
+ }
143
171
  this._applyAlignment(cloneXf, style);
144
172
  return this._getSameOrCreateXf(cloneXf);
145
173
  }
@@ -192,9 +220,56 @@ export class ExcelXmlStyle {
192
220
  }
193
221
  result.verticalAlign = xf.alignment?.[0].$.vertical;
194
222
  result.horizontalAlign = xf.alignment?.[0].$.horizontal;
223
+ if (xf.$.fontId != null) {
224
+ const fontIdNum = num.parseInt(xf.$.fontId);
225
+ if (fontIdNum != null) {
226
+ const font = this.data.styleSheet.fonts[0].font[fontIdNum];
227
+ if (font != null) {
228
+ const parsed = this._parseFontXml(font);
229
+ if (Object.keys(parsed).length > 0) {
230
+ result.font = parsed;
231
+ }
232
+ }
233
+ }
234
+ }
195
235
  }
196
236
  return result;
197
237
  }
238
+ addDxf(style) {
239
+ const dxfItem = {};
240
+ if (style.fontColor != null || style.fontWeight != null) {
241
+ const font = {};
242
+ if (style.fontWeight != null) {
243
+ font.b = [{ $: { val: style.fontWeight === "bold" ? "1" : "0" } }];
244
+ }
245
+ if (style.fontColor != null) {
246
+ font.color = [{ $: { rgb: style.fontColor.toUpperCase() } }];
247
+ }
248
+ dxfItem.font = [font];
249
+ }
250
+ if (style.background != null) {
251
+ dxfItem.fill = [
252
+ {
253
+ patternFill: [
254
+ {
255
+ $: { patternType: "solid" },
256
+ bgColor: [{ $: { rgb: style.background.toUpperCase() } }],
257
+ },
258
+ ],
259
+ },
260
+ ];
261
+ }
262
+ const dxfs = (this.data.styleSheet.dxfs = this.data.styleSheet.dxfs ?? [
263
+ { $: { count: "0" }, dxf: [] },
264
+ ]);
265
+ const prevSameDxf = dxfs[0].dxf.single((item) => obj.equal(item, dxfItem));
266
+ if (prevSameDxf != null) {
267
+ return dxfs[0].dxf.indexOf(prevSameDxf).toString();
268
+ }
269
+ dxfs[0].dxf.push(dxfItem);
270
+ dxfs[0].$.count = dxfs[0].dxf.length.toString();
271
+ return (dxfs[0].dxf.length - 1).toString();
272
+ }
198
273
  getNumFmtCode(numFmtId) {
199
274
  return (this.data.styleSheet.numFmts?.[0].numFmt ?? []).single((item) => item.$.numFmtId === numFmtId)?.$.formatCode;
200
275
  }
@@ -243,6 +318,103 @@ export class ExcelXmlStyle {
243
318
  this.data.styleSheet.numFmts[0].$.count = ((num.parseInt(this.data.styleSheet.numFmts[0].$.count) ?? 0) + 1).toString();
244
319
  return nextNumFmtId;
245
320
  }
321
+ _applyStyleToXf(xf, style) {
322
+ if (style.numFmtId != null) {
323
+ xf.$.numFmtId = style.numFmtId;
324
+ }
325
+ if (style.numFmtCode != null) {
326
+ xf.$.numFmtId = this._setNumFmtCode(style.numFmtCode);
327
+ xf.$.applyNumberFormat = "1";
328
+ }
329
+ if (style.background != null) {
330
+ const newFill = {
331
+ patternFill: [
332
+ {
333
+ $: { patternType: "solid" },
334
+ fgColor: [{ $: { rgb: style.background.toUpperCase() } }],
335
+ },
336
+ ],
337
+ };
338
+ xf.$.applyFill = "1";
339
+ xf.$.fillId = this._getSameOrCreateFill(newFill);
340
+ }
341
+ if (style.border != null) {
342
+ const newBorder = this._createBorderFromPositions(style.border);
343
+ xf.$.applyBorder = "1";
344
+ xf.$.borderId = this._getSameOrCreateBorder(newBorder);
345
+ }
346
+ if (style.font != null) {
347
+ this._validateFont(style.font);
348
+ xf.$.applyFont = "1";
349
+ xf.$.fontId = this._getSameOrCreateFont(this._buildFontXml(style.font));
350
+ }
351
+ this._applyAlignment(xf, style);
352
+ }
353
+ _validateFont(font) {
354
+ if (font.color != null && !/^[0-9A-F]{8}$/i.test(font.color)) {
355
+ throw new Error("잘못된 폰트 색상 형식입니다. (형식: 00000000: alpha(반전)+rgb)");
356
+ }
357
+ }
358
+ _buildFontXml(font) {
359
+ const result = {};
360
+ if (font.size != null) {
361
+ result.sz = [{ $: { val: font.size.toString() } }];
362
+ }
363
+ if (font.family != null) {
364
+ result.name = [{ $: { val: font.family } }];
365
+ }
366
+ if (font.bold === true) {
367
+ result.b = [{}];
368
+ }
369
+ if (font.italic === true) {
370
+ result.i = [{}];
371
+ }
372
+ if (font.underline != null) {
373
+ result.u = [{ $: { val: font.underline } }];
374
+ }
375
+ if (font.strike === true) {
376
+ result.strike = [{}];
377
+ }
378
+ if (font.color != null) {
379
+ result.color = [{ $: { rgb: font.color.toUpperCase() } }];
380
+ }
381
+ return result;
382
+ }
383
+ _parseFontXml(item) {
384
+ const result = {};
385
+ if (item.sz?.[0].$.val != null) {
386
+ const sz = num.parseFloat(item.sz[0].$.val);
387
+ if (sz != null)
388
+ result.size = sz;
389
+ }
390
+ if (item.name?.[0].$.val != null) {
391
+ result.family = item.name[0].$.val;
392
+ }
393
+ if (item.b != null)
394
+ result.bold = true;
395
+ if (item.i != null)
396
+ result.italic = true;
397
+ if (item.u != null) {
398
+ result.underline = item.u[0].$?.val ?? "single";
399
+ }
400
+ if (item.strike != null)
401
+ result.strike = true;
402
+ if (item.color?.[0].$.rgb != null) {
403
+ result.color = item.color[0].$.rgb;
404
+ }
405
+ return result;
406
+ }
407
+ _getSameOrCreateFont(item) {
408
+ const prevSameFont = this.data.styleSheet.fonts[0].font.single((f) => obj.equal(f, item));
409
+ if (prevSameFont != null) {
410
+ return this.data.styleSheet.fonts[0].font.indexOf(prevSameFont).toString();
411
+ }
412
+ else {
413
+ this.data.styleSheet.fonts[0].font.push(item);
414
+ this.data.styleSheet.fonts[0].$.count = this.data.styleSheet.fonts[0].font.length.toString();
415
+ return (this.data.styleSheet.fonts[0].font.length - 1).toString();
416
+ }
417
+ }
246
418
  _applyAlignment(xf, style) {
247
419
  if (style.verticalAlign != null) {
248
420
  xf.$.applyAlignment = "1";