! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

[WinForms] 셀에 수식 입력하고 나타내기 > 온라인 스터디

본문 바로가기

9. 수식 [WinForms] 셀에 수식 입력하고 나타내기

페이지 정보

작성자 MESCIUS 작성일 2021-10-27 15:19 조회 997회 댓글 0건

본문

셀 안에 수식을 사용하여 계산을 설정하고 수행할 수 있습니다.

셀에 수식을 입력하고 나타내는 방법에 대해서 알아보도록 하겠습니다. 




셀에 수식 입력하기

수식을 하나의 셀 또는 셀 범위에 입력할 수 있고, 한 열이나 행에 존재하는 모든 셀에 수식을 추가하는 것도 가능합니다. 수식은 일반적으로 함수, 연산자 및 상수의 조합을 포함하는 식이 있는 문자열입니다. 수식을 입력할 때에는 Formula 속성을 사용합니다. 아래 코드에서는 활성화된 시트의 셀 A1에 수식 5*5를 입력했습니다. 코드를 실행하면 셀 A1에서 25라는 결과값을 확인할 수 있습니다. 또한 해당 셀을 더블클릭하면 코드에서 입력했던 수식 5*5를 확인할 수 있습니다.

// 셀 A1에 5*5 입력
fpSpread1.ActiveSheet.Cells[0,0].Formula = "5*5";

01_FormulaInACell

행이나 열에 수식을 할당하는 경우, Spread.NET은 해당 행 또는 열의 첫번째 셀을 기준 위치로 사용합니다. 예를 들어, 셀 [A1:A4]에 값 {1, 2, 3, 4}가 입력되어 있을 때, B열에 수식 SUM(A1:A4)을 할당하면, 셀 B1에는 SUM(A1:A4), 셀 B2에는 SUM(A2:A5), 셀 B3에는 SUM(A3:A6)의 결과값이 표시됩니다.

// 셀 [A1:A4]에 데이터 입력
fpSpread1.ActiveSheet.Cells[0, 0].Value = 1;
fpSpread1.ActiveSheet.Cells[1, 0].Value = 2;
fpSpread1.ActiveSheet.Cells[2, 0].Value = 3;
fpSpread1.ActiveSheet.Cells[3, 0].Value = 4;
​
// D열에 수식 SUM(A1:A4) 입력.
fpSpread1.ActiveSheet.Columns[1].Formula = "SUM(A1:A4)";


02_FormulaInAColumn

수식에 사용될 데이터를 할당할 때 Text 속성을 사용할지 또는 Value 속성을 사용할지에 주의를 기울여야 하며, 수식에 참조할 셀 유형에도 신경을 써야 합니다. Text 속성을 사용하여 셀에 데이터를 할당할 때, Spread.NET은 셀 타입을 사용하여 할당된 문자열을 필요한 데이터 유형으로 분석합니다. 예를 들어, 아래 코드에서와 같이 셀 A2의 Text 속성값으로 "2"를 입력하면, Spread.NET은 문자열 "2"를 Double 데이터 형으로 파싱합니다. 따라서 SUM(A1:A3)의 결과값은 6이 됩니다.

// 셀 [A1:A3]에 데이터 입력
fpSpread1.ActiveSheet.Cells[0, 0].Value = 1;
fpSpread1.ActiveSheet.Cells[1, 0].Text = "2";
fpSpread1.ActiveSheet.Cells[2, 0].Value = 3;
​
// 셀 A5에 수식 SUM(A1:A3) 입력
fpSpread1.ActiveSheet.Cells[4, 0].Formula = "SUM(A1:A3)";


반면, Value 속성을 사용하여 셀에 데이터를 할당할 경우, Spread.NET은 셀 타입을 사용하여 할당된 객체를 파싱없이 받아들입니다. 예를 들어, 아래 코드와 같이 셀 C2의 Value 속성값으로 "2"를 입력하면, Spread.NET은 "2"를 문자열(String)로 인식합니다. SUM과 같은 일부 숫자 함수는 셀 영역 내에 숫자가 아닌 값들을 무시하기 때문에, 아래 코드를 실행하면 셀 C5에 4가 표시됩니다. 따라서 수식의 계산에 사용될 모든 셀의 값과 데이터 유형을 바르게 설정해야 합니다.

// 셀 [C1:C3]에 데이터 입력
fpSpread1.ActiveSheet.Cells[0, 2].Value = 1;
fpSpread1.ActiveSheet.Cells[1, 2].Value = "2";
fpSpread1.ActiveSheet.Cells[2, 2].Value = 3;
​
// 셀 C5에 수식 SUM(C1:C3) 입력
fpSpread1.ActiveSheet.Cells[4, 2].Formula = "SUM(C1:C3)";


 



셀에 수식 나타내기 


Spread.NET Winforms에서는 셀에 최종 계산값을 나타내는 대신 계산한 수식을 나타내도록 허용할 수 있습니다. 이를 위해 IWorksheetView 인터페이스의 DisplayFormulas 속성을 사용합니다. DisplayFormulas 속성은 워크시트 수준에서 설정되기 때문에, 특정 워크시트의 DisplayFormulas 속성값에 영향을 받지 않습니다. 기본 값은 false이며, DisplayFormulas 속성을 true로 설정하면 긴 수식을 셀에 편리하게 표시하기 위해 열 너비가 두배로 변경됩니다.

다음의 코드를 사용하여 DisplayFormulas 속성이 true로 설정된 시트와 false로 설정된 시트의 차이를 살펴봅시다.

  • Sheet1의 DisplayFormulas 속성을 false로 설정(default)

    // 셀 [A1:A3]에 데이터 입력
    fpSpread1.Sheets[0].Cells["A1"].Value = 1;
    fpSpread1.Sheets[0].Cells["A2"].Value = 2;
    fpSpread1.Sheets[0].Cells["A3"].Value = 3;
    ​
    // 셀 B1에 수식 SUM(A1:A3) 입력
    fpSpread1.Sheets[0].Cells["B1"].Formula = "SUM(A1:A3)";
    ​
    // Sheet1의 DisplayFormula 속성을 false로 설정
    fpSpread1.AsWorkbook().Worksheets[0].View.DisplayFormulas = false;

    04_DisplayFormulas_false

  • Sheet2의 DisplayFormulas 속성을 true로 설정

    // Sheet 추가
    fpSpread1.AddNewSheetView();
    ​
    // 셀 [A1:A3]에 데이터 입력
    fpSpread1.Sheets[1].Cells["A1"].Value = 1;
    fpSpread1.Sheets[1].Cells["A2"].Value = 2;
    fpSpread1.Sheets[1].Cells["A3"].Value = 3;
    ​
    // 셀 B1에 수식 SUM(A1:A3) 입력
    fpSpread1.Sheets[1].Cells["B1"].Formula = "SUM(A1:A3)";
    ​
    // Sheet2의 DisplayFormula 속성을 false로 설정
    fpSpread1.AsWorkbook().Worksheets[1].View.DisplayFormulas = true;

    05_DisplayFormulas_true


DisplayFormulas 속성값에 따라 B1셀에 수식 계산결과가 표시되거나 혹은 수식 자체가 표시되는 것을 확인할 수 있습니다. 또한 열의 너비도 두배 만큼 차이가 나는 것을 확인할 수 있습니다.


샘플을 다운로드하여 전체 코드를 확인해 보실 수 있습니다.

셀에 수식 나타내기 - 샘플 다운로드




지금 바로 Spread.NET을 다운로드하여 직접 테스트해보세요!

spnet.png

  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기

태그1

인기글

더보기
  • 인기 게시물이 없습니다.
메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.