Infragistics Blazor Excel Engine의 Worksheet는 데이터가 보관되는 곳입니다. Worksheet의 행과 셀을 사용하여 작업하고 해당 값을 설정하여 데이터를 입력할 수 있습니다. Worksheet 사용하면 아래에 표시된 대로 셀의 형식을 필터링, 정렬 및 사용자 지정할 수 있습니다.
using System;
using System.Net.Http;
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Text;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
namespaceInfragistics.Samples
{
publicclassProgram
{
publicstaticasync Task Main(string[] args)
{
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("app");
builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
await builder.Build().RunAsync();
}
}
}cs
@using Microsoft.AspNetCore.Components@using Microsoft.AspNetCore.Components.Rendering@using Microsoft.AspNetCore.Components.Forms@using Microsoft.AspNetCore.Components.RenderTree@using Microsoft.AspNetCore.Components.Web@using System.Text.RegularExpressions@using System.Net.Http@using System.Net.Http.Json@using Microsoft.AspNetCore.Components.Routing@using Microsoft.AspNetCore.Components.WebAssembly.Http@using Microsoft.JSInterop@using Microsoft.JSInterop.WebAssembly@using Infragistics.Documents.Excel@using Documents.Excel.ConditionalFormatting@using Documents.Excel.Sorting@using Documents.Excel.Filtering@using System.Runtime.InteropServices.JavaScript@implements IDisposable
<divclass="container vertical"><divclass="options vertical"><button @onclick="CreateXlsx">Save Workbook to XLSX</button><divclass="options vertical"><span>Select Table to Export:</span><labelclass="options-item"><inputchecked=@isSorted @onchange="OnSortChange"type="checkbox" />Apply Sort</label><labelclass="options-item"><inputchecked=@isFiltered @onchange=OnFilterChangetype="checkbox" />Apply Filter</label><labelclass="options-item"><inputchecked=@isProtected @onchange=OnProtectChangetype="checkbox" />Protect Worksheet</label><labelclass="options-item"><inputchecked=@showGridlines @onchange=OnGridlinesChangetype="checkbox" />Show Gridlines</label><labelclass="options-item"><inputchecked=@showHeaders @onchange=OnHeadersChangetype="checkbox" />Show Row and Column Headers</label><labelclass="options-item"><inputchecked=@applyConditionalFormatting @onchange=OnFormatChangetype="checkbox" />Apply Conditional Formatting</label></div></div></div>@code {
[Inject]
public IJSRuntime Runtime { get; set; }
publicbool canSave = false;
public Random Rand = new Random();
publicobject data;
publicbool isSorted;
publicbool isFiltered;
publicbool isProtected;
publicbool showGridlines;
publicbool showHeaders;
publicbool applyConditionalFormatting;
public Workbook wb;
protectedoverridevoidOnInitialized()
{
Workbook.InProcessRuntime = this.Runtime as IJSInProcessRuntime;
}
publicvoidExportData(WorkbookFormat format) {
this.InitData();
this.wb.SetCurrentFormat(format);
var sheet = this.wb.Worksheets[0];
sheet.DefaultColumnWidth = 220 * 20;
if (this.isSorted)
{
sheet.SortSettings.SetRegion("A2:A20");
sheet.SortSettings.SortConditions.Add(
new RelativeIndex(0), new OrderedSortCondition(SortDirection.Ascending));
}
if (this.isFiltered)
{
sheet.FilterSettings.SetRegion("C1:C20");
sheet.FilterSettings.ApplyCustomFilter(0, new CustomFilterCondition(ExcelComparisonOperator.Equals, "USA"));
}
if (this.isProtected)
{
sheet.Protect();
}
if (!this.showHeaders)
{
sheet.DisplayOptions.ShowRowAndColumnHeaders = false;
}
if (!this.showGridlines)
{
sheet.DisplayOptions.ShowGridlines = false;
}
if (this.applyConditionalFormatting)
{
var orange = Infragistics.Core.Graphics.Colors.Orange;
var blue = Infragistics.Core.Graphics.Colors.Blue;
var red = Infragistics.Core.Graphics.Colors.Red;
var format1 = sheet.ConditionalFormats.AddTextCondition(
"A1:A20", "Amazon", FormatConditionTextOperator.Contains);
var format2 = sheet.ConditionalFormats.AddTextCondition(
"A1:A20", "IBM", FormatConditionTextOperator.Contains);
var format3 = sheet.ConditionalFormats.AddTextCondition(
"A1:A20", "Tesla", FormatConditionTextOperator.Contains);
format1.CellFormat.Font.ColorInfo = new WorkbookColorInfo(orange);
format2.CellFormat.Font.ColorInfo = new WorkbookColorInfo(blue);
format3.CellFormat.Font.ColorInfo = new WorkbookColorInfo(red);
}
}
publicvoidInitData()
{
var companies = newstring[] { "Amazon", "Ford", "Jaguar", "Tesla", "IBM", "Microsoft" };
var firstNames = newstring[] { "Andrew", "Mike", "Martin", "Ann", "Victoria", "John", "Brian", "Jason", "David" };
var lastNames = newstring[] { "Smith", "Jordan", "Johnson", "Anderson", "Louis", "Phillips", "Williams" };
var cities = newstring[] { "London", "Paris", "Boston", "Berlin" };
var countries = newstring[] { "UK", "France", "USA", "Germany", "Poland", "Brazil" };
var titles = newstring[] { "Sales Rep.", "Owner", "Administrator", "Manager" };
var streets = newstring[] { "Main St", "Madison St", "Broad Way" };
var headers = newstring[] {"Company Name",
"Contact Title",
"Country",
"City",
"Contact Name",
"Address",
"Postal Code",
"Customer ID",
"Salary",
"Age" };
// generating excel data sourcethis.wb = new Workbook();
var sheet = this.wb.Worksheets.Add("Sheet1");
for (var i = 0; i < headers.Length; i++)
{
sheet.Rows[0].Cells[i].Value = headers[i];
}
for (var i = 1; i < 20; i++)
{
var companyName = this.GetItem(companies);
var contactTitle = this.GetItem(titles);
var country = this.GetItem(countries);
var city = this.GetItem(cities);
var contactName = this.GetItem(firstNames) + " " + this.GetItem(lastNames);
var address = this.GetRandom(10, 60) + " " + this.GetItem(streets);
var postalCode = this.GetRandom(100, 400) + " " + this.GetRandom(50, 90);
var customerID = "CID-" + this.GetRandom(500, 900);
var salary = this.GetRandom(85000, 200000).ToString();
var age = this.GetRandom(20, 65).ToString();
var dataItem = newstring[] {
companyName,
contactTitle,
country,
city,
contactName,
address,
postalCode,
customerID,
salary,
age
};
for (var j = 0; j < dataItem.Length; j++)
{
sheet.Rows[i].Cells[j].Value = dataItem[j];
}
}
}
privatevoidCreateXlsx()
{
ExportData(WorkbookFormat.Excel2007);
this.SaveFile(this.wb, "ExcelWorkbook");
}
publicvoidSaveFile(Workbook wb, string fileNameWithoutExtension)
{
var ms = new System.IO.MemoryStream();
if (wb != null)
{
wb.Save(ms);
string extension;
switch (wb.CurrentFormat)
{
default:
case WorkbookFormat.StrictOpenXml:
case WorkbookFormat.Excel2007:
extension = ".xlsx";
break;
case WorkbookFormat.Excel2007MacroEnabled:
extension = ".xlsm";
break;
case WorkbookFormat.Excel2007MacroEnabledTemplate:
extension = ".xltm";
break;
case WorkbookFormat.Excel2007Template:
extension = ".xltx";
break;
case WorkbookFormat.Excel97To2003:
extension = ".xls";
break;
case WorkbookFormat.Excel97To2003Template:
extension = ".xlt";
break;
}
string fileName = fileNameWithoutExtension + extension;
string mime;
switch (wb.CurrentFormat)
{
default:
case WorkbookFormat.Excel2007:
case WorkbookFormat.Excel2007MacroEnabled:
case WorkbookFormat.Excel2007MacroEnabledTemplate:
case WorkbookFormat.Excel2007Template:
case WorkbookFormat.StrictOpenXml:
mime = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
break;
case WorkbookFormat.Excel97To2003:
case WorkbookFormat.Excel97To2003Template:
mime = "application/vnd.ms-excel";
break;
}
ms.Position = 0;
var bytes = ms.ToArray();
SaveFile(bytes, fileName, mime);
}
}
JSObject module;
bool moduleDownloaded = false;
publicasyncvoidSaveFile(byte[] bytes, string fileName, string mime)
{
if (Runtime is WebAssemblyJSRuntime wasmRuntime)
{
if (!moduleDownloaded)
{
module = await JSHost.ImportAsync("BlazorFastDownload", "../BlazorFastDownloadFile.js");
moduleDownloaded = true;
}
BlazorFastDownload.DownloadFile(fileName, mime, bytes);
}
elseif (Runtime is IJSInProcessRuntime inProc)
inProc.InvokeVoid("BlazorDownloadFile", fileName, mime, bytes);
}
publicvoidDispose()
{
if (moduleDownloaded && module != null)
{
module.Dispose();
}
}
publicvoidOnSortChange(ChangeEventArgs args)
{
this.isSorted = args.Value != null ? (bool)args.Value : false;
}
publicvoidOnFilterChange(ChangeEventArgs args)
{
this.isFiltered = args.Value != null ? (bool)args.Value : false;
}
publicvoidOnProtectChange(ChangeEventArgs args)
{
this.isProtected = args.Value != null ? (bool)args.Value : false;
}
publicvoidOnGridlinesChange(ChangeEventArgs args)
{
this.showGridlines = args.Value != null ? (bool)args.Value : false;
}
publicvoidOnHeadersChange(ChangeEventArgs args)
{
this.showHeaders = args.Value != null ? (bool)args.Value : false;
}
publicvoidOnFormatChange(ChangeEventArgs args)
{
this.applyConditionalFormatting = args.Value != null ? (bool)args.Value : false;
}
publicdoubleGetRandom(double min, double max)
{
return Math.Round(min + (Rand.NextDouble() * (max - min)));
}
publicstringGetItem(string[] array)
{
var index = (int)Math.Round(GetRandom(0, array.Length - 1));
return array[index];
}
}razor
// these methods are from:// https://www.meziantou.net/generating-and-downloading-a-file-in-a-blazor-webassembly-application.htmfunctionBlazorDownloadFile(filename, contentType, content) {
// Blazor marshall byte[] to a base64 string, so we first need to convert the string (content) to a Uint8Array to create the Filevar data = base64DecToArr(content);
// Create the URLvar file = new File([data], filename, { type: contentType });
var exportUrl = URL.createObjectURL(file);
// Create the <a> element and click on itvar a = document.createElement("a");
document.body.appendChild(a);
a.href = exportUrl;
a.download = filename;
a.target = "_self";
a.click();
// We don't need to keep the url, let's release the memory
URL.revokeObjectURL(exportUrl);
}
// Convert a base64 string to a Uint8Array. This is needed to create a blob object from the base64 string.// The code comes from: https://developer.mozilla.org/fr/docs/Web/API/WindowBase64/D%C3%A9coder_encoder_en_base64functionb64ToUint6(nChr) {
return nChr > 64 && nChr < 91 ? nChr - 65 : nChr > 96 && nChr < 123 ? nChr - 71 : nChr > 47 && nChr < 58 ? nChr + 4 : nChr === 43 ? 62 : nChr === 47 ? 63 : 0;
}
functionbase64DecToArr(sBase64, nBlocksSize) {
var sB64Enc = sBase64.replace(/[^A-Za-z0-9\+\/]/g, ""), nInLen = sB64Enc.length, nOutLen = nBlocksSize ? Math.ceil((nInLen * 3 + 1 >> 2) / nBlocksSize) * nBlocksSize : nInLen * 3 + 1 >> 2, taBytes = newUint8Array(nOutLen);
for (var nMod3, nMod4, nUint24 = 0, nOutIdx = 0, nInIdx = 0; nInIdx < nInLen; nInIdx++) {
nMod4 = nInIdx & 3;
nUint24 |= b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << 18 - 6 * nMod4;
if (nMod4 === 3 || nInLen - nInIdx === 1) {
for (nMod3 = 0; nMod3 < 3 && nOutIdx < nOutLen; nMod3++, nOutIdx++) {
taBytes[nOutIdx] = nUint24 >>> (16 >>> nMod3 & 24) & 255;
}
nUint24 = 0;
}
}
return taBytes;
}
//# sourceMappingURL=BlazorDownloadFile.js.mapjs
/*
CSS styles are loaded from the shared CSS file located at:
https://static.infragistics.com/xplatform/css/samples/
*/css
Like this sample? Get access to our complete Ignite UI for Blazor toolkit and start building your own apps in minutes. Download it for free.
最速のデータ グリッド、高性能なチャート、すぐに使用できる機能のフルセットなどを含む 60 以上の再利用可能なコンポーネント を使用して、最新の Web エクスペリエンスを構築します。
눈금선은 워크시트의 셀을 시각적으로 구분하는 데 사용됩니다. 눈금선을 표시하거나 숨길 수 있으며 색상도 변경할 수 있습니다.
워크시트 DisplayOptions의 ShowGridlines 속성을 사용하여 눈금선을 표시하거나 숨길 수 있습니다. 다음 코드는 워크시트에서 눈금선을 숨기는 방법을 보여줍니다.
var workbook = new Workbook();
var worksheet = workbook.Sheets.Add("Sheet1", SheetType.Worksheet) as Worksheet;
worksheet.DisplayOptions.ShowGridlines = false;
razor
워크시트 DisplayOptions의 GridlineColor 속성을 사용하여 눈금선 색상을 구성할 수 있습니다. 다음 코드는 워크시트의 눈금선을 빨간색으로 변경하는 방법을 보여줍니다.
var workbook = new Workbook();
var worksheet = workbook.Sheets.Add("Sheet1", SheetType.Worksheet) as Worksheet;
worksheet.DisplayOptions.GridlineColor = Core.Graphics.Colors.Red;
razor
Configuring the Headers
열과 행 머리글은 열과 행을 시각적으로 식별하는 데 사용됩니다. 또한 현재 선택된 셀이나 셀 영역을 시각적으로 강조하는 데에도 사용됩니다.
워크시트 DisplayOptions의 ShowRowAndColumnHeaders 속성을 사용하여 열 및 행 머리글을 표시하거나 숨길 수 있습니다. 다음 코드는 행 및 열 머리글을 숨기는 방법을 보여줍니다.
var workbook = new Workbook();
var worksheet = workbook.Sheets.Add("Sheet1", SheetType.Worksheet) as Worksheet;
worksheet.DisplayOptions.ShowRowAndColumnHeaders = false;
razor
Configuring Editing of the Worksheet
기본적으로 저장하는 Worksheet 개체는 편집 가능합니다. Worksheet 개체의 Protect 메서드를 사용하여 Worksheet 시트를 보호하면 워크시트 편집을 비활성화할 수 있습니다. 이 방법에는 보호되는 부분을 결정하는 null 허용 bool 인수가 많이 있으며 이러한 옵션 중 하나는 개체 편집을 허용하는 것입니다. 이 옵션을 false로 설정하면 워크시트 편집이 방지됩니다.
다음 코드는 워크시트에서 편집을 비활성화하는 방법을 보여줍니다.
var workbook = new Workbook();
var worksheet = workbook.Sheets.Add("Sheet1", SheetType.Worksheet) as Worksheet;
worksheet.Protect();
razor
Worksheet 개체의 Protect 메서드를 사용하여 구조적 변경으로부터 워크시트를 보호할 수도 있습니다.
보호가 설정되면 다음을 설정할 수 있습니다. CellFormat 사물 Locked 개별 셀, 행, 병합된 셀 영역 또는 열에 대한 속성을 사용하여 해당 개체에 대한 워크시트 개체의 보호를 재정의합니다. 예를 들어, 한 열의 셀을 제외하고 워크시트의 모든 셀을 읽기 전용으로 설정하려면 워크시트를 보호한 다음 CellFormat 사물 Locked 재산 거짓 특정에 WorksheetColumn 물체. 이렇게 하면 사용자가 열 내의 셀을 편집할 수 있지만 워크시트의 다른 셀은 편집할 수 없습니다.
다음 코드는 이를 수행하는 방법을 보여줍니다.
var workbook = new Workbook();
var worksheet = workbook.Sheets.Add("Sheet1", SheetType.Worksheet) as Worksheet;
worksheet.Protect();
worksheet.Columns[0].CellFormat.Locked = ExcelDefaultableBoolean.False;
razor
Filtering Worksheet Regions
필터링은 Worksheet 개체의 FilterSettings 속성에서 검색할 수 있는 WorksheetFilterSettings에 필터 조건을 설정하여 수행됩니다. 필터 조건은 추가, 제거, 수정되거나 워크시트에서 ReapplyFilters 메서드가 호출되는 경우에만 다시 적용됩니다. 지역 내 데이터가 변경되면 지속적으로 평가되지 않습니다.
WorksheetFilterSettings 개체의 SetRegion 메서드를 사용하여 필터를 적용할 영역을 지정할 수 있습니다.
다음은 워크시트에 필터를 추가하는 데 사용할 수 있는 방법 및 설명 목록입니다.
방법
설명
ApplyAverageFilter
데이터가 전체 데이터 범위의 평균보다 낮거나 높은지 여부에 따라 데이터를 필터링할 수 있는 필터를 나타냅니다.
ApplyDatePeriodFilter
월 또는 임의 분기의 날짜를 필터링할 수 있는 필터를 나타냅니다.
ApplyFillFilter
배경 채우기를 기준으로 셀을 필터링하는 필터를 나타냅니다. 이 필터는 단일 CellFill을 지정합니다. 이 채우기가 있는 셀은 데이터 범위에 표시됩니다. 다른 모든 셀은 숨겨집니다.
ApplyFixedValuesFilter
표시가 허용되는 특정 고정 값을 기반으로 셀을 필터링할 수 있는 필터를 나타냅니다.
ApplyFontColorFilter
글꼴 색상을 기준으로 셀을 필터링하는 필터를 나타냅니다. 이 필터는 단일 색상을 지정합니다. 이 색상 글꼴이 있는 셀은 데이터 범위에 표시됩니다. 다른 모든 셀은 숨겨집니다.
ApplyIconFilter
조건부 서식 아이콘을 기준으로 셀을 필터링할 수 있는 필터를 나타냅니다.
ApplyRelativeDateRangeFilter
필터가 적용된 시점을 기준으로 날짜를 기준으로 날짜 셀을 필터링할 수 있는 필터를 나타냅니다.
ApplyTopOrBottomFilter
정렬된 값의 위쪽 또는 아래쪽 셀을 필터링할 수 있는 필터를 나타냅니다.
ApplyYearToDateFilter
날짜가 현재 연도의 시작과 필터가 평가되는 시간 사이에 발생하는 경우 날짜 셀에서 필터링할 수 있는 필터를 나타냅니다.
ApplyCustomFilter
하나 또는 두 개의 사용자 정의 조건을 기반으로 데이터를 필터링할 수 있는 필터를 나타냅니다. 이러한 두 필터 조건은 논리적 "and" 또는 논리적 "or" 연산과 결합될 수 있습니다.
워크시트 영역에 필터를 추가하는 예로 다음 코드 조각을 사용할 수 있습니다.
var workbook = new Workbook();
var worksheet = workbook.Sheets.Add("Sheet1", SheetType.Worksheet) as Worksheet;
worksheet.FilterSettings.SetRegion("Sheet1!A1:A10");
worksheet.FilterSettings.ApplyAverageFilter(0, Documents.Excel.Filtering.AverageFilterType.AboveAverage);
razor
Freezing and Splitting Panes
창 고정 기능을 사용하면 워크시트 상단의 행이나 왼쪽 열을 고정할 수 있습니다. 고정된 행과 열은 사용자가 스크롤하는 동안 항상 표시됩니다. 고정된 행과 열은 제거할 수 없는 단일 실선으로 워크시트의 나머지 부분과 구분됩니다.
창 고정을 활성화하려면 Worksheet 개체 DisplayOptions의 PanesAreFrozen 속성을 true로 설정해야 합니다. 그런 다음 표시 옵션 FrozenPaneSettings의 FrozenRows 및 FrozenColumns 속성을 각각 사용하여 고정할 행 또는 열을 지정할 수 있습니다.
FirstRowInBottomPane 및 FirstColumnInRightPane 속성을 각각 사용하여 아래쪽 창의 첫 번째 행이나 오른쪽 창의 첫 번째 열을 지정할 수도 있습니다.
다음 코드 조각은 워크시트에서 고정 창 기능을 사용하는 방법을 보여줍니다.
var workbook = new Workbook();
var worksheet = workbook.Sheets.Add("Sheet1", SheetType.Worksheet) as Worksheet;
worksheet.DisplayOptions.PanesAreFrozen = true;
worksheet.DisplayOptions.FrozenPaneSettings.FrozenRows = 3;
worksheet.DisplayOptions.FrozenPaneSettings.FrozenColumns = 3;
worksheet.DisplayOptions.FrozenPaneSettings.FirstColumnInRightPane = 2;
worksheet.DisplayOptions.FrozenPaneSettings.FirstRowInBottomPane = 6;
razor
Setting the Worksheet Zoom Level
Worksheet 개체의 DisplayOptions에 있는 MagnificationInNormalView 속성을 사용하여 각 워크시트의 확대/축소 수준을 독립적으로 변경할 수 있습니다. 이 속성은 10에서 400 사이의 값을 가지며 적용하려는 확대/축소 비율을 나타냅니다.
다음 코드는 이를 수행하는 방법을 보여줍니다.
var workbook = new Workbook();
var worksheet = workbook.Sheets.Add("Sheet1", SheetType.Worksheet) as Worksheet;
worksheet.DisplayOptions.MagnificationInNormalView = 300;
razor
Worksheet Level Sorting
정렬은 열이나 행의 워크시트 수준 개체에 정렬 조건을 설정하여 수행됩니다. 열이나 행을 오름차순이나 내림차순으로 정렬할 수 있습니다.
이는 시트의 SortSettings 속성을 사용하여 검색할 수 있는 Worksheet 개체의 WorksheetSortSettings에 지역 및 정렬 유형을 지정하여 수행됩니다.
시트의 정렬 조건은 정렬 조건이 추가, 제거, 수정되거나 워크시트에서 ReapplySortConditions 메서드가 호출되는 경우에만 다시 적용됩니다. 열이나 행은 지역 내에서 정렬됩니다. "행"은 기본 정렬 유형입니다.
다음 코드 조각은 워크시트의 셀 영역에 정렬을 적용하는 방법을 보여줍니다.
var workbook = new Workbook();
var worksheet = workbook.Sheets.Add("Sheet1", SheetType.Worksheet) as Worksheet;
worksheet.SortSettings.SortConditions.Add(new RelativeIndex(0), new Infragistics.Documents.Excel.Sorting.OrderedSortCondition(Documents.Excel.Sorting.SortDirection.Ascending));
razor
Worksheet Protection
Worksheet 개체에 대해 Protect 메서드를 호출하여 워크시트를 보호할 수 있습니다. 이 메서드는 다음 사용자 작업을 제한하거나 허용할 수 있는 많은 nullable bool 매개 변수를 노출합니다.
셀 편집.
도형, 메모, 차트 또는 기타 컨트롤과 같은 개체 편집.
시나리오 편집.
데이터 필터링.
셀 서식 지정.
열 삽입, 삭제 및 서식 지정
행 삽입, 삭제 및 서식 지정
하이퍼링크 삽입.
데이터 정렬.
피벗 테이블의 활용.
Worksheet 개체에 대해 Unprotect 메서드를 호출하여 워크시트 보호를 제거할 수 있습니다.
다음 코드 조각은 위에 나열된 모든 사용자 작업을 보호하는 방법을 보여줍니다.
var workbook = new Workbook();
var worksheet = workbook.Sheets.Add("Sheet1", SheetType.Worksheet) as Worksheet;
worksheet.Protect();
razor
Worksheet Conditional Formatting
해당 워크시트의 ConditionalFormats 컬렉션에 노출된 다양한 "Add" 메서드를 사용하여 Worksheet 개체의 조건부 서식을 구성할 수 있습니다. 이러한 "Add" 메서드의 첫 번째 매개 변수는 조건부 서식을 적용하려는 워크시트의 string 영역입니다.
워크시트에 추가할 수 있는 대부분의 조건부 형식에는 해당 조건부 형식의 조건이 true일 때 WorksheetCell 요소가 표시되는 방식을 결정하는 CellFormat 속성이 있습니다. 예를 들어 Fill 및 Font와 같이 이 CellFormat 속성에 연결된 속성을 사용하여 각각 특정 조건부 형식에서 셀의 배경 및 글꼴 설정을 결정할 수 있습니다.
워크시트 셀의 시각화가 다르게 동작하므로 CellFormat 속성이 없는 몇 가지 조건부 형식이 있습니다. 이러한 조건부 형식은 DataBarConditionalFormat, ColorScaleConditionalFormat 및 IconSetConditionalFormat 입니다.
Excel에서 기존 Workbook 로드하는 경우 해당 Workbook 로드될 때 형식이 유지됩니다. Workbook Excel 파일로 저장할 때도 마찬가지입니다.
다음 코드 예제에서는 워크시트에서 조건부 서식을 사용하는 방법을 보여줍니다.
var workbook = new Workbook();
var worksheet = workbook.Sheets.Add("Sheet1", SheetType.Worksheet) as Worksheet;
var format = worksheet.ConditionalFormats.AddAverageCondition("A1:A10", Documents.Excel.ConditionalFormatting.FormatConditionAboveBelow.AboveAverage);
format.CellFormat.Font.ColorInfo = new WorkbookColorInfo(Core.Graphics.Colors.Red);
razor