소개
Aspose.Cells FOSS for .NET은 순수 관리 코드이며 MIT 라이선스 라이브러리로, Microsoft Office 의존성 없이 Excel .xlsx 워크북을 읽고, 쓰고,
및 조작할 수 있습니다. Aspose.Cells_FOSS NuGet 패키지로 설치하면, 모든 .NET 프로젝트 — 콘솔 앱, 웹 API, 백그라운드 워커, 서버리스 함수에 통합됩니다.
이 게시물은 공개 API에 대한 기능별 walkthrough를 제공하며, 가능한 내용과 C# 코드에서 각 기능을 호출하는 방법을 보여줍니다.
기능 개요
통합 문서 및 워크시트 수명 주기
모든 작업의 진입점은 Workbook 클래스입니다. new Workbook()을 사용하여 처음부터 하나를 생성하거나, new Workbook(filePath) 또는 new Workbook(stream)으로 기존 .xlsx를 로드합니다. Workbook.Worksheets을 통해 시트를 탐색하고, Worksheet.Name 및 Worksheet.VisibilityType를 설정한 뒤 Workbook.Save()으로 지속합니다. 손상된 파일의 경우, TryRepairPackage = true와 TryRepairXml = true가 포함된 LoadOptions 인스턴스를 전달합니다.
using Aspose.Cells_FOSS;
var options = new LoadOptions
{
TryRepairPackage = true,
TryRepairXml = true,
};
try
{
_ = new Workbook("sample.xlsx", options);
}
catch (WorkbookLoadException exception)
{
Console.WriteLine(exception.Message);
}
셀 데이터 및 수식
Cell.PutValue()를 사용하여 셀에 값을 기록합니다 — 오버로드는 string, int, double,
decimal, bool, 및 DateTime을 허용합니다. Cell.Value, Cell.StringValue, 및
Cell.Formula을 통해 값을 다시 읽어옵니다. Cell.Formula 속성을 사용하여 Excel 수식을 설정합니다; 수식 문자열은
저장 시 보존되며 다시 로드 사이클에서도 유지됩니다.
using Aspose.Cells_FOSS;
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
sheet.Cells["A1"].PutValue("Hello");
sheet.Cells["B1"].PutValue(123);
sheet.Cells["C1"].Formula = "=B1*2";
workbook.Save("hello.xlsx");
var loaded = new Workbook("hello.xlsx");
Console.WriteLine(loaded.Worksheets[0].Cells["C1"].Formula);
Console.WriteLine(loaded.Worksheets[0].Cells["C1"].StringValue);
셀 스타일링
Style 객체를 적용하여 글꼴, 채우기, 테두리, 숫자 형식 및 정렬을 제어합니다.Cell.GetStyle()을 사용하여 현재 스타일을 가져오고, 이를 변형한 다음 Cell.SetStyle()으로
커밋합니다. 배경 채우기의 경우 Style.Pattern = FillPattern.Solid을 설정하고 Color을Style.ForegroundColor에 할당합니다. Cells.Merge()을 사용하여 셀 범위를 병합합니다.
using Aspose.Cells_FOSS;
var workbook = new Workbook();
var cell = workbook.Worksheets[0].Cells["A1"];
cell.PutValue("Styled");
var style = cell.GetStyle();
style.Font.Bold = true;
style.Pattern = FillPattern.Solid;
style.ForegroundColor = Color.FromArgb(255, 241, 196, 15);
cell.SetStyle(style);
Console.WriteLine($"{cell.StringValue} / Bold={cell.GetStyle().Font.Bold}");
조건부 서식
ConditionalFormattingCollection를 통해 셀 범위에 조건부 서식 규칙을 연결합니다.
규칙은 FormatConditionType.CellValue, Expression, ColorScale, DataBar, 및IconSet을 지원합니다.OperatorType를 사용하여 비교 연산자를 지정하고 (Between, Equal,GreaterThan, 등), 일치하는 셀에 Style를 할당하고, 우선순위 및
stop-if-true 동작을 규칙당 구성합니다.
using Aspose.Cells_FOSS;
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
var cfCollection = sheet.ConditionalFormattings[sheet.ConditionalFormattings.Add()];
cfCollection.AddArea(CellArea.CreateCellArea("A1", "A10"));
var rule = cfCollection[cfCollection.AddCondition(
FormatConditionType.CellValue, OperatorType.Between, "3", "7")];
var style = rule.Style;
style.Pattern = FillPattern.Solid;
style.ForegroundColor = Color.FromArgb(255, 255, 199, 206);
style.Font.Bold = true;
rule.Style = style;
workbook.Save("conditional-formatting.xlsx");
데이터 검증
Worksheet.Validations을 사용하여 셀에 입력 제약을 추가합니다. 지원되는 검증 유형에는 ValidationType.List, Decimal, Custom 등이 포함됩니다. 입력 프롬프트(InputTitle, InputMessage)와 오류 메시지(ErrorTitle, ErrorMessage, ValidationAlertType)를 구성합니다. CellArea.CreateCellArea()를 사용하여 검증된 범위를 정의하고 Validation.AddArea()를 사용하여 추가 범위에 규칙을 적용합니다.
using Aspose.Cells_FOSS;
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
sheet.Name = "Validation Sheet";
var listIdx = sheet.Validations.Add(CellArea.CreateCellArea("A1", "A3"));
var listVal = sheet.Validations[listIdx];
listVal.Type = ValidationType.List;
listVal.Formula1 = "\"Open,Closed\"";
listVal.IgnoreBlank = true;
listVal.InCellDropDown = true;
listVal.ShowInput = true;
listVal.InputTitle = "Status";
listVal.InputMessage = "Pick a status";
listVal.ShowError = true;
listVal.ErrorTitle = "Invalid";
listVal.ErrorMessage = "Choose from the list";
workbook.Save("validations-sample.xlsx");
페이지 설정 및 인쇄 옵션
Worksheet.PageSetup를 통해 인쇄 레이아웃을 구성합니다. 여백을 설정합니다 (LeftMarginInch,
RightMarginInch, TopMarginInch, BottomMarginInch), Orientation, PaperSize, 배율,
인쇄 영역, 제목 행 및 열, 머리글 및 바닥글, 그리고 페이지 나누기. 모든 설정은
저장-로드 라운드 트립을 통해 유지됩니다.
using Aspose.Cells_FOSS;
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
sheet.Name = "Print Sheet";
sheet.Cells["A1"].PutValue("Title");
var pageSetup = sheet.PageSetup;
pageSetup.Orientation = PageOrientationType.Landscape;
pageSetup.PaperSize = PaperSizeType.PaperA4;
pageSetup.PrintArea = "$A$1:$C$10";
pageSetup.PrintTitleRows = "$1:$2";
pageSetup.LeftHeader = "Left Header";
pageSetup.CenterFooter = "Center Footer";
pageSetup.PrintGridlines = true;
pageSetup.CenterHorizontally = true;
workbook.Save("page-setup-sample.xlsx");
워크시트 설정 및 보호
Worksheet.ShowGridlines, ShowRowColumnHeaders, ShowZeros, RightToLeft, Zoom 및 TabColor을 사용하여 시트별 표시를 제어합니다. Worksheet.Protect()을 사용하여 시트를 보호하고, 세분화된 Protection 플래그(Objects, FormatCells, InsertRows, AutoFilter, SelectLockedCells)를 구성합니다. Cells.Rows, Cells.Columns 및 Cells.Merge()을 통해 행 높이, 열 너비, 숨김 행/열 및 병합 영역을 관리합니다.
using Aspose.Cells_FOSS;
var workbook = new Workbook();
var layout = workbook.Worksheets[0];
layout.Name = "Layout";
layout.VisibilityType = VisibilityType.Hidden;
layout.TabColor = Color.FromArgb(255, 34, 68, 102);
layout.ShowGridlines = false;
layout.Zoom = 85;
layout.Protect();
layout.Protection.FormatCells = true;
layout.Protection.InsertRows = true;
layout.Cells["A1"].PutValue("Merged");
layout.Cells.Rows[1].Height = 22.5d;
layout.Cells.Columns[0].Width = 18.25d;
layout.Cells.Merge(0, 0, 2, 2);
workbook.Save("worksheet-settings-sample.xlsx");
하이퍼링크 및 명명된 범위
외부, 내부 및 mailto: 하이퍼링크를 HyperlinkCollection.Add()을 통해 추가합니다. 설정Hyperlink.TextToDisplay 및 Hyperlink.ScreenTip을 사용자 표시 레이블로 설정합니다. 명명된
범위를 통합 문서 또는 시트 범위에서 DefinedNameCollection.Add()을 사용하여 정의합니다 — 명명된 범위는
파일을 다시 로드해도 유지되는 안정적인 수식 앵커 및 차트 데이터 소스로 작동합니다.
using Aspose.Cells_FOSS;
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
sheet.Cells["A1"].PutValue("Docs");
var link = sheet.Hyperlinks[sheet.Hyperlinks.Add("A1", 1, 1, "https://example.com/docs")];
link.TextToDisplay = "Docs";
link.ScreenTip = "External documentation";
var name = workbook.DefinedNames[workbook.DefinedNames.Add("PrimaryRange", "='Sheet1'!$A$1:$D$5")];
name.Comment = "Primary data range";
workbook.Save("hyperlinks-names.xlsx");
Console.WriteLine("Hyperlinks: " + sheet.Hyperlinks.Count);
Console.WriteLine("Defined names: " + workbook.DefinedNames.Count);
빠른 시작
dotnet add package Aspose.Cells_FOSS
using Aspose.Cells_FOSS;
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
sheet.Cells["A1"].PutValue("Hello");
sheet.Cells["B1"].PutValue(123);
sheet.Cells["C1"].Formula = "=B1*2";
workbook.Save("output.xlsx");
지원되는 형식
| 형식 | 확장자 | 읽기 | 쓰기 |
|---|---|---|---|
| Xlsx | .xlsx | ✓ | ✓ |
| Auto | (다양함) | ✓ | — |
오픈 소스 및 라이선스
Aspose.Cells FOSS for .NET은 MIT 라이선스 하에 게시되며 NuGet을 통해 Aspose.Cells_FOSS로 배포됩니다. 오픈 소스 및 상업 프로젝트 모두에 적합합니다.