# 19.1.0 버전 릴리스 노트

## Content

## 이전 릴리스 대비 향상된 기능

#### 디자이너 향상

* **[템플릿 구성 및 기본 템플릿](/spreadjs/docs/spreadjs-designer-component/template-based-workbook-initialization)**: 이제 디자이너가 초기화 또는 재설정 시 기본 템플릿을 로드할 수 있습니다. 이를 통해 팀은 매번 동일한 설정을 다시 구성하지 않고도 미리 정의된 스타일, 설정 및 구조를 포함한 새 워크북으로 작업을 시작할 수 있습니다.
* **[함수 삽입 대화 상자에 검색 추가](/spreadjs/docs/spreadjs-designer-component/spdesignerwork/insert-function-dialog)**: 이제 사용자가 함수 삽입 대화 상자에서 키워드로 검색할 수 있어, 많은 수의 함수를 사용하는 경우나 스프레드시트 작성 경험이 적은 사용자가 적절한 함수를 더 빠르게 찾을 수 있습니다.
* **[VS Code용 SpreadJS XLSX Editor 플러그인](/spreadjs/docs/spreadjs-designer-vscode-plugin)**: 이제 VS Code에서 SpreadJS 디자이너를 사용할 수 있습니다. 개발자는 일반적인 개발 워크플로우 안에서 `.sjs`, `.ssjson`, `.xlsx`, `.xlsm`, `.xltm`, `.xltx`, `.csv` 파일을 직접 열고 편집할 수 있습니다.
* **[디자이너의 DataObject 셀 타입](/spreadjs/docs/features/cells/celltypes/dataobject-cell)**: 이제 디자이너 UI에서 DataObject 셀 타입을 구성할 수 있어, 객체 기반 또는 JSON 기반 셀 표시 시나리오를 구현할 때 코드를 작성할 필요가 줄어듭니다.
* **[Desktop Designer의 Apple Silicon 지원](/spreadjs/docs/spdesigner/spdesigner-gettingstarted)**: macOS Desktop Designer 앱이 이제 Apple M 시리즈 장치를 지원하여 성능이 향상되고 최신 Mac에서 Intel 기반 빌드를 실행할 때의 비효율을 해소합니다.

#### 수식

* **[Calc Worker에서 사용자 정의 함수 지원](/spreadjs/docs/features/formulas/incremental-calculations/custom-functions-in-calc-worker)**: 이제 사용자 정의 함수를 Calc Worker 내부에서 실행할 수 있습니다. 복잡한 비즈니스 로직을 사용하는 계산 집약적인 애플리케이션에서도 더 많은 작업을 UI 스레드 밖에서 처리하여 부드러운 편집 환경을 유지할 수 있습니다.
* **값 및 배열 텍스트 변환 함수**: [VALUETOTEXT](/spreadjs/docs/formulareference/FormulaFunctions/text-functions/valuetotext) 및 [ARRAYTOTEXT](/spreadjs/docs/formulareference/FormulaFunctions/text-functions/arraytotext) 함수가 추가되었습니다. 이를 통해 단일 값과 배열을 텍스트로 쉽게 변환할 수 있으며, 최신 Excel 기반 워크북 로직과의 호환성도 향상됩니다.

#### 조건부 서식

* **[상위/하위 백분율 규칙](/spreadjs/docs/features/condformat/top10rule)**: 백분율 기반 상위/하위 조건부 서식 규칙이 Excel과 더욱 유사하게 동작하도록 개선되었습니다. 이를 통해 기존 워크북을 가져오거나 재구성할 때 순위 기반 강조 표시 로직을 유지할 수 있습니다.
* **[조건부 서식의 스파크라인 규칙](/spreadjs/docs/features/condformat/sparkline-rule)**: 이제 조건부 서식에서 스파크라인 스타일 시각화를 직접 사용할 수 있습니다. 추가 수식 없이도 롤리팝, 게이지, 불릿, 분산 차트와 같은 KPI 표시를 간결하게 구성할 수 있습니다.

#### 셀 서식

* **[단일 및 이중 회계 밑줄](/spreadjs/docs/features/cells/textdeco)**: Excel 스타일의 회계 밑줄 옵션이 추가되었습니다. 총계 및 재무 보고서 형식을 Excel과 동일하게 표현해야 하는 재무 문서에 특히 유용합니다.
* **[셀 안의 그림](/spreadjs/docs/features/cells/image-rich-data)**: 이제 그림을 움직이는 개체 대신 셀 값처럼 사용할 수 있습니다. 이를 통해 이미지 기반 데이터를 정렬, 필터링, 검색, 조회하고 Excel 호환 워크플로우에 포함시키는 것이 쉬워집니다.
* **[명명된 셀 템플릿](/spreadjs/docs/features/workbook/named-cell-templates)**: 스타일, 유효성 검사, 조건부 서식 및 셀 상태를 재사용 가능한 워크북 수준 템플릿으로 구성하고 여러 범위에 일관되게 적용할 수 있는 이름이 지정된 셀 템플릿이 추가되었습니다.

#### 가상 분석

* **[가상 분석 데이터 표 지원](/spreadjs/docs/features/what-if-analysis/data-table)**: 이제 SpreadJS가 Excel 스타일의 가상 분석 데이터 표를 지원합니다. 사용자는 수동으로 시뮬레이션 표를 만들지 않고도 워크시트 내에서 단일 변수 및 이중 변수 시나리오를 분석할 수 있습니다.
* **[가상 분석 목표값 찾기 지원](/spreadjs/docs/features/what-if-analysis/goal-seek)**: 목표값 찾기에 반복 계산 제어 및 진행 상태 처리 옵션이 추가되어 계획 수립, 예측 및 목표 기반 계산에 더욱 실용적으로 사용할 수 있습니다.

#### 가져오기/내보내기

* **[XLTX 파일 형식 지원](/spreadjs/docs/features/spreadjs-file-format)**: 이제 SpreadJS에서 `.xltx` 템플릿 파일의 가져오기 및 내보내기를 지원합니다. 이를 통해 팀은 브라우저 및 디자이너 환경에서 Excel 기반 워크북 템플릿을 재사용할 수 있습니다.
* **[Excel에서 SparklineEx 유형을 이미지로 내보내기](/spreadjs/docs/features/WorkingwithBarcodes)**: 이제 바코드, 스파크라인 및 기타 SparklineEx 결과를 Excel로 이미지 형태로 내보낼 수 있습니다. Excel이 원래 수식 유형을 지원하지 않더라도 시각적 콘텐츠를 유지할 수 있습니다.

#### 데이터 매니저

* **[요청 헤더 사용자 지정 UI](/spreadjs/docs/spreadjs-designer-component/spdesignerwork/data-source/configuring-table-data-source#%EC%9A%94%EC%B2%AD-%ED%97%A4%EB%8D%94)**: 이제 디자이너에서 요청 헤더 구성을 위한 UI를 제공합니다. 인증 또는 사용자 지정 헤더가 필요한 보안 API에 워크북 기반 솔루션을 더 쉽게 연결할 수 있습니다.
* **[데이터 원본 패널 향상](/spreadjs/docs/spreadjs-designer-component/spdesignerwork/data-source/managing-columns)**: 데이터 매니저 설계 환경이 보다 명확한 설정 및 미리 보기 흐름으로 재구성되었습니다. 이를 통해 사용자가 데이터 원본을 더욱 쉽게 바인딩하고 검증할 수 있습니다.
* **[SJS 파일의 데이터 매니저 내장 JSON](/spreadjs/docs/spreadjs-designer-component/spdesignerwork/data-source/configuring-table-data-source)**: 이제 DataManager JSON을 `.sjs` 파일 안에 더욱 깔끔하게 포함할 수 있습니다. 이를 통해 이식성이 향상되고 향후 더 풍부한 내장 자산 시나리오를 지원할 수 있도록 파일 형식이 개선되었습니다.

#### 테이블 시트

* **[다중 열 정렬 지원](/spreadjs/docs/features/tablesheet/tablesheet-operations/tablesheet-sort-filter)**: 이제 테이블 시트가 다중 열 정렬을 지원합니다. 보다 명확한 제어 및 표시를 통해 기존 정렬 수준을 유지하면서 복합 정렬 조건을 구성할 수 있습니다.
* **[여러 선택 열에 열 스타일 적용](/spreadjs/docs/features/tablesheet/tablesheet-rules)**: 여러 테이블 시트 열을 선택한 경우 스타일 변경 사항을 전체 선택 영역에 한 번에 적용할 수 있어 대규모 데이터 그리드의 서식 작업이 편리해졌습니다.
* **[테이블 시트의 빈 값 표시](/spreadjs/docs/features/tablesheet/tablesheet-views/customize-display-null-and-empty-values)**: 사용자 지정 서식 지정기가 이제 `null` 및 빈 문자열 값을 보다 유연하게 처리할 수 있습니다. 이를 통해 사용자 정의 셀 타입 없이도 `N/A`, `--` 또는 빈 출력과 같은 표시를 구현할 수 있습니다.

#### 피벗 테이블

* **[Excel 스타일 날짜 그룹 자동 추가](/spreadjs/docs/features/pivot-table/group-and-collapse)**: 피벗 테이블이 이제 날짜 그룹을 자동으로 생성할 수 있습니다. 사용자는 원시 거래 날짜를 연도, 분기, 월 단위 분석으로 보다 쉽게 전환할 수 있습니다.
* **[피벗 패널 필드 검색 추가](/spreadjs/docs/features/pivot-table/pivot-table-components)**: 피벗 패널에 Excel과 유사한 검색 상자가 추가되었습니다. 대규모 피벗 데이터셋에서 원하는 필드를 빠르게 찾을 수 있습니다.
* **[피벗 테이블에서 셀 안의 그림 원본 데이터 지원](/spreadjs/docs/features/cells/image-rich-data#타입-참여)**: 피벗 테이블이 이제 셀 안의 그림 데이터를 원본으로 사용할 수 있습니다. 제품 카탈로그, SKU 대시보드 및 시각적 보고서와 같은 시나리오에 유용합니다.

#### 동시 작업 서버

* **[테이블 시트 및 데이터 매니저 지원](/spreadjs/docs/spreadjs-collaboration-server/spreadjs-sheets-collaboration/collaboration-capability/data-manager-based-model/tablesheet)**: 이제 동시 작업 서버가 테이블 시트와 데이터 매니저 구성의 동시 작업을 지원합니다. 여러 사용자가 복잡한 데이터 뷰를 공동 작성하면서 구조와 설정을 동기화할 수 있습니다.
* **[데이터 매니저의 로컬 데이터 지원](/spreadjs/docs/spreadjs-collaboration-server/spreadjs-sheets-collaboration/collaboration-capability/data-manager-based-model)**: 이제 동시 작업이 데이터 매니저의 로컬 데이터도 지원합니다. 원격 데이터 원본에 의존하지 않고도 대규모 로컬 데이터셋과 계층 구조 뷰를 공동 작성할 수 있습니다.

#### 데이터 차트

* **[데이터 차트의 계층형 범주 지원](/spreadjs/docs/features/data-charts/data-binding#6단계---계층형-범주-바인딩)**: 이제 데이터 차트가 카테시안 차트에서 계층형 범주를 지원합니다. 연도 → 분기 → 월 또는 지역 → 국가 → 도시와 같은 다단계 비즈니스 차원을 보다 쉽게 시각화할 수 있습니다.
* **[트리맵 헤더 옵션](/spreadjs/docs/features/data-charts/chart-types/treemap-chart)**: 트리맵 차트의 헤더 표시를 보다 세밀하게 제어할 수 있습니다. 데이터 계층 구조에 맞게 레이블 표시 수준을 조정할 수 있습니다.
* **[선형, 영역형, 방사형 차트용 추가 `LineAspect` 옵션](/spreadjs/docs/features/data-charts/chart-types/line-charts#선-모양)**: `LineAspect` 옵션이 추가되어 다양한 차트 유형에서 추세선 및 선 표시 방식을 더욱 세밀하게 제어할 수 있습니다.
* [다중 필드 값 인코딩](/spreadjs/docs/features/data-charts/data-binding#다중-필드-값-인코딩): 이제 데이터 차트가 여러 필드에서 값을 가져오는 인코딩을 지원합니다. 재무 데이터, 범위 데이터, 다중 지표 시각화에 특히 유용합니다.

#### 간트 시트

* **[간트 시트 작성 UX 개선](/spreadjs/docs/spreadjs-designer-component/spdesignerwork/ganttsheet-designer)**: 간트 시트 설계 경험이 개선되어 필드 매핑, 계층 구조 구성 및 타임라인 설정을 보다 직관적이고 중앙화된 워크플로우에서 수행할 수 있습니다.
* **[간트 시트의 테이블 테마 지원](/spreadjs/docs/features/ganttsheet/table-themes)**: 이제 간트 시트가 테이블, 타임스케일 및 차트 영역 전반에서 TableTheme 스타일을 보다 일관되게 적용합니다.
* **[그리드와 차트 영역 사이의 분할 핸들](/spreadjs/docs/features/ganttsheet/splitter-handle)**: 새 분할 핸들이 추가되어 간트 시트의 표 영역과 차트 영역 크기를 보다 쉽게 조정할 수 있습니다.
* **[프로젝트 기간만 표시](/spreadjs/docs/features/ganttsheet/timescale-range-and-auto-fit)**: 이제 간트 차트가 실제 프로젝트 기간에 맞춰 타임라인을 표시할 수 있습니다. 불필요한 빈 공간을 줄여 대규모 일정 검토가 쉬워집니다.

#### UI 및 UX 향상

* **[스크롤바 자동 표시](/spreadjs/docs/features/workbook/scrollbar/scrollbars)**: 콘텐츠가 모두 표시될 경우 스크롤바를 자동으로 숨기고 필요할 때만 표시할 수 있습니다.
* **[Excel 스타일 확인란](/spreadjs/docs/features/cells/celltypes/cellcheckbox)**: 보다 현대적인 Excel 스타일 확인란을 지원하여 가져온 워크북의 의도된 상호 작용 UI를 유지할 수 있습니다.
* **[스레드 메모에서 멘션 비활성화](/spreadjs/docs/features/cells/cell-threaded-comments)**: 이제 스레드 메모에서 `@멘션` 기능을 비활성화할 수 있습니다.
* **[그리기 모드로 도형 추가](/spreadjs/docs/features/UnderstandingShapes/AddingBuiltInShapes)**: 시트 위에 직접 그려 도형을 배치할 수 있어 Excel과 유사한 사용 경험을 제공합니다.
* **[곡선 연결선 도형](/spreadjs/docs/features/UnderstandingShapes/AddingtheConnectorShapes)**: 곡선 연결선 도형을 지원하여 다이어그램 작성 시 보다 유연한 연결 경로를 구성할 수 있습니다.
* **[연결 지점 UI 향상](/spreadjs/docs/features/UnderstandingShapes/AddingtheConnectorShapes#connector-interaction-and-snapping-behavior)**: 흐름도 및 연결 다이어그램 작성 시 스냅 지점 표시, 연결 상태 시각화 및 실시간 경로 미리 보기가 개선되었습니다.

#### 프레임워크 지원

* **[Angular 21 지원](/spreadjs/docs/javascript_frameworks/angular)**: SpreadJS가 Angular 21과 호환됩니다.
* **[Next.js 16 지원](/spreadjs/docs/javascript_frameworks/spreadjs-with-nextjs)**: SpreadJS가 Next.js 16과 호환됩니다.

#### 기타 향상 사항

* **리포트 시트 레코드 추가/삭제 성능 개선**: 리포트 시트 미리 보기에서 레코드 추가 및 삭제 성능이 개선되어 많은 레코드를 포함한 템플릿에서 발생하던 지연이 감소했습니다.

***

## 해결된 이슈

#### 차트 및 도형

* Excel과 다르게 렌더링되던 일부 차트 문제를 수정했습니다.
* 특정 시나리오에서 추세선이 차트 영역을 벗어나 표시되던 문제를 수정했습니다.
* 일부 Excel 파일을 SpreadJS 디자이너로 가져올 때 차트가 누락되던 문제를 수정했습니다.
* Excel에서 수동으로 제거된 데이터 레이블 표시 상태가 가져오기 후 유지되지 않던 문제를 수정했습니다.
* 도형이 수식 바인딩을 사용할 때 Excel 내보내기 파일이 손상되던 문제를 수정했습니다.

#### 수식 및 계산

* Excel에서는 정상 동작하지만 SpreadJS에서 `#N/A`를 반환하던 일부 수식 문제를 수정했습니다.
* `getDependents` 및 `getPrecedents`가 사용되지 않는 범위를 스캔하지 않도록 최적화하여 대규모 시트 성능을 향상시켰습니다.
* 행 드래그 앤 드롭 후 행 머리글 수식 결과가 갱신되지 않던 문제를 수정했습니다.
* 찾기 및 바꾸기 수행 시 수식이 일반 텍스트로 변환되던 문제를 수정했습니다.

#### 조건부 서식

* 대규모 데이터 범위에 조건부 서식을 적용할 때 발생하던 성능 저하 문제를 수정했습니다.
* `ExcelCompatibleCalcMode` 활성화 시 "사이" 조건부 서식 규칙이 잘못 평가되던 문제를 수정했습니다.

#### 가져오기/내보내기 및 호환성

* 특정 Excel 파일을 가져온 후 셀 배경색이 예기치 않게 변경되던 문제를 수정했습니다.
* 향후 호환성 문제를 방지하기 위해 TypeScript 선언 패턴을 업데이트했습니다.

#### 테이블 시트 및 데이터

* Object 및 Array 열 타입이 JSON 문자열 값을 올바르게 구문 분석하지 못하던 문제를 수정했습니다.
* 동일한 선택 영역에 대해 중복 제거를 다시 적용할 때 빈 셀 처리 문제를 수정했습니다.
* "뒤에 추가(Add After)" 사용 시 새로 추가된 테이블 시트 행이 계층 구조 재계산 후 잘못된 위치에 표시되던 문제를 수정했습니다.
* 마지막 테이블 열을 삭제한 후에도 포커스를 변경하기 전까지 테이블 디자인 탭이 남아 있던 문제를 수정했습니다.
* 테이블 시트 행 작업 옵션의 `iconSize` 동작 및 API 일관성을 개선했습니다.

#### UI 및 상호 작용

* 열 분할 작업이 워크북을 수정된 상태로 표시하지 않던 문제를 수정했습니다.
* 특정 확대/축소 수준에서 `scrollbarShowMax` 및 `scrollbarMaxAlign` 옵션이 적용되지 않던 문제를 수정했습니다.
* `stateRule` 및 머리글 드래그가 활성화된 상태에서 머리글을 더블 클릭할 때 행/열 강조 표시가 잘못 동작하던 문제를 수정했습니다.
* SpreadJS v19 업그레이드 후 Power BI 사용자 지정 시각화 환경에서 발생하던 스크롤바 드래그 동작 회귀 문제를 수정했습니다.