데이터를 처리해줄때마다 한 줄 씩, 한 셀 씩 입력해야한다.
한번에 쓰려고 했었는데 그러면 중간에 어떤 데이터가 누락되었는지 알 수 없기 때문이다.
번거로워도 한 줄 씩 입력해줘야한다.
Write cell이나 Write Range는 세로 방향으로 써내려가기 때문에 못쓰고...
결국 가로로 한 셀씩 이동하면서 쓰는 것을 직접 짜게 되었다.
그러기 위해서는 컬럼의 인덱스, 즉 A B C D E... 같은 것들을 구해야하는데
그러기 위해서는 아스키코드를 활용해야한다.
보다시피 내가 사용해야하는 알파벳 대문자는 A 65부터 Z 90까지의 숫자이다.
포럼을 돌아다니다가 엄청난 플로우를 발견했다.
https://forum.uipath.com/t/write-data-horizontaly-in-excel/19413
Write data horizontaly in excel
Hu guys, can anybody solve my problem. I use extract data to extract a structured data of single column with 3 values. when i normally use write range it writes the data to A1 column What i want to do is to write that three entries in cell A1 B1 C1. i.e. h
forum.uipath.com
답변해주신 분이 쿨하게 플로우만 남기고 사라지셨다...
설명을 요구하는 질문자의 답글을 보면서 아 그러게 왜 이걸 답 안해주지 했는데 ㅋㅋ 결국 내가 이해함..
이 플로우는 결국 컬럼의 인덱스 문자를 얻기 위한 플로우이다.
ColumnName은 나중에 WriteCell에서 다음과 같이 응용될 수 있다.
ColumnName.Trim + "1".toString | A1, B1, C1 ··· |
ColumnName.Trim + (oldDT.Rows.Count+1).toString | 이 두가지 표현식은 내가 읽어온 DT의 마지막줄 다음부터 입력하는 표현식이다. (Read 할때, Haeder가 있으면 +2, 없으면 +1) |
ColumnName.Trim + (oldDT.Rows.Count+2).toString |
1) modulo = (columnNumber-1) mod 26
modulo 는 아스키 코드로 표현하기위해 65에 더할 숫자를 의미한다.
"/26" 을 해준 이유는, 알파벳이 26개라서 그렇다.
A는 아스키코드 10진수로서 표현하면 65인데 65부터 1씩 더할수록 B, C, D, E ··· 점차 진행된다.
그 1씩 더하는 것을 표현한 것이 modulo 이다.
columnNumber가 3이면 65+2 이니까 C가 된다. 이처럼 알파벳 26가지의 숫자를 표현할 수 있는 조건을 생성한다.
2) columnName = Conver.ToChar(65+modulo).toString
이런 식으로 표현해주면 숫자를 아스키코드로 인식하기 때문에 알파벳 대문자로 반환한다.
궁금해서 그냥 CChar(65+1) 을 해봤는데 그럼 오류가 난다.
아스키코드로 할건지, 아님 정말 문자열로 표현할건지 명확하게 해달라고 에러문이 뜬다.
3) Convert.ToInt32((columnNumber - modulo) / 26)
columnNumber를 0으로 초기화해주는 표현식이다.
뭐 이런 식으로 하면... 컬럼 인덱스를 VB 코드 없이 구할 수 있다.
포럼에 검색해보니 컬럼 인덱스를 구하기 위해서 VB 코드만 주는걸 보았는데...
꼭 그런 방법이 아니더라도 플로우로 구현할수도 있었다.
invoke Code나 Invoke VBA는 오류가 있을 수 있으니 ㅎㅎ
'프로그래밍 > RPA' 카테고리의 다른 글
Exception의 종류와 발생조건 (2) | 2020.06.05 |
---|---|
백그라운드 프로세스 체크하기 (0) | 2020.06.02 |
Library를 사용한 Custom Activity / 내가 만든 액티비티 사용하기 (User defined package sources inManage Packages) (2) | 2020.05.25 |
UiPath Assistant 20.4.1 : Orchestrator-Robot-Machine 연동하기 (0) | 2020.05.21 |
Project Organization : State Machine (0) | 2020.05.20 |