[excel - python - uipath] 엑셀 자동화에 대해서 알아보자(13-1)

루까까·2023년 10월 21일
0

Excel 자동화

목록 보기
23/25

이번 시간에는 Insert Column activity, Insert Rows activity에 대해서 알아보자.

1. Insert Column

Insert Column은 시트, 테이블 또는 범위의 지정된 위치에 열 또는 열의 머리글을 삽입시켜주는 기능이다.

1-1. 범위

  • 어느 범위에 열을 추가할 것이지 지정하는 곳이다.
  • 특정시트, 특정 범위, 특정 테이블이 선택 가능하다.
  • 표현식으로는 다음과 같다.
    • Excel.Sheet("특정시트")
    • Excel.Sheet("특정시트").Range("특정범위")
    • Excel.Table("특정테이블")
      • 해당 표현식은 사용하려면 기존에 만들어둔 table이 있어야지 가능하다.

1-2. 장소, 열 기준

  • 열 기준은 이름 그대로 어떤 열을 기준을 삼을지 결정하는 부분이다.
  • 열 기준의 경우, 범위에 있는 머리글 포함 여부에 따라 기입하는 방식이 달라진다.
    • 머리글 포함이 있는 경우, 선택한 범위에 머리글 을 기입하면 된다.
    • 머리글 포함이 없는 경우, 선택한 범위에 열 이름 을 기입하면 된다.(ex. A열, B열 등등)
  • 열 장소의 경우 열 기준으로 어느쪽에다가 열을 추가할지 정하는 곳이다.
    • 이전 이면 열 기준으로 좌측
    • 이후 이면 열 기준으로 우측
    • 에 추가된다.

1-3. 헤더 추가

  • 열 기준 및 장소까지 정했으면 어떠한 열을 추가할지 결정하면 된다.
  • 어떠한 열을 추가할지 결정해주는 곳이라고 생각하면 된다.
  • 사용자가 기재한 이름대로 열이 추가된다.
  • 만약 빈값이면 빈 열로 추가 된다.

1-4. 다음 형식으로 데이터 형식 지정

  • 추가한 열이 어떤 서식으로 추가할지 결정하는 부분이다.
  • 숫자, 날짜 등등 엑셀에서 제공하는 다양한 서식을 지원한다.

Insert Column 공식문서

2. Insert Rows

Insert Rows는 테이블, 범위 또는 시트의 지정된 위치에 하나 이상의 행을 삽입해주는 기능이다.
'Rows' 라는 이름에서도 알 수 있듯이 Insert Column과 다르게 여러 행 추가를 지원한다.

2-1. 테이블 또는 범위 지정

  • 어느 범위에 행을 추가할 것이지 지정하는 곳이다.
  • 특정시트, 특정 범위, 특정 테이블이 선택 가능하다.
  • 표현식으로는 다음과 같다.
    • Excel.Sheet("특정시트")
    • Excel.Sheet("특정시트").Range("특정범위")
    • Excel.Table("특정테이블")
      • 해당 표현식은 사용하려면 기존에 만들어둔 table이 있어야지 가능하다.

    2-2. 행 수

  • 몇행을 추가할 것인지 기입하는 곳이다.
  • int형을 지원한다.
  • 머리글 포함 여부에 따라 행 추가하는 위치가 달라 진다.
    • 머리글을 포함 할 경우, 머리글 아래로 행이 추가된다.(행이 추가 된다고 해도 머리글의 위치가 변하지 않는다.)
    • 머리글을 포함 하지 않을 경우, 머리글 위로 행이 추가된다.(행이 추가되면 머리글의 위치가 바뀔 수 있다.)

2-3. 장소

  • 어느 위치에다가 행을 추가할 것인지 정하는 곳이다.
  • 시작, 끝, 특정 인덱스 세가지를 지원한다.
  • 시작
    • 내가 지정한 범위 첫번째 위치에서 행을 추가한다.
    • 내가 지정한 범위 마지막 위치에서 행을 추가한다.
  • 특정 인덱스
    • 내가 지정한 범위 특정 위치에서 행을 추가한다.

Insert Rows 공식문서

3. 연습

3-1. Insert Column로 열 추가하기

연습용.xlsx sheet1에 다음과 같은 데이터가 있다고 가정하자.

해당 시트에 머리글2 우측에 "테스트"라는 열을 추가 및 해당 열의 서식은 숫자로 지정하는 activity를 만들어 보자.

해당 activity를 실행하면 결과는 다음과 같다.

activity를 실행한 결과, 머리글2 우측에 테스트라는 열이 생겼으며 서식또한 지정되었음을 알 수 있다.(숫자로 지정하였는데 사용자 지정으로 표현된다..)

3-2. Insert Rows로 행 추가하기

연습용.xlsx sheet1에 다음과 같은 데이터가 있다고 가정하자.

3-2-1. 시작

장소는 시작으로 지정하고 해당 시트에 세개의 행을 추가하는 activity를 만들어 보자.

해당 activity를 실행하면 결과는 다음과 같다.

보이는 것과 같이 머리글 아래에 3개의 행이 추가 되었다.
2-2에서 언급한 것처럼 머리글을 포함했을 경우, 머리글 바로 아래를 시작으로 생각한다.
만약 여기서 미러글을 포함 하지 않을 경우에는,

머리글 위에 3행이 추가됨을 알 수 있다.

3-2-2. 끝

장소는 으로 지정하고 해당 시트에 세개의 행을 추가하는 activity를 만들어 보자.

해당 activity를 실행하면 결과는 다음과 같다.

변화점이 없다.
말 그대로, 끝에서 행을 추가하는 것이기에 변화가 없어 보인다.

3-3-3. 특정 인덱스

장소는 인덱스으로 지정하고(특정 인덱스는 3으로 지정) 해당 시트에 세개의 행을 추가하는 activity를 만들어 보자.

해당 activity를 실행하면 결과는 다음과 같다.

머리글이 포함되어 있는 경우, 머리글을 제외한 행의 위치, 연습용.xlsx sheet1의 경우 4행이 특정 위치로 지정되었기에 4행을 시작으로 4,5,6행에 빈 행이 추가 되었다.

그럼 머리글이 포함되지 않는 경우는 어떻게 될까?

보이는 것과 같이 머리글을 머리글로 인식을 하지 않기에 머리글을 포함해서 3행이 특정 위치로 지정되어 3행을 시작으로 3,4,5행에 빈 행이 추가 되었다.

여담

Insert Column의 경우, 꼭 머리글만 추가 될까? 중간에 특정 cell을 기점으로 열을 추가 할 수는 없을까?
특정 cell을 기점으로 물론 추가 가능하다.

위 사진에서 보이는 activity는 필자가 'B3'이라는 특정 cell을 기점으로 '테스트'라는 열을 추가하기 위해 만든 activity다.
(열 기준이 왜 32이라는 값이 들어갔냐면 B3을 기준으로 삼을 때, B3에 기입된 값 32가 머리글로 기준이 되기 때문이다.)
해당 activity를 실행 시키면 결과는 다음과 같다.

결과에서 보여지는 것처럼 B3 옆에 테스트라는 컬럼이 추가 된 것을 확인 할 수 있다.

여담2

Insert Rows의 경우, 시트가 아닌 특정 cell을 기점으로 열을 추가할 수 없을까?
추가 가능하다.

위 사진에서 보이는 activity는 필자가 'B3'이라는 특정 cell을 기점으로 3개의 행을 추가하기 위해 만든 activity다.
해당 activity를 실행 시키면 결과는

위 사진에서 보여지는 것 이 B3이라는 특정 cell을 기점으로 아래에 3개의 행이 추가 됨을 확인 할 수 있다.

profile
기타치는 개발자

0개의 댓글