셀 병합 및 병합 해제는 Microsoft Excel의 간단하고 일반적으로 사용되는 기능입니다. 셀 병합은 동일한 제목을 공유하는 여러 열이 있는 워크시트가 있는 경우와 같은 시나리오에서 유용할 수 있습니다. 열 위의 셀을 병합하여 공통 제목을 지정할 수 있습니다. 병합된 셀이 더 이상 필요하지 않은 경우 쉽게 병합 해제할 수 있습니다. C++ 응용 프로그램 내에서 이러한 작업을 수행해야 할 수도 있습니다. 이를 위해 이 기사에서는 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 워크시트를 만들고 아래 단계에 따라 몇 개의 셀을 병합합니다.

다음 샘플 코드는 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")));
샘플 코드에서 생성된 출력 Excel 파일의 이미지

샘플 코드에서 생성된 출력 Excel 파일의 이미지

C++를 사용하여 Excel 워크시트의 셀 병합 해제

다음은 Excel 워크시트에서 셀 병합을 해제하는 단계입니다.

다음 샘플 코드는 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")));
샘플 코드에서 생성된 출력 Excel 파일의 이미지

샘플 코드에서 생성된 출력 Excel 파일의 이미지

C++를 사용하여 Excel 워크시트의 셀 범위 병합

다음은 Excel 워크시트의 셀 범위를 병합하는 단계입니다.

다음 샘플 코드는 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")));
샘플 코드에서 생성된 출력 Excel 파일의 이미지

샘플 코드에서 생성된 출력 Excel 파일의 이미지

C++를 사용하여 Excel 워크시트의 셀 범위 병합 해제

다음은 Excel 워크시트에서 셀 범위를 병합 해제하는 단계입니다.

다음 샘플 코드는 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")));
샘플 코드에서 생성된 출력 Excel 파일의 이미지

샘플 코드에서 생성된 출력 Excel 파일의 이미지

C++를 사용하여 Excel 워크시트에서 명명된 범위의 셀 병합

Aspose.Cells for C++는 명명된 범위의 셀을 병합하는 기능도 제공합니다. 이를 달성하려면 아래에 제공된 단계를 따르십시오.

다음 샘플 코드는 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")));
샘플 코드에서 생성된 출력 Excel 파일의 이미지

샘플 코드에서 생성된 출력 Excel 파일의 이미지

무료 라이선스 받기

임시 무료 라이선스를 요청하면 평가 제한 없이 API를 사용해 볼 수 있습니다.

결론

이 문서에서는 C++를 사용하여 Excel 워크시트의 셀을 병합 및 병합 해제하는 방법을 배웠습니다. 또한 Aspose.Cells for C++ API를 사용하여 범위와 명명된 범위를 병합 및 병합 해제하는 방법을 살펴보았습니다. API는 공식 문서를 방문하여 자세히 탐색할 수 있는 Excel 파일 작업을 위한 많은 추가 기능을 제공합니다. 질문이 있는 경우 무료 지원 포럼을 통해 언제든지 문의하십시오.

또한보십시오