셀을 사용한 Web Components
엑셀 워크시트의 객체는WorksheetCell 실제 데이터 값을 담는 객체입니다. 이 주제에서는 셀 이름으로 접근하거나 셀에 공식과 주석을 추가하고, 병합 및 포맷팅 등 셀에 수행할 수 있는 다양한 연산에 대해 다룹니다.
Web Components Using Cells Example
References
다음 코드는 아래 코드 조각을 사용하는 데 필요한 가져오기를 보여줍니다.
import { Workbook } from "igniteui-webcomponents-excel";
import { WorkbookFormat } from "igniteui-webcomponents-excel";
import { Worksheet } from "igniteui-webcomponents-excel";
import { WorksheetTable } from "igniteui-webcomponents-excel";
import { NamedReference } from "igniteui-webcomponents-excel";
import { WorksheetCellComment } from "igniteui-webcomponents-excel";
import { FormattedString } from "igniteui-webcomponents-excel";
Referencing Cells and Regions
객체나 객체에 각각 메서드를 호출WorksheetCellWorksheetRegionworksheet 하여 접근할getCellgetRegion 수 있습니다. 두 메서드 모두 셀을 참조하는 문자열 매개변수를 수용합니다. 셀에 대한 참조를 얻는 것은 형식을 적용하거나 공식과 셀 내용을 다룰 때 유용합니다.
다음 예제 코드는 셀과 영역을 참조하는 방법을 보여줍니다.
var workbook = new Workbook();
var worksheet = workbook.worksheets().add("Sheet1");
//Accessing a single cell
var cell = worksheet.getCell("E2");
//Accessing a range of cells
var region = worksheet.getRegion("G1:G10");
Accessing Cells and Regions by Name
Microsoft Excel에서는 개별 셀과 셀 영역에 이름을 할당할 수 있습니다. 셀이나 지역의 이름은 주소 대신 해당 셀이나 지역을 참조하는 데 사용될 수 있습니다.
Infragistics Web Components Excel 라이브러리는 객체의getCell andgetRegion 메서드를 통해worksheet 셀과 영역을 이름으로 참조하는 것을 지원합니다. 셀이나 영역을 참조하는 인스턴스를 사용NamedReference 해 그 셀이나 영역을 참조하는 것입니다.
셀 또는 지역 이름 지정의 예로 다음 코드 조각을 사용할 수 있습니다.
var workbook = new Workbook();
var worksheet = workbook.worksheets().add("Sheet1");
var cell_reference = workbook.namedReferences().add("myCell", "=Sheet1:A1");
var region_reference = workbook.namedReferences().add("myRegion", "=Sheet1!A1:B2");
다음 코드는 위의 "myCell" 및 "myRegion" 참조에서 참조하는 셀과 지역을 가져오는 데 사용할 수 있습니다.
var cell = worksheet.getCell("myCell");
var region = worksheet.getRegion("myRegion");
Adding a Comment to a Cell
댓글을 통해 사용자가 마우스를 셀 위에 올렸을 때 해당 셀에 대한 힌트나 메모를 표시할 수 있습니다. 댓글은 텍스트를 포함하는 툴팁 형태의 호출 형태로 표시됩니다. Infragistics Web Components 엑셀 라이브러리는 객체의WorksheetCell 속성을 설정comment 하여 셀에 주석을 추가할 수 있게 해줍니다.
다음 예제 코드는 셀에 주석을 추가하는 방법을 보여줍니다.
var workbook = new Workbook();
var worksheet = workbook.worksheets().add("Sheet1");
var cellComment = new WorksheetCellComment();
var commentText = new FormattedString("This cell has a comment.");
cellComment.text = commentText;
worksheet.rows(0).cells(0).comment = cellComment;
Adding a Formula to a Cell
Infragistics Web Components Excel 라이브러리는 워크시트의 셀이나 셀 그룹에 Microsoft Excel 수식을 추가할 수 있게 해줍니다. 객체의WorksheetCell 메서드를 사용applyFormula 하거나 객체를formula 인스턴스화하여 셀에 적용하는 방식으로 할 수 있습니다. 셀에 공식을 적용하는 방식과 상관없이, 객체의formula 속성을 통해WorksheetCell 그 객체에 접근할formula 수 있습니다. 값이 필요하다면 셀의value 속성을 사용하세요.
다음 코드는 셀에 수식을 추가하는 방법을 보여줍니다.
var workbook = new Workbook();
var worksheet = workbook.worksheets().add("Sheet1");
worksheet.rows(5).cells(0).applyFormula("=SUM(A1:A5)");
//Using a Formula object to apply a formula
var sumFormula = Formula.parse("=SUM(A1:A5)", CellReferenceMode.A1);
sumFormula.applyTo(worksheet.rows(5).cells(0));
Copying a Cell’s Format
셀은 배경색, 형식 문자열, 글꼴 스타일 등 다양한 서식을 가질 수 있습니다. 셀이 이전에 서식화된 셀과 같은 형식을 갖고 싶다면, 객체 속성으로WorksheetCell 노출된cellFormat 각 옵션을 개별적으로 설정하는 대신, 객체의 메서드를cellFormat 호출setFormatting 해 복사할 객체를cellFormat 전달할 수 있습니다. 이렇게 하면 첫 번째 셀의 모든 포맷 설정을 두 번째 셀로 복사합니다. 이 방법은 행, 병합된 셀 영역, 또는 열에 대해서도 가능합니다.
다음 코드는 두 번째 열의 형식을 네 번째 열에 복사하는 방법을 보여줍니다.
var workbook = new Workbook();
var worksheet = workbook.worksheets().add("Sheet1");
//Format 2nd column
worksheet.columns(1).cellFormat.fill = CellFill.createSolidFill("Blue");
worksheet.columns(1).cellFormat.font.bold = true;
//Copy format of 2nd column to 4th column
worksheet.columns(3).cellFormat.setFormatting(worksheet.columns(1).cellFormat);
Formatting a Cell
Infragistics Web Components Excel 라이브러리는 셀의 외관과 동작을 커스터마이즈할 수 있게 해줍니다. 셀은 객체의 속성cellFormatWorksheetCellWorksheetRowWorksheetColumn으로WorksheetMergedCellsRegion 노출되는 속성을 설정하여 커스터마이즈할 수 있습니다.
셀 모양의 모든 측면을 사용자 정의할 수 있습니다. 셀의 글꼴, 배경, 테두리는 물론 텍스트 정렬 및 회전도 설정할 수 있습니다. 셀의 텍스트에 대해 문자별로 다른 형식을 적용할 수도 있습니다.
형식 문자열을 할당하여 셀 값의 형식을 지정할 수도 있습니다. 허용되는 형식 문자열은 기존 형식 표준 및 형식 지정 코드를 따릅니다.
다음 코드는 숫자를 통화로 표시하도록 셀 서식을 지정하는 방법을 보여줍니다.
var workbook = new Workbook(format);
var workbook = workbook.worksheets().add("Sheet1");
worksheet.columns(2).cellFormat.formatString = "\"$\"#,##0.00";
Excel 2007 Color Model
색상 팔레트는 Microsoft Excel 2007 UI의 색상 대화 상자와 유사합니다. Excel 옵션 => 저장 => 색상으로 이동하여 이 색상 대화 상자를 열 수 있습니다.
클래스에서CellFill 정적 속성과 메서드를 사용해 가능한 모든 채우기 유형을 만들 수 있습니다. 그 내용은 다음과 같습니다:
NoColor- 색상이 없는 채우기를 나타내는 속성으로, 워크시트의 배경 이미지가 있다면 그대로 보일 수 있습니다.CreateSolidFill- 반환 aCellFillPattern예를 들어, 다음과 같은 패턴 스타일을 가진 인스턴스Solid그리고 배경색을 다음과 같이 설정했습니다.color또는WorkbookColorInfo메서드에 명시되어 있습니다.CreatePatternFill- 지정된 패턴 스타일과CellFillPattern배경 및 패턴 색상에 대해 지정된 또는color값을 가진 인스턴스를WorkbookColorInfo반환합니다.CreateLinearGradientFill- 지정된 각도와 경사 스톱을 가진 인스턴스를CellFillLinearGradient반환합니다.CreateRectangularGradientFill- 내부 직사각형의 왼쪽, 위, 오른쪽, 하단과 그라디언트 스톱이 지정된 인스턴스를CellFillRectangularGradient반환합니다. 내부 직사각형 값이 지정되지 않은 경우, 셀의 중심을 내부 직사각형으로 사용합니다.
생성할 수 있는 다양한 채우기를 나타내는 파생 유형은 다음과 같습니다.
CellFillPattern- 색상이 없는 셀 채움, 단색, 또는 셀에 대한 패턴 채우기를 나타내는 패턴. 배경색 정보와 패턴 색상 정보가 있는데, 이는 엑셀의 포맷 셀 대화상자 채우기 탭의 색상 섹션과 직접적으로 대응합니다.CellFillLinearGradient- 선형 그라디언트 채우기를 나타냅니다. 각도는 왼쪽에서 오른쪽으로 선형 그라데이언트의 시계 방향에 달하는 각도를 가지며, 그라데이언트 스톱스 컬렉션은 그라데이언트 길이를 따라 두 개 이상의 색상 전환을 설명합니다.CellFillRectangularGradient- 직사각형 구배 채우기를 나타냅니다. 상, 왼쪽, 오른쪽, 하단 값으로 구성되며, 이는 상대 좌표로 기울기가 시작해 셀 가장자리로 뻗는 내부 직사각형을 설명합니다. 또한 내부 직사각형에서 셀 가장자리로 가는 경로를 따라 두 개 이상의 색상 전환을 설명하는 그라디언트 스톱 컬렉션도 포함되어 있습니다.
다음 코드 스니펫은 다음과WorksheetCell 같은 곳에서 솔리드 채우기를 만드는 방법을 보여줍니다:
var workbook = new Workbook();
var worksheet = workbook.worksheets().add("Sheet1");
var cellFill = CellFill.createSolidFill("Blue");
worksheet.rows(0).cells(0).cellFormat.fill = cellFill;
셀의 선형 및 직사각형 그라데이션을 사용하여 색상(Excel 셀 배경색, 테두리 색상 등)을 지정할 수 있습니다. 이러한 그라데이션이 포함된 통합 문서를 .xls 파일 형식으로 저장하고 Microsoft Excel 2007/2010에서 열면 그라데이션이 표시되지만 이러한 파일을 Microsoft Excel 2003에서 열면 셀이 처음부터 단색으로 채워집니다. 그라데이션 정지.
색상을 정의하는 방법은 다음과 같습니다.
자동 색상(WindowText 시스템 색상)
사용자 정의 RGB 색상
A theme color
RGB 또는 테마 색상을 사용하는 경우 선택적 색조를 적용하여 색상을 밝게 하거나 어둡게 할 수 있습니다. 이 색조는 Microsoft Excel 2007 UI에서 직접 설정할 수 없지만 사용자에게 표시되는 색상 팔레트의 다양한 색상은 실제로 색조가 적용된 테마 색상입니다.
각 통합 문서에는 12개의 관련 테마 색상이 있습니다. 그것들은 다음과 같습니다:
Light 1
Light 2
Dark 1
Dark 2
Accent1
Accent2
Accent3
Accent4
Accent5
Accent6
하이퍼링크
Followed Hyperlink
통합 문서가 생성될 때 Excel을 통해 사용자 정의할 수 있는 기본값이 있습니다.
색상은 밀봉된 불변 클래스인 클래스에 의해WorkbookColorInfo 정의됩니다. 클래스는 자동 색상을 반환하는 staticAutomatic 속성을 가지고 있고, 색상이나 테마 값과 선택적 틴트를 가진 인스턴스를WorkbookColorInfo 만들 수 있는 다양한 구성기도 있습니다.
이getResolvedColor 메서드는WorkbookColorInfo 사용자가 Excel에서 파일을 열 때 실제로 어떤 색상을 보게 될지 결정할 수 있게 해줍니다.
만약 가WorkbookColorInfo 테마 색상을 나타내면, 워크북 인스턴스를 메서드에 전달해서 워크북에서 테마 색상의 RGB 값을 받아야 합니다.
.xlsx와 같은 최신 파일 형식으로 저장하면 최신 색상 정보가 파일에 직접 저장됩니다. .xls와 같은 이전 파일 형식으로 저장하면 팔레트에서 가장 가까운 색상에 대한 색인이 저장됩니다. 또한 이전 형식에는 최신 색상 정보를 표시하기 위해 저장할 수 있는 향후 기능 기록이 있습니다.
Microsoft Excel 2003 및 이전 버전에서 이전 형식을 열면 이러한 향후 기능 레코드가 무시되지만 이전 파일 형식을 Excel 2007 이상에서 열면 해당 레코드를 읽고 해당 레코드의 색상 정보가 인덱스 색상을 덮어씁니다. 이전에 일반 형식 레코드에서 로드되었습니다.
Excel Format Support
해당 셀의 속성에서WorksheetCell 반환되는cellFormat 객체를 사용해 다양한cellFormat 형식을 설정할 수 있습니다. 이 오브젝트는cellFormat 테두리, 글꼴, 필, 정렬, 셀을 축소할지 잠글지 등 셀의 여러 측면을 스타일링할 수 있게 해줍니다.
또한 객체 컬렉션styles을 통해workbook Microsoft Excel 2007에 내장된 스타일에 접근할 수도 있습니다. Excel 내 스타일 전체 목록은 Microsoft Excel 2007 홈 탭의 셀 스타일 갤러리에서 확인할 수 있습니다.
워크북의styles 컬렉션에는 "normal" 스타일이라는 특별한 스타일이 있으며, 해당 컬렉션의normalStyle 속성을 사용하거나 "Normal"이라는 이름으로 컬렉션에 색인을 넣어 접근할 수 있습니다.
행normalStyle, 열, 셀에 별도로 명시되지 않는 한 워크북 내 모든 셀의 기본 속성을 포함합니다. 의normalStyle 속성을 변경하면 워크북의 모든 기본 셀 형식 속성이 바뀝니다. 예를 들어, 워크북의 기본 글꼴을 바꾸고 싶을 때 유용합니다.
컬렉션을styles 정리하거나 미리 정의된 상태로clearreset 리셋할 수 있습니다. 이 두 경우 모두 사용자 정의 스타일을 모두 제거하지만,clear 컬렉션은styles 완전히 삭제됩니다.
이 기능을 통해 객체에style 속성이cellFormat 추가됩니다. 이는 포맷의 부모 스타일을 나타내는 인스턴스를 참조WorkbookStyle 하는 것입니다. 스타일의 포맷에 대해, 이 속성은 항상 영(null)입니다. 왜냐하면 스타일은 부모 스타일을 가질 수 없기 때문입니다. 행, 열, 셀 형식의 경우, 속성은style 항상 기본적으로 를normalStyle 반환합니다.
속성이style null로 설정되어 있으면 다시 로normalStyle 되돌아갑니다. 스타일 컬렉션에서 다른 스타일로 설정되어 있다면, 그 스타일이 셀 포맷의 모든 언셋 속성에 대한 기본값을 유지하게 됩니다.
속성이style 셀 포맷에 설정되면, 포함된style 포맷 옵션은 셀 포맷에서 제거됩니다. 나머지 모든 부동산은 그대로 유지됩니다. 예를 들어, 테두리 서식이 포함된 셀 스타일이 생성되고 그 스타일이 셀의style 스타일로 설정되어 있다면, 셀 포맷의 테두리 포맷 옵션은 제거되고 셀 포맷에는 채우기 서식만 포함됩니다.
형식 옵션 플래그가 형식에서 제거되면 연관된 모든 속성이 설정되지 않은 값으로 재설정되므로 셀 형식의 테두리 속성은 암시적으로 기본값/설정되지 않은 값으로 재설정됩니다.
행, 열, 셀, 병합된 셀을 나타내는 클래스에 대한 메서드를 사용getResolvedCellFormat 해 셀에서 실제로 무엇을 보는지 판단할 수 있습니다.
이 메서드는 자신이 기반한 연관cellFormat 된 인스턴스를 반환cellFormat 합니다. 따라서 속성에 대한cellFormat 이후의 변경 사항은 호출에서getResolvedCellFormat 반환되는 인스턴스에 반영됩니다.
Merging Cells
셀의 값이나 형식을 설정하는 것 외에도 셀을 병합하여 두 개 이상의 셀을 하나로 표시할 수도 있습니다. 셀을 병합하는 경우 셀은 직사각형 영역에 있어야 합니다.
셀을 병합할 때, 해당 지역의 각 셀은 동일한 값과 셀 형식을 갖게 됩니다. 병합된 셀들도 동일한WorksheetMergedCellsRegion 객체와 연관되어 있으며, 그associatedMergedCellsRegion 객체의 속성에서 접근할 수 있습니다. 결과물WorksheetMergedCellsRegion은 셀과 동일한 값과 셀 형식을 갖게 됩니다.
지역이나 지역 내 셀의 값(또는 셀 형식)을 설정하면 모든 셀과 지역의 값이 변경됩니다. 셀 병합을 취소하면 이전에 병합된 모든 셀은 병합 취소 전의 공유 셀 형식을 유지합니다. 그러나 영역의 왼쪽 상단 셀만 공유 값을 유지합니다.
병합된 셀 영역을 생성하려면 객체의worksheet 컬렉션에mergedCellsRegions 셀 범위를 추가해야 합니다. 이 컬렉션은Add 네 개의 정수 매개변수를 사용하는 방법을 보여줍니다. 네 가지 매개변수는 시작 행과 열(가장 왼쪽 위 셀)의 인덱스와 끝 행과 열(오른쪽 아래 셀)의 인덱스를 결정합니다.
var workbook = new Workbook();
var worksheet = workbook.worksheets().add("Sheet1");
// Make some column headers
worksheet.rows(1).cells(1).value = "Morning";
worksheet.rows(1).cells(2).value = "Afternoon";
worksheet.rows(1).cells(3).value = "Evening";
// Create a merged region from column 1 to column 3
var mergedRegion1 = ws.mergedCellsRegions().add(0, 1, 0, 3);
// Set the value of the merged region
mergedRegion1.value = "Day 1";
// Set the cell alignment of the middle cell in the merged region.
// Since a cell and its merged region shared a cell format, this will ultimately set the format of the merged region
worksheet.rows(0).cells(2).cellFormat.alignment = HorizontalCellAlignment.Center;
Retrieving the Cell Text as Displayed in Excel
셀에 표시되는 텍스트는 실제 셀 값 외에 형식 문자열, 셀이 포함된 열의 너비 등 여러 요소에 따라 달라집니다.
형식 문자열은 셀 값이 텍스트로 변환되는 방법과 형식화된 값과 함께 표시되어야 하는 리터럴 문자를 결정합니다. 형식 코드에 대한 자세한 내용은 여기에서 확인할 수 있습니다.
셀에서 사용 가능한 가로 공간의 양은 값이 사용자에게 표시되는 방식에 큰 역할을 합니다.
표시되는 텍스트는 다양한 열 너비에 따라 다를 수 있습니다.
숫자를 표시하고 "일반" 또는"@"이 포함된 형식 문자열을 사용할 때 셀 너비에 맞는 형식을 찾기 위해 시도되는 다양한 형식이 있습니다. 예시 형식 목록은 다음과 같습니다.
일반 값- 공간이 무제한인 경우 숫자가 그대로 표시됩니다.
소수 자릿수 제거- 적합한 형식을 찾을 때까지 소수 자릿수가 한 번에 하나씩 제거됩니다. 예를 들어, 12345.6789 값은 12345.679, 12345.68, 12345.7 및 12346 형식이 될 때까지 다음 형식으로 축소됩니다. 첫 번째 유효 숫자가 하나만 남으면 중지됩니다. 예를 들어 0.0001234567890과 같은 값은 0.0001로 감소되었습니다.
공학용, 10진수 5자리- 숫자는 1.23457E+09 또는 1.23457E-04와 같이 0.00000E+00 형식으로 표시됩니다.
공학용, 10진수 4자리- 숫자는 1.2346E+09 또는 1.23456E-04와 같이 0.0000E+00 형식으로 표시됩니다.
공학용, 10진수 3자리- 숫자는 1.235E+09 또는 1.235E-0과 같이 0.000E+00 형식으로 표시됩니다.
공학용, 10진수 2자리- 숫자는 1.23E+09 또는 1.23E-04와 같이 0.00E+00 형식으로 표시됩니다.
공학용, 10진수 1자리- 숫자는 1.2E+09 또는 1.2E-04와 같이 0.0E+00 형식으로 표시됩니다.
공학용, 10진수 0- 숫자는 1E+09 또는 1E-04와 같이 0E+00 형식으로 표시됩니다.
반올림된 값- 첫 번째 유효 숫자가 숫자의 소수 부분에 있는 경우 값은 가장 가까운 정수 값으로 반올림됩니다. 예를 들어 값이 0.0001234567890인 경우 0으로 반올림되고 셀에 표시되는 텍스트는 0이 됩니다.
해시 표시- 숫자의 압축된 버전을 표시할 수 없는 경우 해시(#)가 셀 너비 전체에서 반복됩니다.
빈 문자열- 해시 표시가 셀에 들어갈 수 없는 경우 빈 문자열이 표시된 셀 텍스트로 반환됩니다.
숫자 값의 형식 문자열에 일반 또는 @가 포함되지 않은 경우 다음 크기 조정 단계만 있습니다: 일반 값, 해시 표시, 빈 문자열
셀에 텍스트가 사용된 경우 셀에 표시된 텍스트는 셀에서 잘렸는지 여부에 관계없이 항상 전체 값입니다.
그렇지 않은 유일한 경우는 형식 문자열에 패딩 문자가 사용되는 경우입니다. 그러면 텍스트를 위한 공간이 충분하지 않을 때 값이 모든 해시 마크로 표시됩니다.
워크시트의displayOptionsshowFormulasInCells 속성으로 공식이 결과 대신 셀로 표시되도록 설정할 수 있고, 서식성 문자열과 셀 너비는 무시할 수 있습니다. 텍스트 값은 형식 문자열이 @인 것처럼 표시되고, 비정수 숫자 값은 형식 문자열이 0.0인 것처럼 표시되며, 정수 숫자 값은 형식 문자열이 0인 것처럼 표시됩니다.
또한 값이 맞지 않으면 모든 해시로 표시되지 않습니다. 표시 텍스트는 완전히 표시되지 않더라도 전체 텍스트를 셀 텍스트로 반환합니다.
다음 코드 스니펫은 Excel에서 텍스트를 표시하는 방식을 어떻게 사용getText 하는지 보여줍니다:
var workbook = new Workbook();
var worksheet = this.workbook.worksheets().add("Sheet1");
var cellText = worksheet.rows(0).cells(0).getText();