Features
기능
Aspose.Cells FOSS for .NET은 Excel XLSX 스프레드시트를 생성, 읽기 및 수정하기 위한 순수 관리형 .NET 라이브러리입니다. 진입점은 Workbook 클래스이며, 워크시트, 정의된 이름 및 저장/로드 작업에 대한 접근을 제공합니다. 이 페이지는 간단한 코드 예제와 함께 모든 주요 기능 영역을 요약합니다.
워크북 생성, 로드 및 저장
new Workbook()으로 새 워크북을 생성합니다. 생성자에 파일 경로를 전달하여 기존 XLSX 파일을 로드합니다. LoadOptions을 사용하여 내결함성 로딩을 활성화합니다. 변경 사항을 영구 저장하려면 Workbook.Save(path)를 호출합니다.
using Aspose.Cells_FOSS;
// New workbook
var wb = new Workbook();
wb.Worksheets[0].Cells["A1"].PutValue("Hello");
wb.Save("output.xlsx");
// Load with repair options
var opts = new LoadOptions { TryRepairPackage = true, TryRepairXml = true };
try
{
var loaded = new Workbook("input.xlsx", opts);
Console.WriteLine(loaded.Worksheets[0].Cells["A1"].StringValue);
}
catch (WorkbookLoadException ex)
{
Console.WriteLine("Load failed: " + ex.Message);
}셀 데이터 및 수식
Cell.PutValue()을 사용하여 문자열, 정수, 소수, 부울 및 DateTime 값을 기록합니다. Excel 호환 수식 문자열을 할당하려면 Cell.Formula를 설정합니다. 표시 텍스트는 Cell.StringValue을 통해, 원시 값은 Cell.Value을 통해 읽어옵니다.
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ws = wb.Worksheets[0];
ws.Cells["A1"].PutValue("Qty");
ws.Cells["B1"].PutValue("Price");
ws.Cells["C1"].PutValue("Total");
ws.Cells["A2"].PutValue(10);
ws.Cells["B2"].PutValue(4.99m);
ws.Cells["C2"].Formula = "=A2*B2";
wb.Save("data.xlsx");
var loaded = new Workbook("data.xlsx");
Console.WriteLine(loaded.Worksheets[0].Cells["C2"].StringValue); // 49.9셀 스타일링
어떤 셀에 Cell.GetStyle() 및 Cell.SetStyle()가 있는 경우 Style 객체를 검색하고 수정합니다. Style 클래스는 Font(굵게, 기울임, 크기, 이름), ForegroundColor, Pattern(유형 FillPattern), HorizontalAlignment(HorizontalAlignmentType 사용) 및 Borders을 통한 테두리 제어를 제공합니다.
using Aspose.Cells_FOSS;
var wb = new Workbook();
var cell = wb.Worksheets[0].Cells["A1"];
cell.PutValue("Styled Header");
var style = cell.GetStyle();
style.Font.Bold = true;
style.Font.Size = 14;
style.Pattern = FillPattern.Solid;
style.ForegroundColor = Color.FromArgb(255, 198, 239, 206);
style.HorizontalAlignment = HorizontalAlignmentType.Center;
cell.SetStyle(style);
wb.Save("styled.xlsx");조건부 서식
Worksheet.ConditionalFormattings은/는 ConditionalFormattingCollection을 반환합니다. Add()를 호출하여 규칙 집합을 만들고, 그 다음 AddCondition()를 사용하여 FormatConditionType와 OperatorType를 이용해 규칙을 추가합니다. 지원되는 조건 유형에는 CellValue, Expression, ColorScale, DataBar, 그리고 IconSet이 포함됩니다.
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ws = wb.Worksheets[0];
for (var i = 0; i < 10; i++)
ws.Cells[i, 0].PutValue(i + 1);
var ruleSet = ws.ConditionalFormattings[ws.ConditionalFormattings.Add()];
ruleSet.AddArea(CellArea.CreateCellArea("A1", "A10"));
var rule = ruleSet[ruleSet.AddCondition(FormatConditionType.CellValue, OperatorType.Between, "3", "7")];
var ruleStyle = rule.Style;
ruleStyle.Pattern = FillPattern.Solid;
ruleStyle.ForegroundColor = Color.FromArgb(255, 255, 199, 206);
rule.Style = ruleStyle;
wb.Save("cf.xlsx");데이터 유효성 검사
Worksheet.Validations은/는 ValidationCollection을 반환합니다. Add(CellArea)를 호출하여 셀 범위에 대한 Validation을 생성합니다. ValidationType(List, Decimal, 또는 Custom)를 사용하여 Type 속성을 설정합니다. Formula1, Formula2, Operator, InputTitle, InputMessage, ErrorTitle, 및 ErrorMessage를 구성합니다.
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ws = wb.Worksheets[0];
var listVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("A1", "A10"))];
listVal.Type = ValidationType.List;
listVal.Formula1 = "\"Open,Closed,Pending\"";
listVal.InCellDropDown = true;
var numVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("B1", "B10"))];
numVal.Type = ValidationType.Decimal;
numVal.Operator = OperatorType.Between;
numVal.Formula1 = "0";
numVal.Formula2 = "100";
numVal.ShowError = true;
wb.Save("validation.xlsx");자동 필터
Worksheet.AutoFilter은/는 AutoFilter 객체를 노출합니다. AutoFilter.Range를 설정하여 헤더 행 범위를 정의합니다. AutoFilter.FilterColumns(컬렉션)에 접근하고 Add(columnIndex)를 호출하여 특정 열에 대한 필터링을 활성화합니다.
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ws = wb.Worksheets[0];
ws.Cells["A1"].PutValue("Name");
ws.Cells["B1"].PutValue("Region");
ws.Cells["C1"].PutValue("Sales");
ws.Cells["A2"].PutValue("Alice"); ws.Cells["B2"].PutValue("North"); ws.Cells["C2"].PutValue(1200);
ws.AutoFilter.Range = "A1:C1";
ws.AutoFilter.FilterColumns.Add(1);
wb.Save("filter.xlsx");하이퍼링크 및 정의된 이름
Worksheet.Hyperlinks은(는) HyperlinkCollection입니다. 외부 URL, 내부 셀 참조 또는 mailto 링크를 삽입하려면 Add()를 호출하십시오. 사용자에게 표시되는 텍스트는 Hyperlink.TextToDisplay와 Hyperlink.ScreenTip로 설정합니다. Workbook.DefinedNames은(는) DefinedNameCollection이며; 명명된 범위를 만들려면 Add(name, refersTo)를 호출하십시오.
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ws = wb.Worksheets[0];
ws.Cells["A1"].PutValue("Docs");
var link = ws.Hyperlinks[ws.Hyperlinks.Add("A1", 1, 1, "https://docs.aspose.org/cells/net/")];
link.TextToDisplay = "Documentation";
wb.DefinedNames[wb.DefinedNames.Add("DataRange", "Sheet1!$A$1:$D$10")].Comment = "Main data range";
wb.Save("links.xlsx");페이지 설정
Worksheet.PageSetup은(는) 인쇄 여백, 방향, 용지 크기, 인쇄 영역, 제목 행/열, 머리글, 바닥글 및 페이지 나누기를 제어합니다. PageOrientationType와 PaperSizeType 열거형을 사용하십시오.
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ps = wb.Worksheets[0].PageSetup;
ps.Orientation = PageOrientationType.Landscape;
ps.PaperSize = PaperSizeType.PaperA4;
ps.PrintArea = "$A$1:$H$50";
ps.CenterHeader = "My Report";
ps.CenterHorizontally = true;
ps.AddHorizontalPageBreak(25);
wb.Save("paged.xlsx");워크시트 관리
WorksheetCollection을(를) 통해 워크시트를 추가, 이름 바꾸기, 숨기기 및 순서 변경합니다. WorksheetCollection.Add(name)은(는) 새 시트의 인덱스를 반환합니다. VisibilityType을(를) 사용하여 Worksheet.VisibilityType를 설정합니다. Cells.Merge()로 셀을 병합하고 Cells.Rows와 Cells.Columns을(를) 통해 행/열 크기를 제어합니다.
using Aspose.Cells_FOSS;
var wb = new Workbook();
wb.Worksheets[0].Name = "Summary";
var dataIdx = wb.Worksheets.Add("Data");
wb.Worksheets[dataIdx].VisibilityType = VisibilityType.Hidden;
wb.Worksheets.ActiveSheetName = "Summary";
var ws = wb.Worksheets["Summary"];
ws.Cells["A1"].PutValue("Title");
ws.Cells.Merge(0, 0, 1, 4);
ws.Cells.Rows[0].Height = 30d;
ws.Cells.Columns[0].Width = 20d;
wb.Save("worksheets.xlsx");팁 및 모범 사례
- 사용자가 제공한 경로에서 파일을 로드할 때 항상
WorkbookLoadException을(를) 잡아야 합니다. - 저장하려는 정확한 .NET 유형과 함께
Cell.PutValue()을(를) 사용하십시오 — 통화의 경우decimal을, 날짜의 경우DateTime을 전달합니다. - 디스플레이 텍스트를 보려면
Cell.StringValue를 읽고, 원시 .NET 객체가 필요할 때는Cell.Value를 사용하세요. - 필요한 가장 넓은 범위에 조건부 서식 규칙 집합을 만들세요 — 행별 규칙은 큰 시트에서 비용이 많이 듭니다.
- 각 셀을 쓸 때마다 호출하지 말고, 마지막에 한 번
wb.Save()를 호출하세요.
일반적인 문제
| 문제 | 원인 | 해결 방법 |
|---|---|---|
열 때 WorkbookLoadException | XLSX에서 손상된 ZIP 구조 | 설정 LoadOptions.TryRepairPackage = true |
수식이 빈 StringValue을 반환합니다 | 로드 시 수식이 다시 계산되지 않음 | Workbook.Save() 라운드 트립 후 Cell.StringValue에 접근 |
| 하이퍼링크 주소가 원시 URL을 표시합니다 | TextToDisplay이 설정되지 않음 | Add() 뒤에 Hyperlink.TextToDisplay을 설정합니다. |
| 워크시트 탭이 표시되지 않음 | VisibilityType이 Hidden으로 설정됨 | 설정 ws.VisibilityType = VisibilityType.Visible |
FAQ
Aspose.Cells의 .NET용 FOSS가 Microsoft Office를 필요로 하나요?
아니요. 이 라이브러리는 순수 관리 코드이며 Office, Excel, 또는 COM 인터옵에 대한 의존성이 없습니다.
지원되는 파일 형식은 무엇인가요?
XLSX (읽기 및 쓰기). CSV, ODS, PDF, 및 바이너리 XLS는 이번 릴리스에서 지원되지 않습니다.
이 라이브러리를 상업용 애플리케이션에서 사용할 수 있나요?
네. Aspose.Cells FOSS는 MIT 라이선스 하에 공개되며, 로열티 없이 무제한 상업적 사용을 허용합니다.
최소 .NET 버전은 무엇인가요?
.NET 6.0 이상.
셀에 배경색을 적용하려면 어떻게 해야 하나요?
style.Pattern = FillPattern.Solid와 style.ForegroundColor = Color.FromArgb(...)을 설정한 다음, cell.SetStyle(style)를 호출합니다.
API Reference 요약
| 클래스 / 메서드 | 설명 |
|---|---|
Workbook | 루트 클래스 — 워크북을 생성, 로드, 저장 |
Workbook.Worksheets | 다음 WorksheetCollection을 반환합니다 |
Workbook.Save(path) | 워크북을 디스크에 저장합니다 |
Workbook.DefinedNames | 이름이 지정된 범위 컬렉션 |
Worksheet.Cells | 셀 그리드 접근 |
Worksheet.ConditionalFormattings | 조건부 서식 규칙 집합 |
Worksheet.Validations | 데이터 유효성 검사 규칙 |
Worksheet.AutoFilter | 자동 필터 구성 |
Worksheet.Hyperlinks | 하이퍼링크 컬렉션 |
Worksheet.PageSetup | 인쇄 레이아웃 설정 |
Cell.PutValue() | 입력된 셀 데이터 쓰기 |
Cell.Formula | Excel 호환 수식 문자열 |
Cell.GetStyle() / Cell.SetStyle() | 셀 스타일 읽기/쓰기 |
Style.Pattern | 채우기 패턴 (FillPattern enum) |
Style.HorizontalAlignment | 셀 정렬 (HorizontalAlignmentType) |
LoadOptions | 내결함성 파일 로딩 옵션 |