반응형

C#으로 엑셀 셀 선택 방법

 

1. 목표

  • 1개의 셀 선택

  • 2개 이상의 셀 범위 선택하기

  • 에러의 경우 살펴보기

 

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_03
{
    class Program
    {
        static void Main(string[] args)
        {
            Application excelapp = new Application();
            Workbook read_wb = excelapp.Workbooks.Open(Filename: @"C:\test\123.xlsx");
            Worksheet ws = read_wb.Worksheets.Item[1];


            Range rg1 = ws.Cells[1, 1];

            Range rg2 = ws.Range["A1"];

            Range rg3 = ws.Range[ws.Cells[1, 1], ws.Cells[3, 3]];


            //에러

            //Range rg2_1 = ws.Range[1, 1];
            //Range rg2_2 = ws.Range[ws.Cells[1,1]];
            //Console.WriteLine(rg3_1);


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

 

 

3. 뜯어 보기

Range rg1 = ws.Cells[1, 1];
  • rg1이란 범위 객체에 셀을 할당한다

  • ws.Cells[1,1]은 1개의 셀만 선택할 때 사용된다.

Range rg2 = ws.Range["A1"];
  • rg2에 범위를 설정한다.

  • 위와 다르게 Ragne를 써서 "A1"이라는 엑셀의 셀 좌표 표현 방식을 그대로 사용한다.

  • "A1:C:4"와 같이 엑셀 함수에서 사용하는 표현법으로 선택도 가능하다.

Range rg3 = ws.Range[ws.Cells[1, 1], ws.Cells[3, 3]];
  • rg3의 범위를 시작 셀과 마지막셀을 이용하여 범위를 선택한다.

  • 1개의 셀을 선택할땐 Cells[1,1]을, 범위를 선택할땐 Range를 사용한다.

//Range rg2_1 = ws.Range[1, 1];
//Range rg2_2 = ws.Range[ws.Cells[1,1]];
  • 두 경우 모두 Range의 매개변수가 잘못되어 에러가 난다.

  • Range는 시작셀과 끝셀이 지정되어야만 한다.

 

 

 

 

반응형

+ Recent posts