[]
        
(Showing Draft Content)

숫자 및 날짜 서식

사용자는 워크시트에서 숫자 및 날짜 형식을 설정할 수 있습니다. SpreadJS는 사용자가 원하는 동작을 선택할 수 있도록 두 가지 모드인 마스크 모드와 오버플로우 모드를 제공합니다.

기본적으로 사용자는 열 너비에 따라 셀의 데이터를 마스킹할 수 있습니다. 이를 마스크 모드(Mask Mode)라고 합니다. 사용자는 셀의 데이터를 마스킹하지 않고 인접한 셀로 넘치도록 허용할 수도 있으며, 이를 오버플로우 모드(Overflow Mode)라고 합니다.

각 모드에 대한 설명은 아래와 같습니다.

마스크 모드

마스크 모드 기능은 수백 또는 수천 개의 다양한 너비를 가진 열을 포함하는 스프레드시트를 다루는 경우에 특히 유용합니다. 데이터는 열에 사용 가능한 공간에 따라 동적으로 표시됩니다.

예를 들어 사용자가 셀에 "123456.654321"을 입력한 경우, 열 너비에 따라 셀의 데이터는 다음과 같이 다르게 표시됩니다:

123456.654321 → 123456.65432 → 123456.6543 → 123456.654 → 123456.65 → 123456.7 → 123457 → 1E+05 → ####



숫자를 표시할 때 적용되는 규칙

다음과 같은 규칙이 숫자 표시 시 적용됩니다:

  • 열 너비가 정수 부분을 표시하기에 충분하지 않은 경우, 지수 표기법이 사용됩니다. [예: 아래 이미지의 B1 셀 참고].

  • 열 너비가 정수 부분은 포함할 수 있지만 소수 부분을 표시할 수 없는 경우, 소수점 이하가 반올림됩니다. [예: 아래 이미지의 C1 셀 참고].

  • 가장 짧은 지수 표기법으로도 표시할 수 없는 경우 [예: 아래 이미지의 A1 셀 참고], 숫자는 "####"로 표시되며, "#"의 개수는 열 너비에 따라 결정됩니다.



날짜를 표시할 때 적용되는 규칙

다음과 같은 규칙이 날짜 표시 시 적용됩니다:

  • 날짜 텍스트의 길이가 열 너비보다 클 경우, 셀은 "######"로 표시되며 "#"의 개수는 열 너비에 따라 결정됩니다.



아래의 코드 샘플은 열 너비에 따라 날짜와 숫자를 표시하는 방법을 보여줍니다.

// 숫자 표시 
var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
var sheet = spread.getActiveSheet();
sheet.suspendPaint();
var width = [35, 45, 54, 66, 71, 80, 88, 95, 114];
for (var c = 0; c < 9; c++)
{
sheet.setValue(0, c, 123456.654321);
sheet.setColumnWidth(c, width[c]);
}
sheet.resumePaint();
// 날짜 표
var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"));
var sheet = spread.getActiveSheet();
sheet.suspendPaint();
var date = new Date(2018, 9, 7);
sheet.setValue(0, 0, date);
sheet.setFormatter(0, 0, 'yyyy-mm-dd');
sheet.setColumnWidth(0, 80);
sheet.resumePaint();      

참고: SpreadJS에서 날짜 및 숫자 서식을 지정할 때 다음과 같은 제한 사항을 고려해야 합니다 -

  • TextIndent 속성을 설정하면 셀의 숫자 및 날짜 서식에 영향을 줍니다.

    예: 열 너비가 60px이고 텍스트 들여쓰기(TextIndent)가 40px로 설정되어 있다면, 숫자나 날짜를 표시하는 데 남는 공간은 20px(60px - 40px)입니다. 하지만 “#”을 표시할 경우에는 열 너비인 “60px” 전체를 사용하여 “####”를 표시합니다.

  • shrinkToFit 속성이 Boolean true로 설정된 경우, 숫자 및 날짜 서식에는 영향을 주지 않습니다.

  • 셀 서식과 셀 값이 숫자인 경우, SpreadJS는 셀의 값을 변경하지 않으며, 텍스트 길이가 열 너비보다 큰 경우에만 “###”를 표시합니다.

오버플로우 모드

SpreadJS는 열 너비가 전체 숫자를 표시하기에 충분하지 않을 경우, 기본적으로 "####", 지수 표기법, 반올림된 정수 값을 표시합니다. 그러나 NumbersFitMode 워크북 옵션의 값을 1로 설정함으로써, 셀 콘텐츠가 마스킹되는 기본 동작을 방지할 수 있습니다.

NumbersFitMode 옵션은 숫자 또는 날짜의 길이가 열 너비보다 클 경우, 인접 셀로 콘텐츠가 넘치도록 허용하여 전체 숫자나 날짜를 표시할 수 있도록 도와줍니다. 이 옵션은 날짜에도 동일하게 적용됩니다.



아래 예제는 숫자 또는 날짜의 길이가 열 너비를 초과할 때, 셀 내용을 오버플로우하도록 설정하는 방법을 보여줍니다.

//numbersFitMode 옵션을 1로 설정
spread.options.numbersFitMode = 1;

//날짜 설정
var d = new Date();
activeSheet.setValue(1, 3, new Date(2011, 11, 11));

//숫자 설정 
activeSheet.getCell(1, 1, GC.Spread.Sheets.SheetArea.viewport).text("12345678901239");