[]
        
(Showing Draft Content)

공유 수식

SpreadJS는 공유 수식을 지원하여 사용자가 수식 메서드를 사용해 셀 범위에 공유 수식을 적용할 수 있도록 합니다. 이를 통해 범위 내 각 셀에 동일한 수식을 반복해서 입력할 필요가 없어지고, JSON 파일을 가져오거나 내보낼 때 수식 입력 성능이 향상됩니다. 또한, 내보낸 파일의 크기를 줄이고 메모리 비용을 절감하는 데 도움이 됩니다.

다음과 같은 표 형식으로 데이터가 채워진 워크시트를 고려해 보세요:

shared-formulas-format.png

각 항목의 총 가격을 계산하는 "Total" 열에 수식을 추가하려고 한다고 가정해 보겠습니다.

총 가격을 계산하는 수식은 "Qty * Price"입니다. 예를 들어, E3 셀의 수식은 =C3*D3가 됩니다.

이 작업을 수행하는 방법은 두 가지가 있습니다:

  • 개별 셀에 수식 적용

    이 방법에서는 각 개별 행의 셀 참조를 업데이트해야 하므로, Spread 셀들이 각 수식을 개별적으로 해석할 수 있습니다. 하지만 데이터가 많고 수식이 복잡한 워크시트의 경우 시간이 많이 소요될 수 있습니다. 또한 추가적인 코드 라인과 반복문을 사용해야 할 수도 있습니다.

  • 공유 수식 적용

    두 번째 방법은 공유 수식을 사용합니다. 이 방법은 각 행의 셀 참조를 자동으로 업데이트하고 총합을 계산합니다.

    Total 열의 각 셀에 개별적으로 수식을 추가하는 대신, 공유 수식 "=C3*D3"을 사용합니다. 공유 수식 방식은 Formula(value?: string, autoAdjustReference?: boolean) 함수를 사용하며, 이 함수는 autoAdjustReference 매개변수를 제공합니다. 이 매개변수를 true로 설정하면 각 셀의 상대 참조가 자동으로 조정됩니다.

    apply-shared-formulas.png

    공유 수식을 사용하려면 수식을 적용할 범위를 지정해야 합니다. 이 예제에서는 범위가 [E3:E6]이며, getRange 메서드를 사용하여 해당 셀 범위를 가져올 수 있습니다. 또한 formula 메서드에서 첫 번째 셀 값인 E3을 설정하면, 나머지 Total 열의 셀들도 자동으로 계산됩니다.

다음 코드 스니펫은 워크시트에서 공유 수식을 구현하기 위해 formula 메서드를 사용하는 예를 보여줍니다:

// autoAdjustReference를 true로 설정하여 공유 수식 사용
sheet.getRange(2, 4, 4, 1).formula("=C3*D3", true);

이번에는 autoAdjustReference 매개변수를 false로 설정하여 차이를 확인해보겠습니다.

parameter-false.png

확인해보면, 매개변수를 false로 설정했을 때는 C3와 D3의 셀 값만 사용되어 E3에서 E6까지의 셀 범위에 동일하게 적용됩니다.