2022. 10. 31. 12:26ㆍRPA
1. 서로 다른 두 DT를 비교하여 겹치는 row를 삭제하고 싶을 때 (동일한 row 필터)
dt2 = dt2.AsEnumerable().Except(dt1.AsEnumerable(),DataRowComparer.Default).CopyToDataTable
-> dt2의 모든 row가 dt1에도 있을 시 dt2가 없어져서 오류 발생 (try catch 등 잘 보완해서 사용해야함)
2. 리스트에 포함되는 값을 갖고 있는 row만 남기는 소스
dtOutput = (From p In dtInput.Select Where join(lList,",").contains(p(Column_Index).ToString) Select p).ToArray.CopyToDataTable
-> List는 개수가 일정하지 않아서 필터 activity를 사용할 수 없음. (for문을 돌리더라도 다른 DT에 필터링된 row를 쌓아야함)
ex)
lJobDate ={"2022-10-01","2022-10-02","2022-10-03"}
dtInput의 날짜 column의 값이 위 리스트에 있는 값인 row만 남기고 싶을 때,
dtInput = (From p In dtInput.Select Where Date.TryParse(p(0).ToString, dDate) AndAlso join(lJobDate ,",").contains(CDate(p(0)).ToString("yyyy-MM-dd")) Select p).ToArray.CopyToDataTable
이와 같이 사용했다.
(AndAlso 앞은 해당 컬럼 값이 DateTime 형식인지 확인하는 부분이다. 해당 컬럼 전체가 Datetime이면 상관 없지만 나는 글자만 있는 값도 있어서 위와 같이 처리했다. dDate라는 DateTime형 변수 생성해야함)
3. row 수 제한
DT = DT.AsEnumerable().Take(500).CopyToDataTable()
500줄로 제한하는 코드이다(맨 윗줄부터 500줄)
4. DT안의 특정 값을 replace하고싶을 때
DT = (From r In DT.AsEnumerable
Let ra = r.ItemArray.Select(Function (x) x.ToString.Trim.Replace("AAA","")).toArray()
Select testDT.Rows.Add(ra)).CopyToDataTable()
testDT = DT.clone
DT에서 AAA가 없어지는 코드
5. 한 컬럼의 값을 기준으로 중복제거(맨 첫번째 row만 남김)
DT=DT.AsEnumerable().GroupBy(Function(i) i.Field(Of String)(“Col1”)).Select(Function(g) g.First).CopyToDataTable()
Col1 컬럼을 기준으로 첫번째 row만 남기고 중복제거 됨
6. DT의 한 컬럼을 List로 변경
[LIst 네임] = (From row in [DT이름].AsEnumerable() Select Convert.Tostring(row([List 만들고 싶은 컬럼 이름]))).ToList()
7. 특정 값이 있는 row의 index를 알고싶을 때
dt.Asenumerable.Tolist.Findindex(Function(r) r("컬럼명").Tostring.Equals("특정값"))
-> 특정 값이 첫번째로 있는 index를 반환 (값이 없을 시 -1)
dt.AsEnumerable.Where(Function(r) r("컬럼명").ToString="특정값").Select(Function(r) dt.Rows.IndexOf(r)).ToArray()
-> 특정 값이 있는 index를 리스트로 전부 반환 (값이 없을 시 빈 list)
'RPA' 카테고리의 다른 글
[Uipath] Data Scraping이 자동으로 안 잡힐 때 직접 잡는 법 (2) | 2022.12.06 |
---|---|
[Uipath] 엑셀 파일 확장자 변환 (0) | 2022.11.30 |
[Uipath] 구글 스프레드 시트 GSuite를 이용하여 조작하기 (0) | 2022.08.22 |
[Uipath] 새 Orchestrator 환경(Modern 에서 API를 이용하여 프로세스 실행해보기 (0) | 2022.08.12 |
[Uipath] 유용한 패키지와 액티비티 (0) | 2022.07.05 |