-
[Uipath] DataTable에서 숫자로 시작하는 행만 남기기 - DataTable Filter 관련 메소드프로그래밍/RPA(RoboticProcessAutomation) 2020. 3. 10. 15:05
안녕하세요 젤린입니다 :)
Uipath에서 Excel자료를 읽고 활용하려다 보면 난감한 부분이 많이 있죠.
위이 이미지처럼 셀이 병합되어 있다거나, 계속해서 표의 위치 및 크기가 바뀐다거나...
참고로 병합된 셀은 가장 상위의 셀 부분에서만 데이터가 읽히고, 하위 셀들은 데이터가 Empty상태입니다.
저는 위의 표를 읽고 금액 및 송금금액 연산, 다른 파일에 연산 데이터 합산 등등의 작업을 진행하였습니다.
대부분의 DataTable 필터링을 할 때에는 Uipath에서 기본적으로 제공하는 Filter DataTable Activity를 활용하여 쉽게할 수 있지만, 거기에서 필터링 할 수 있는 조건은 제한적이죠. 실무에서 작업을 진행하다보면 정해진 필터링 외에도 다양한 메소드나 조건식, 정규식을 활용하여 데이터를 필터링 해야하는 상황이 많이 생기기 마련입니다.
그럴 상황을 대비하여 우리는 Activity의 사용 외에도 DataTable을 필터링하는 방법을 숙지해두어야 합니다.
이번 포스팅에서는 필터링의 예시로 DataTable에서 숫자로 시작하는 행만 남겨 새로운 DataTable만들기를 다루어 보도록 하겠습니다~!
Uipath에서 DataTable의 숫자로 시작하는 Row만 뽑는법
아래는 실습을 진행한 워크플로우입니다.
WorkBook의 Read Range Activity를 이용하여 원하는 셀의 모든 정보를 긁어왔습니다.(Output : DT_Amount)
그 후 DT_Amount_Incen 이름으로 DataTable Type의 변수를 만들고, DT_Amount에서 숫자로 시작하는 행만 뽑아 새로운 테이블을 넣어주었습니다.
Assign의 상세 내용은 아래와 같습니다.
(From r In DT_Amount.Select() Where r(0).ToString.IsNumeric=True Select r).CopyToDataTable
위 코드에서 r은 DT_Amount의 Row[] 즉 Row모음에서의 Row를 순서대로 가지고 오게 되는 것입니다.
r(0)은 해당 row의 0번째 Index값이며, 이 0번째 Index에서 IsNumeric메소드를 이용하여 문자열 안에 숫자만 있는지, 문자가 섞여있는지 판단해줍니다.
.CopyDataTable메소드를 이용하여 선택한 Row[]의 배열을 Table로 변환시켜준 후 DT_Amount_Incen에 넣어주게 됩니다.
.
.
위의 코드는 무궁무진하게 활용할 수 있을 것입니다.
Select를 사용하는 등의 데이터테이블 조작법은 Uipath홈페이지에도 상세히 나와있습니다.
블로그 포스팅보다도 훨씬 설명이 잘 되어있으니, 들어가서 보시고 위의 제 예시는 참고용으로 활용하시면 좋을 것 같습니다. ㅎㅎㅎ
URL : https://www.uipath.com/community/rpa-community-blog/four-ways-to-filter-data-table-in-uipath-studio
감사합니다><
'프로그래밍 > RPA(RoboticProcessAutomation)' 카테고리의 다른 글
[UIPATH] VB.Net 날짜/시간 메소드(DateTime) (0) 2020.04.02 [Uipath] text파일에 로그 찍기(Append Line) (0) 2020.04.02 [UIPATH] VB.Net 문자열 조작 메소드(String) (0) 2020.04.01 [Uipath] Double 연산하고 소수점 버리기, 화폐 단위로 Format하기 (0) 2020.03.10 [Uipath] 비밀번호, 공인인증서 로그인 - Type Secure Text (1) 2020.03.09