반응형

C#으로 셀 병합, 병합 해제 하기

 

 

1. 목표

  • 셀 선택하여 병합하기

  • 셀 병합 해제 방법

 

2. 전체코드

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;

namespace chapter_05
{
    class Program
    {
        static void Main(string[] args)
        {
            Application excelapp = new Application();
            Workbook read_wb = excelapp.Workbooks.Open(Filename: @"C:\test\1234.xlsx");
            Worksheet ws = read_wb.Worksheets.Item[2];


            Range rg1 = ws.Range[ws.Cells[12, 1], ws.Cells[12, 2]];
            rg1.Merge();

            Range rg2 = ws.Cells[12, 1];
            rg1.UnMerge();


            read_wb.Save();
            read_wb.Close();
            excelapp.Quit();
            Marshal.ReleaseComObject(rg1);
            Marshal.ReleaseComObject(rg2);
            Marshal.ReleaseComObject(ws);
            Marshal.ReleaseComObject(read_wb);
            Marshal.ReleaseComObject(excelapp);
        }
    }
}

 

 

3. 뜯어 보기

Range rg1 = ws.Range[ws.Cells[12, 1], ws.Cells[12, 2]];
rg1.Merge();
  • 지난 4회에 사용된 "1234.xls를 이용하여 작업한다.

  • 2번 시트의 합계가 있는 행의 "Total"이란 텍스트가 있는 셀을 합치는 방법이다.

  • 셀의 범위를 정하여 "rg1.Merge();"를 이용하여 셀을 병합한다.

  • 셀 병합시 가장 왼쪽 값이 병합된 셀의 내용으로 들어간다. (기본 엑셀의 기능과 동일하다)

Range rg2 = ws.Cells[12, 1];
rg1.UnMerge();
  • 병합된 셀을 다시 나누는 방법이다.

  • 병합된 셀의 첫번째 셀을 선택한 후 UnMerge()를 이용하여 병합을 해제한다.

  • 위의 rg1처럼 병합된 셀 전체 범위(Range)를 이용하여 병합 해제도 가능하다.

  • "rg1.UnMerge()"와 rg2.UnMerge()"는 동일하게 동작한다.

 

반응형

+ Recent posts