셀 병합 및 병합 해제는 Microsoft Excel의 간단하고 일반적으로 사용되는 기능입니다. 셀 병합은 동일한 제목을 공유하는 여러 열이 있는 워크시트가 있는 경우와 같은 시나리오에서 유용할 수 있습니다. 열 위의 셀을 병합하여 공통 제목을 지정할 수 있습니다. 병합된 셀이 더 이상 필요하지 않은 경우 쉽게 병합 해제할 수 있습니다. C++ 응용 프로그램 내에서 이러한 작업을 수행해야 할 수도 있습니다. 이를 위해 이 기사에서는 C++를 사용하여 프로그래밍 방식으로 Excel 워크시트의 셀을 병합 및 병합 해제하는 방법을 설명합니다.
- 셀 병합 및 병합 해제를 위한 C++ API
- C++를 사용하여 Excel 워크시트의 셀 병합
- C++를 사용하여 Excel 워크시트의 셀 병합 해제
- C++를 사용하여 Excel 워크시트의 셀 범위 병합
- C++를 사용하여 Excel 워크시트의 셀 범위 병합 해제
- C++를 사용하여 Excel 워크시트에서 명명된 범위의 셀 병합
셀 병합 및 병합 해제를 위한 C++ API
Aspose.Cells for C++는 Microsoft Excel을 설치하지 않고도 Excel 파일을 만들고 읽고 수정할 수 있는 네이티브 C++ 라이브러리입니다. API는 Excel 워크시트에서 셀 병합 및 병합 해제도 지원합니다. NuGet을 통해 API를 설치하거나 다운로드 섹션에서 직접 다운로드할 수 있습니다.
PM> Install-Package Aspose.Cells.Cpp
C++를 사용하여 Excel 워크시트의 셀 병합
이 예에서는 빈 Excel 워크시트를 만들고 아래 단계에 따라 몇 개의 셀을 병합합니다.
- 먼저 IWorkbook 클래스의 인스턴스를 만듭니다.
- IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) 메서드를 사용하여 워크시트를 검색합니다.
- IWorksheet->GetICells() 메서드를 사용하여 셀을 검색합니다.
- ICells->Merge(Aspose::Cells::Systems::Int32 firstRow, Aspose::Cells::Systems::Int32 firstColumn, Aspose::Cells::Systems::Int32 totalRows, Aspose:: Cells::Systems::Int32 totalColumns) 메서드.
- 병합된 셀에 스타일을 적용합니다.
- 마지막으로 IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String fileName) 메서드입니다.
다음 샘플 코드는 C++를 사용하여 Excel 워크시트의 셀을 병합하는 방법을 보여줍니다.
// 출력 디렉토리 경로.
StringPtr outDir = new String("OutputDirectory\\");
// 입력 엑셀 파일 불러오기
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Excel 파일의 첫 번째 워크시트에 액세스
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// 모든 셀을 가져오지 않는 Cells 개체를 만듭니다.
intrusive_ptr<ICells> cells = worksheet->GetICells();
// 셀 병합
cells->Merge(5, 2, 2, 3);
// 데이터를 셀에 입력
cells->GetObjectByIndex(5, 2)->PutValue((StringPtr)new String("This is a test value"));
// 스타일 개체 만들기
intrusive_ptr<IStyle> style = cells->GetICell(5, 2)->GetIStyle();
// 글꼴 개체 만들기
intrusive_ptr<Aspose::Cells::IFont> font = style->GetIFont();
// 이름 설정
font->SetName(new String("Times New Roman"));
// 글꼴 크기 설정
font->SetSize(18);
// 글꼴 색상 설정
font->SetColor(Systems::Drawing::Color::GetCyan());
// 텍스트를 굵게 표시
font->SetBold(true);
// 텍스트를 기울임꼴로 만들기
font->SetItalic(true);
// 전경색 설정
style->SetForegroundColor(Systems::Drawing::Color::GetRed());
// 패턴 설정
style->SetPattern(BackgroundType_Solid);
// 스타일 적용
cells->GetICell(5, 2)->SetIStyle(style);
// 엑셀 파일 저장
workbook->Save(outDir->StringAppend(new String("MergeCells_out.xlsx")));
C++를 사용하여 Excel 워크시트의 셀 병합 해제
다음은 Excel 워크시트에서 셀 병합을 해제하는 단계입니다.
- IWorkbook 클래스를 사용하여 Excel 파일을 로드합니다.
- IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) 메서드를 사용하여 병합된 셀이 포함된 워크시트를 검색합니다.
- IWorksheet->GetICells() 메서드를 사용하여 셀을 검색합니다.
- ICells->UnMerge(Aspose::Cells::Systems::Int32 firstRow, Aspose::Cells::Systems::Int32 firstColumn, Aspose::Cells::Systems::Int32 totalRows, Aspose::Cells)를 사용하여 셀 병합을 해제합니다. ::Systems::Int32 totalColumns) 메서드입니다.
- 마지막으로 IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String fileName) 메서드입니다.
다음 샘플 코드는 C++를 사용하여 Excel 워크시트의 셀 병합을 해제하는 방법을 보여줍니다.
// 소스 디렉토리 경로.
StringPtr srcDir = new String("SourceDirectory\\");
// 출력 디렉토리 경로.
StringPtr outDir = new String("OutputDirectory\\");
// 입력 엑셀 파일 불러오기
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedCells.xlsx")));
// Excel 파일의 첫 번째 워크시트에 액세스
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// 모든 셀을 가져오지 않는 Cells 개체를 만듭니다.
intrusive_ptr<ICells> cells = worksheet->GetICells();
// 셀 병합을 해제합니다.
cells->UnMerge(5, 2, 2, 3);
// 엑셀 파일 저장
workbook->Save(outDir->StringAppend(new String("UnmergeCells_out.xlsx")));
C++를 사용하여 Excel 워크시트의 셀 범위 병합
다음은 Excel 워크시트의 셀 범위를 병합하는 단계입니다.
- 먼저 IWorkbook 클래스의 인스턴스를 만듭니다.
- IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) 메서드를 사용하여 원하는 워크시트를 검색합니다.
- 셀에 데이터를 삽입합니다.
- IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String 주소) 메서드입니다.
- IRange->Merge() 메서드를 사용하여 범위를 병합합니다.
- 마지막으로 IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String fileName) 메서드입니다.
다음 샘플 코드는 C++를 사용하여 Excel 워크시트의 셀 범위를 병합하는 방법을 보여줍니다.
// 출력 디렉토리 경로.
StringPtr outDir = new String("OutputDirectory\\");
// 입력 엑셀 파일 불러오기
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Excel 파일의 첫 번째 워크시트에 액세스
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// A1 셀에 데이터를 입력합니다.
worksheet->GetICells()->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));
// 범위 만들기
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// 범위를 단일 셀로 병합
range->Merge();
// 엑셀 파일 저장
workbook->Save(outDir->StringAppend(new String("MergeRangeOfCells_out.xlsx")));
C++를 사용하여 Excel 워크시트의 셀 범위 병합 해제
다음은 Excel 워크시트에서 셀 범위를 병합 해제하는 단계입니다.
- IWorkbook 클래스를 이용하여 엑셀 파일을 불러옵니다.
- IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) 메서드를 사용하여 병합된 셀이 포함된 워크시트를 검색합니다.
- IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String 주소) 메서드입니다.
- IRange->UnMerge() 메서드를 사용하여 범위를 병합 해제합니다.
- 마지막으로 IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String fileName) 메서드입니다.
다음 샘플 코드는 C++를 사용하여 Excel 워크시트의 셀 범위를 병합 해제하는 방법을 보여줍니다.
// 소스 디렉토리 경로.
StringPtr srcDir = new String("SourceDirectory\\");
// 출력 디렉토리 경로.
StringPtr outDir = new String("OutputDirectory\\");
// 입력 엑셀 파일 불러오기
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));
// Excel 파일의 첫 번째 워크시트에 액세스
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// 범위 만들기
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// 범위 병합 해제
range->UnMerge();
// 엑셀 파일 저장
workbook->Save(outDir->StringAppend(new String("UnmergeRangeOfCells_out.xlsx")));
C++를 사용하여 Excel 워크시트에서 명명된 범위의 셀 병합
Aspose.Cells for C++는 명명된 범위의 셀을 병합하는 기능도 제공합니다. 이를 달성하려면 아래에 제공된 단계를 따르십시오.
- IWorkbook 클래스를 이용하여 엑셀 파일을 불러옵니다.
- IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) 메서드를 사용하여 워크시트를 검색합니다.
- IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String 주소) 메서드입니다.
- IRange->SetName(intrusiveptrAspose::Cells::Systems::String 값) 메서드입니다.
- 명명된 범위에 스타일을 만들고 적용합니다.
- IRange->Merge() 메서드를 사용하여 명명된 범위의 셀을 병합합니다.
- 마지막으로 IWorkbook->Save(intrusiveptrAspose::Cells::Systems::String fileName) 메서드입니다.
다음 샘플 코드는 C++를 사용하여 명명된 범위의 셀을 병합하는 방법을 보여줍니다.
// 소스 디렉토리 경로.
StringPtr srcDir = new String("SourceDirectory\\");
// 출력 디렉토리 경로.
StringPtr outDir = new String("OutputDirectory\\");
// 입력 엑셀 파일 불러오기
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));
// Excel 파일의 첫 번째 워크시트에 액세스
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// 범위 만들기
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// 범위 이름 설정
range->SetName(new String("Named_Range"));
// 스타일 개체 정의
intrusive_ptr<IStyle> style = workbook->CreateIStyle();
// 수평 정렬 설정
style->SetHorizontalAlignment(TextAlignmentType::TextAlignmentType_Center);
// StyleFlag 개체 만들기
intrusive_ptr<IStyleFlag> styleFlag = Factory::CreateIStyleFlag();
// 수평 정렬 설정 to true
styleFlag->SetHorizontalAlignment(true);
// 범위에 스타일 적용
range->ApplyIStyle(style, styleFlag);
// 범위에 데이터 넣기
range->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));
// 병합 범위
range->Merge();
// 엑셀 파일 저장
workbook->Save(outDir->StringAppend(new String("MergeNamedRange_out.xlsx")));
무료 라이선스 받기
임시 무료 라이선스를 요청하면 평가 제한 없이 API를 사용해 볼 수 있습니다.
결론
이 문서에서는 C++를 사용하여 Excel 워크시트의 셀을 병합 및 병합 해제하는 방법을 배웠습니다. 또한 Aspose.Cells for C++ API를 사용하여 범위와 명명된 범위를 병합 및 병합 해제하는 방법을 살펴보았습니다. API는 공식 문서를 방문하여 자세히 탐색할 수 있는 Excel 파일 작업을 위한 많은 추가 기능을 제공합니다. 질문이 있는 경우 무료 지원 포럼을 통해 언제든지 문의하십시오.