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";
행이나 열에 수식을 할당하는 경우, 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)";
수식에 사용될 데이터를 할당할 때 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;
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;
DisplayFormulas 속성값에 따라 B1셀에 수식 계산결과가 표시되거나 혹은 수식 자체가 표시되는 것을 확인할 수 있습니다. 또한 열의 너비도 두배 만큼 차이가 나는 것을 확인할 수 있습니다.
샘플을 다운로드하여 전체 코드를 확인해 보실 수 있습니다.
지금 바로 Spread.NET을 다운로드하여 직접 테스트해보세요!
댓글목록
등록된 댓글이 없습니다.