UiPath Excel 시트의 체재를 정돈 (시트 순서 변경/불필요한 행 삭제)

2654 단어 RPAExcelUiPath

RPA 개발로 Excel 데이터 조작 후, 완성된 시트의 외형이 신경이 쓰였으므로 체재를 정돈한다



수동으로 시트를 이동하도록 UiPath에서도 마찬가지로 구현하면 되지만, 클릭의 셀렉터가 의외로 주자로, 이동하고 싶지 않은 시트를 이동되어 버렸기 때문에 비망록으로서.
또한 불필요한 줄이 몇 줄이 아니라 수백 줄, 수천 줄, 수만 줄 있을 때도 처리 속도를 떨어뜨리지 않고 삭제하는 방법도 있다.

실현하고 싶은 것



구체적으로는
· 시트의 순서를 정렬하고 싶습니다.
· 불필요한 행을 삭제하고 마지막 행만 남기고 싶습니다.

이미지 다이어그램



예 1) 이하의 시트 순서를 정렬하여 S사 영업 실적, P사 영업 실적, S사 영업 실적 히나가타, P사 영업 실적 히나가타의 순서로 하고 싶다.


예 2) 불필요한 행 삭제 전. 병아리 시트에 20000행정이기 때문에 불필요한 행이 상당히 있는 상태.


예 3) 불필요한 행 삭제 후. 마지막 줄만 남겨주세요.


UiPath에서의 구현 - 시트 순서 정렬 -



예 1-1) 시트 순서 정렬. 비슷한 시트 이름이 없는 경우.
①Click 액티비티로 이동시키고 싶은 시트 탭을 오른쪽 클릭(※프로퍼티의 마우스 버튼:BTN_RIGHT. 디폴트는 왼쪽 클릭이므로 잊지 않고 변경.)
② SendHotkey 액티비티에서 Shift+m. Click 액티비티에서 '시트 이동 또는 복사'를 선택했지만 셀렉터를 사용할 수 없습니다. 단축키를 사용하는 것이 확실합니다.
③Click 액티비티로 삽입할 시트를 선택.
④ Click 액티비티에서 OK를 선택.

예 1-2) 시트 순서 정렬. 비슷한 시트 이름이 있는 경우.
위의 ①이 실패하기 때문에 Click 액티비티에서 좌표로 셀렉터를 취득한다.
<좌표로 Click 셀렉터 취득 순서>
①Click 액티비티 「화면상에서 지정」
② 언제나 그대로 클릭하는 대신 Shift+f3 눌러서 대상 시트 탭을 클릭합니다.
③ 프로퍼티의 클리핑 영역에 좌표가 취해져 있다.

★주의점으로서는, 시트의 위치가 변함없이 고정이 아니면 좌표에서의 클릭은 성공하지 않는다. 로봇 실행 전에 시트 순서가 프로그래밍시와 달라질 가능성이 있다면 좌표에서의 셀렉터 취득은 유효하지 않다.

UiPath에서의 구현 - 불필요한 행 삭제 -



Excel 작업 활동이 많아 혼란스러울 때가 있지만,
"행 삭제"의 동작을하는 활동이라고
・Insert/Delete Rows
· ExcelDeleteRange
의 2개를 들 수 있다.

Insert/Delete Rows
···수행 삽입/삭제에 적합하다. 프로퍼티로 행수 지정을 할 수 있지만, 동작으로서는 1행씩 삽입/삭제해 나가므로, 상당한 행수 처리를 하고 싶은 경우에는 적합하지 않다.

ExcelDeleteRange
・・・시프트 옵션에서 동작을 선택할 수 있다. 한 줄씩 처리하지 않기 때문에 처리 속도가 빠릅니다.

그래서 이번에는 ExcelDeleteRange 액티비티를 사용.
①데이터가 들어 있는 행수를 먼저 취득해 둔다. (Rows.Count에서 데이터 행 수를 취할 수 있습니다. 예 : intRowNum = dtbCsvData.Rows.Count)
② 프로퍼티 설정 : 시프트 옵션을 ShiftUp, 셀의 시프트에 체크, 시트명에 대상 시트, 범위에 "A"+(intRowNum+1).Tostring+":O19999". (20000만행부터 데이터행수+최종행의 공백 일행을 남기는 상정.)

요약



UiPath는 액티비티가 꽤 많이 있기 때문에, 모두를 알려고 하면 시간이 걸린다. 필요에 따라 시험해 본 다음에 구분한다는 것이 제일 좋은 것일까-. Excel의 조작이라고 해도 하고 싶은 것이 때와 경우에 따라서 다를 것이다.

좋은 웹페이지 즐겨찾기