.NET에서 핵심 워크북 설정 작업하기
Aspose.Cells FOSS for .NET는 워크북 수준 구성을 Workbook.Settings(로케일 및 날짜 시스템), Workbook.DocumentProperties(작성자 메타데이터), Workbook.LoadDiagnostics(수리 보고서), 및 SaveOptions(저장 동작)를 통해 노출합니다. dotnet add package Aspose.Cells_FOSS로 설치하십시오.
단계별 가이드
단계 1: 패키지 설치
dotnet add package Aspose.Cells_FOSS2단계: 네임스페이스 가져오기
using Aspose.Cells_FOSS;
using System.Globalization;3단계: WorkbookSettings 구성
Workbook.Settings은 WorkbookSettings 객체를 반환합니다. 1904 날짜 시스템을 사용하는 macOS에서 생성된 파일에 대해 Date1904 = true을 설정하십시오. 숫자 및 날짜 구문 분석 로케일을 제어하려면 Culture을 설정하십시오.
using Aspose.Cells_FOSS;
using System.Globalization;
var wb = new Workbook();
wb.Settings.Date1904 = false;
wb.Settings.Culture = new CultureInfo("en-US");
wb.Worksheets[0].Cells["A1"].PutValue("Settings configured");
wb.Save("settings.xlsx");
var loaded = new Workbook("settings.xlsx");
Console.WriteLine("Date1904: " + loaded.Settings.Date1904);4단계: 문서 속성 설정
Workbook.DocumentProperties은 Title, Subject, Author, Keywords, Comments, Category, Company 및 Manager을 직접 문자열 속성으로 노출합니다.
using Aspose.Cells_FOSS;
var wb = new Workbook();
wb.DocumentProperties.Title = "Quarterly Report";
wb.DocumentProperties.Author = "Reporting Team";
wb.DocumentProperties.Company = "Contoso Ltd";
wb.DocumentProperties.Keywords = "quarterly, sales, 2026";
wb.Save("properties.xlsx");
var loaded = new Workbook("properties.xlsx");
Console.WriteLine("Title: " + loaded.DocumentProperties.Title);
Console.WriteLine("Author: " + loaded.DocumentProperties.Author);5단계: SaveOptions 사용
Workbook.Save(path, SaveOptions)은 SaveOptions 객체를 받아 출력 맞춤을 수행합니다. 주요 속성: UseSharedStrings(반복 문자열이 있는 시트의 파일 크기를 줄임), ValidateBeforeSave(쓰기 전에 검증을 실행), 및 CompactStyles(사용되지 않는 스타일을 제거).
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ws = wb.Worksheets[0];
for (var i = 0; i < 50; i++)
ws.Cells[i, 0].PutValue("Repeated text");
var opts = new SaveOptions
{
UseSharedStrings = true,
ValidateBeforeSave = true,
CompactStyles = true,
};
wb.Save("compact.xlsx", opts);
Console.WriteLine("Saved with SaveOptions.");단계 6: 복구 후 LoadDiagnostics 읽기
TryRepairPackage = true으로 로드한 후, Workbook.LoadDiagnostics를 확인하여 수리가 적용되었는지 확인하십시오.
using Aspose.Cells_FOSS;
var opts = new LoadOptions { TryRepairPackage = true, TryRepairXml = true };
var wb = new Workbook("file.xlsx", opts);
var diag = wb.LoadDiagnostics;
Console.WriteLine("HasRepairs: " + diag.HasRepairs);
Console.WriteLine("HasDataLossRisk: " + diag.HasDataLossRisk);
foreach (var entry in diag.Issues)
Console.WriteLine($" [{entry.Severity}] {entry.Code}: {entry.Message}");일반적인 문제 및 해결책
WorkbookSaveException 일 때 ValidateBeforeSave = true.
워크북에 구조적 불일치가 있습니다. ValidateBeforeSave을(를) 일시적으로 비활성화하여 저장하고 파일을 검사한 다음, 문제 있는 내용을 수정하십시오.
Excel의 파일 정보 패널에 문서 속성이 표시되지 않음.Workbook.DocumentProperties에 속성을 설정하고 있는지 확인하십시오, Workbook.Properties이 아니라. 후자는 표시 플래그를 보유하고 있으며 메타데이터 문자열이 아닙니다.
Date1904 = true은 날짜 값이 이동하게 합니다.
Date1904는 날짜 일련 번호에 사용되는 epoch를 변경합니다. macOS Excel에서 1904 날짜 시스템이 활성화된 파일에만 true을 설정하십시오; 시스템을 혼합하면 1462일 차이 오류가 발생합니다.
자주 묻는 질문
WorkbookSettings와 WorkbookProperties의 차이점은 무엇인가요?
WorkbookSettings (via Workbook.Settings) 은 Date1904 및 Culture와 같은 구성 값을 보유합니다. WorkbookProperties (via Workbook.Properties) 은 ShowObjects와 같은 OOXML 표시 플래그를 보유합니다. 문서 메타데이터 문자열(Title, Author 등)은 Workbook.DocumentProperties에 있습니다.
CompactStyles가 내가 필요한 스타일을 제거한 적이 있나요?
아니오. CompactStyles는 워크북의 셀이나 서식 규칙에서 참조되지 않은 스타일만 제거합니다.
수리 시도가 없었을 때도 LoadDiagnostics를 읽을 수 있나요?
예. Issues 컬렉션은 비어 있게 되며 HasRepairs와 HasDataLossRisk 모두 false을 반환합니다.