[]
SpreadJS는 통합 문서 파일에 저장되는 What-If 분석 기능에 대해 가져오기 및 내보내기 호환성을 지원합니다.
이 항목에서는 다음 기능의 호환성 동작을 설명합니다.
데이터 테이블 분석
시나리오 분석
SpreadJS는 가져오기 및 내보내기 시 Excel What-If 분석 데이터 테이블과 SJS.TABLE 수식 간에 변환합니다.
What-If 분석 데이터 테이블이 포함된 Excel 통합 문서를 열면 SpreadJS는 각 데이터 테이블을 이에 해당하는 SJS.TABLE 수식으로 변환합니다.
결과 수식 유형은 Excel 파일 버전 및 allowDynamicArray 설정에 따라 달라집니다.
Excel 파일 유형 | allowDynamicArray | SpreadJS에서의 결과 |
|---|---|---|
Excel 2019 이하에서 생성 | false |
|
Excel 365 이상에서 생성 | true | 자동으로 분산되는 동적 배열 수식으로 가져옵니다. |
두 경우 모두 다음이 적용됩니다.
원본 Excel 파일의 계산 결과가 유지됩니다.
SpreadJS에서 수식이 정상적으로 다시 계산됩니다.
SpreadJS 통합 문서를 내보낼 때 SpreadJS는 각 SJS.TABLE 수식을 Excel의 기본 데이터 테이블로 변환하려고 시도합니다.
변환에 성공하면:
생성된 .xlsx 파일에 표준 Excel 데이터 테이블이 포함됩니다.
Excel에서 파일을 열면 예상대로 동작합니다.
변환에 실패하면:
SJS.TABLE 수식이 내보낸 파일에 그대로 유지됩니다.
Excel에서는 수식 텍스트가 표시되지만 기본 데이터 테이블로 인식되지 않습니다.
변환은 가능한 범위 내에서 수행되며 Excel의 구조적 제한 사항이 적용됩니다.
다음 조건 중 하나라도 해당하면 SJS.TABLE에서 Excel 데이터 테이블로의 변환이 실패합니다.
수식에 다른 시트에 대한 참조가 포함되어 있습니다.
수식에 두 개를 초과하는 inputs / input_cell 쌍이 포함되어 있습니다.
참조된 범위를 유효한 워크시트 주소로 확인할 수 없습니다.
입력 값 범위가 Excel에서 요구하는 데이터 테이블 레이아웃과 구조적으로 일치하지 않습니다.
1변수 데이터 테이블의 왼쪽 위 위치를 제외하고 input_cell이 데이터 테이블 결과 영역 내에 있습니다.
Excel과의 왕복 호환성이 필요한 경우
SJS.TABLE사용을 하나 또는 두 개의 입력 쌍으로 제한하고 다른 시트에 대한 참조를 사용하지 마세요.
SpreadJS는 가져오기 및 내보내기 시 Excel 시나리오와 SpreadJS 시나리오 간에 변환합니다.
SpreadJS 시나리오는 통합 문서 범위입니다. 하나의 시나리오에 여러 워크시트의 변경 셀이 포함될 수 있습니다.
Excel 시나리오는 워크시트 범위입니다. 가져오기 및 내보내기 시 SpreadJS는 이러한 범위 모델 간에 변환합니다.
시나리오가 포함된 Excel 통합 문서를 가져오면 SpreadJS는 워크시트 범위의 Excel 시나리오를 통합 문서 수준의 SpreadJS 시나리오로 가져옵니다.
Excel 파일의 서로 다른 워크시트에 이름이 같은 시나리오가 있는 경우 SpreadJS에서는 하나의 통합 문서 수준 시나리오로 병합됩니다.
SpreadJS 통합 문서를 Excel로 내보내면 SpreadJS는 통합 문서 수준의 시나리오를 워크시트 범위의 Excel 시나리오로 다시 내보냅니다.
SpreadJS 시나리오에 여러 워크시트의 변경 셀이 포함되어 있는 경우 내보낸 Excel 파일에서는 해당 워크시트별로 분할됩니다.
SpreadJS 통합 문서에서 시나리오 이름은 고유해야 합니다.
SpreadJS 시나리오 이름은 대/소문자를 구분합니다. 예를 들어 Plan A와 plan a는 SpreadJS에서 서로 다른 시나리오 이름으로 처리됩니다.
Excel에서 중복된 시나리오 이름을 가져오면 SpreadJS는 이를 하나의 통합 문서 수준 시나리오로 병합합니다.
Excel은 전통적으로 시나리오의 변경 셀 수를 제한합니다. SpreadJS에는 이러한 제한이 없습니다.
시나리오에 Excel의 기존 제한보다 많은 변경 셀이 포함되어 있어도 시나리오를 내보낼 수 있습니다. 단, 호환성은 대상 Excel 버전에서 이러한 시나리오를 처리하는 방식에 따라 달라집니다.
Excel 시나리오 입력 셀에는 서식 관련 페이로드가 포함될 수 있습니다. SpreadJS 시나리오는 변경 셀의 셀 값을 저장하며 숫자 서식 식별자와 같은 Excel 시나리오 입력 셀의 서식 페이로드는 유지하지 않습니다.
서식을 유지해야 하는 경우 대상 셀에 워크시트 스타일 및 서식을 직접 사용하세요.
Excel 호환성과 관계없이 다음과 같은 제한 사항이 적용됩니다.
SJS.TABLE은 비동기 함수와 함께 사용할 수 없습니다.
result_reference 또는 해당 종속 셀에 defaultValue 또는 setAsyncResult를 사용하는 비동기 함수가 포함되어 있으면 반환 결과를 예측할 수 없습니다.
데이터 테이블 계산에서는 동기 수식만 사용하세요.
SJS.TABLE은 SpreadJS Calc Worker 내에서 실행할 때 완전히 지원됩니다. 추가 구성이 필요하지 않습니다.