다중 탭 스프레드시트 작업
소개
각 Excel 탭을 독립 파일로 저장해야 한다면, .NET용 GroupDocs.Editor가 손쉽게 처리합니다. 재무 보고서를 추출하거나 부서별 워크시트를 생성하거나 탭을 PDF로 변환하는 경우에도, 이 튜토리얼은 환경 설정부터 리소스 해제까지 전체 워크플로우를 단계별로 안내하여 다중 시트 처리를 자신 있게 자동화할 수 있도록 도와줍니다.
빠른 답변
- GroupDocs.Editor가 XLSX를 개별 파일로 분할할 수 있나요? 예, 워크북을 로드하고 각 시트를 개별적으로 내보낼 수 있습니다.
- 각 탭을 어떤 형식으로 저장할 수 있나요? XLSX, CSV, PDF, HTML 등 – 30개 이상의 출력 형식을 지원합니다.
- 이 기능에 라이선스가 필요합니까? 테스트용 임시 라이선스로도 동작하지만, 프로덕션에서는 정식 라이선스가 필요합니다.
- .NET Core를 지원하나요? 물론입니다 – 라이브러리는 .NET Framework 4.0 이상 및 .NET Core/5/6+와 호환됩니다.
- 한 번에 처리할 수 있는 탭 수는 얼마인가요? GroupDocs.Editor는 전체 파일을 메모리에 로드하지 않고도 500개 이상의 시트를 가진 워크북을 처리할 수 있습니다.
“각 Excel 탭 저장”이란 무엇인가요?
**“Save each Excel tab”**은 다중 시트 워크북에서 모든 워크시트를 추출하여 각각을 독립적인 문서(예: 별도의 XLSX 또는 PDF 파일)로 저장하는 것을 의미합니다. 이 방법은 시트당 하나의 파일을 제공함으로써 후속 처리, 보고 및 배포를 단순화하고, 해당 파일을 개별적으로 공유, 보관 또는 추가 변환할 수 있게 합니다.
이 작업에 GroupDocs.Editor를 사용하는 이유
GroupDocs.Editor는 30개 이상의 입력 및 출력 형식을 지원하며, 최대 1,000개의 시트가 있는 스프레드시트를 전체 파일을 로드하지 않고 스트리밍 방식으로 데이터를 처리하여 메모리 사용량을 최소화합니다. API는 셀 스타일, 수식 및 삽입된 이미지를 그대로 보존하여 각 내보낸 탭이 원본과 동일하게 보이도록 합니다.
전제 조건
시작하기 전에 다음이 준비되어 있는지 확인하십시오:
- Visual Studio – 최신 버전(Community, Professional, Enterprise) 중 하나.
- .NET Framework 4.0+ – 또는 크로스 플랫폼 런타임을 선호한다면 .NET Core/5/6.
- GroupDocs.Editor for .NET – download page에서 다운로드하십시오.
- License – 테스트용으로는 temporary license가 충분하지만, 프로덕션 사용을 위해서는 정식 라이선스를 구매해야 합니다.
- Free trial – free trial 페이지를 통해 라이브러리를 체험할 수 있습니다.
- Support – 문제가 발생하면 support forum을 방문하거나 정식 라이선스를 위한 purchase page를 참고하십시오.
네임스페이스 가져오기
코딩을 시작하기 전에 필요한 네임스페이스를 가져와야 합니다. 다음 using 지시문을 .cs 파일 상단에 추가하십시오:
using System.IO;
using GroupDocs.Editor.Formats;
using GroupDocs.Editor.Options;
각 Excel 탭을 별도 파일로 저장하는 방법
워크북을 로드하고 각 시트에 대해 EditableDocument를 생성한 뒤 원하는 형식으로 Save를 호출합니다. 이 과정은 각 탭을 분리하고, 별도의 출력 경로를 선택하게 하며, 리소스를 자동으로 해제합니다. 아래는 따라야 할 단계별 워크플로우이며, 각 API 호출에 대한 설명과 일반적인 함정을 피하기 위한 모범 사례 팁을 제공합니다.
단계 1: 입력 파일 경로 가져오기
먼저, 여러 탭이 포함된 원본 XLSX 파일의 전체 경로를 지정합니다.
string inputFilePath = "Your Sample Document";
단계 2: 스프레드시트를 Editor 인스턴스로 로드하기
Editor 클래스는 GroupDocs.Editor에서 모든 문서 작업의 진입점입니다. 파일 스트림을 읽어 문서를 편집 또는 추출할 준비를 합니다.
using (FileStream inputStream = File.OpenRead(inputFilePath))
{
using (Editor editor = new Editor(delegate { return inputStream; }, delegate { return new SpreadsheetLoadOptions(); }))
{
// Further steps will go here
}
}
단계 3: 첫 번째 탭에서 EditableDocument 생성
EditableDocument는 워크북 내 단일 편집 가능한 시트를 나타냅니다. 생성자는 Editor 인스턴스와 0부터 시작하는 시트 인덱스를 받습니다.
SpreadsheetEditOptions editOptions1 = new SpreadsheetEditOptions();
editOptions1.WorksheetIndex = 0; // First tab
EditableDocument firstTabBeforeEdit = editor.Edit(editOptions1);
단계 4: 두 번째 탭에서 EditableDocument 생성
인덱스 값을 변경하여 추가 시트에 대해 동일한 패턴을 반복할 수 있습니다.
SpreadsheetEditOptions editOptions2 = new SpreadsheetEditOptions();
editOptions2.WorksheetIndex = 1; // Second tab
EditableDocument secondTabBeforeEdit = editor.Edit(editOptions2);
단계 5: 첫 번째 탭을 별도 문서로 저장
Save는 편집된 문서를 지정된 형식의 파일로 기록합니다. EditableDocument 인스턴스에서 호출하고 출력 경로와 형식(예: SaveFormat.Xlsx)을 제공하십시오.
SpreadsheetSaveOptions saveOptions1 = new SpreadsheetSaveOptions(SpreadsheetFormats.Xlsm);
string outputFilename1 = Path.GetFileNameWithoutExtension(inputFilePath) + "_tab1.xlsm";
string outputPath1 = Path.Combine(Constants.GetOutputDirectoryPath(inputFilePath), outputFilename1);
editor.Save(firstTabBeforeEdit, outputPath1, saveOptions1);
단계 6: 두 번째 탭을 별도 문서로 저장
두 번째 시트에도 동일한 Save 호출이 작동하며, 필요에 따라 PDF와 같은 다른 형식을 선택할 수 있습니다.
SpreadsheetSaveOptions saveOptions2 = new SpreadsheetSaveOptions(SpreadsheetFormats.Xlsb);
string outputFilename2 = Path.GetFileNameWithoutExtension(inputFilePath) + "_tab2.xlsb";
string outputPath2 = Path.Combine(Constants.GetOutputDirectoryPath(inputFilePath), outputFilename2);
editor.Save(secondTabBeforeEdit, outputPath2, saveOptions2);
단계 7: EditableDocument 인스턴스 해제
Dispose는 파일 핸들 등 문서가 보유한 비관리 리소스를 해제하여 장기 실행 서비스에서 누수가 발생하지 않도록 합니다.
firstTabBeforeEdit.Dispose();
secondTabBeforeEdit.Dispose();
일반적인 문제 및 해결책
- “File is locked” 오류 – 모든
EditableDocument와Editor인스턴스에 대해Dispose()를 호출하거나using문으로 감싸십시오. - 내보낸 후 스타일 누락 – 스타일을 지원하는 형식(e.g., XLSX 또는 PDF)으로 저장했는지 확인하십시오. CSV는 설계상 서식이 손실됩니다.
- 대용량 워크북으로 성능 저하 – 메모리 사용량을 낮추기 위해 스트리밍 로드 옵션(
LoadOptions.Streaming = true)을 사용하십시오.
자주 묻는 질문
Q: 워크북에 숨겨진 시트가 포함되어 있으면 어떻게 되나요?
A: 숨겨진 시트도 다른 시트와 동일하게 취급됩니다; 인덱스로 접근하여 저장할 수 있지만, 출력에서 보이게 하려면 저장 전에 EditableDocument.IsVisible = true로 설정해야 할 수 있습니다.
Q: Excel 탭을 직접 PDF로 변환할 수 있나요?
A: 예, EditableDocument에서 Save를 호출할 때 SaveFormat.Pdf를 지정하면 됩니다. 라이브러리는 변환 과정에서 레이아웃, 이미지 및 차트를 보존합니다.
Q: 워크북을 XLSX 대신 CSV 파일로 분할할 수 있나요?
A: 물론입니다. 각 EditableDocument에 대해 SaveFormat.Csv를 사용하면 각 시트의 텍스트 기반 CSV 표현을 생성할 수 있습니다.
Q: GroupDocs.Editor가 암호로 보호된 Excel 파일을 지원하나요?
A: 지원합니다. Editor 인스턴스를 생성할 때 LoadOptions.Password에 비밀번호를 제공하면 됩니다.
Q: 스프레드시트 작업에 대한 추가 예제를 어디서 찾을 수 있나요?
A: 공식 문서와 샘플 프로젝트는 download page에 있으며, 추가 사용 사례를 포함하고 있습니다.
결론
이 단계들을 따르면 각 Excel 탭을 독립 문서로 저장하고, 탭을 PDF로 변환하거나 대용량 워크북을 관리하기 쉬운 조각으로 분할할 수 있습니다—모두 신뢰할 수 있는 고성능 .NET용 GroupDocs.Editor 라이브러리를 사용합니다. 이 기능은 보고 파이프라인을 간소화하고, 데이터 추출을 자동화하며, 수동 스프레드시트 처리를 감소시킵니다.
Last Updated: 2026-06-06
Tested With: GroupDocs.Editor 23.11 for .NET
Author: GroupDocs