๐Ÿค’ UiPath Data ์กฐ์ž‘ํ•˜๊ธฐ

Back to the basic v1.0.4๐Ÿš

Posted by labft3231 on May 22, 2020

UiPath ์—์„œ๋Š” ๊ธฐ์กด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋“ค๊ณผ ๋‹ค๋ฅด๊ฒŒ ์ดˆ๊ธฐํ™” ๋ฐ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•์— Activity ๋ฅผ ๋งŽ์ด ํ™œ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์กฐ์ž‘์— ๋Œ€ํ•ด ํ—ท๊ฐˆ๋ฆด ๋•Œ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ์ด๊ธฐ๋„ํ•˜๊ณ  ๊ธฐ๋ณธ์„ ๋˜๋Œ์•„ ๋ณด๊ณ  ๋” ํƒ„ํƒ„ํ•œ ๊ธฐ๋ณธ์„ ๋‹ค์ง€๊ธฐ ์œ„ํ•ด ํฌ์ŠคํŒ…์„ ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๐Ÿ—ฟ ๋ณธ ํฌ์ŠคํŒ…์€ Data ๊ธฐ๋ณธ ์กฐ์ž‘์— ๋Œ€ํ•ด ์ •๋ฆฌ ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. ๊ณ„์† ์ˆ˜์ •ํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค.


UiPath Data Manipulation


String

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Contains : VarName.Contains ("text")

Format : String.Format("{0} is {1}", VarName1, VarName2)

IndexOf : VarName1.IndexOf("a")

Join : String.Join("|", CollVarName1)

Replace : VarName.Replace ("original", "replaced")

Split : VarName.Split("|"c)(index) 
ex) Varname.Split({","}, System.StringSplitOptions.None)
Varname.Split({",", " "}, System.StringSplitOptions.None)

- None	0	
> ๋ฌธ์ž์—ด์„ ๋ถ„ํ• ํ•  ๋•Œ ๊ธฐ๋ณธ ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
- RemoveEmptyEntries	1	
> ๊ฒฐ๊ณผ์˜ ๋นˆ ๋ฌธ์ž์—ด์„ ํฌํ•จํ•˜๋Š” ๋ฐฐ์—ด ์š”์†Œ๋ฅผ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.
- TrimEntries	2	- uipath์—์„  ์˜ต์…˜์ด ๋ณด์ด์ง€ ์•Š์Œ
> ๊ฒฐ๊ณผ์˜ ๊ฐ ๋ถ€๋ถ„ ๋ฌธ์ž์—ด์—์„œ ๊ณต๋ฐฑ ๋ฌธ์ž๋ฅผ ์ž๋ฆ…๋‹ˆ๋‹ค.

Trim : Trim(VarName)

Substring : VarName1.Substring(startIndex, length)




List

๋ฐฐ์—ด์€ ์—ฌ๋Ÿฌ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ๊ณ ์ • ํฌ๊ธฐ ๊ตฌ์กฐ์ธ ๋ฐ˜๋ฉด, ๋ชฉ๋ก์„ ํ†ตํ•ด ํ•ญ๋ชฉ์„ ์ถ”๊ฐ€, ์‚ฝ์ž… ๋ฐ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค.

์ดˆ๊ธฐํ™”

Array String ์ดˆ๊ธฐํ™”

  • new string(){} Array String ์ถ”๊ฐ€

New List (Of String) my_List = new List(of string)(new string(){โ€œvalue1โ€,โ€value2โ€})

Initialize Array my_Array = new string(){โ€œvalue1โ€,โ€value2โ€} Array ์ฒซ๋ฒˆ์งธ ๊ฐ’ my_First = my_Array.first

List ์š”์†Œ ์ถ”๊ฐ€
  • Add to collection์ด๋ผ๋Š” activity๋กœ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ• ์ˆ˜ ์žˆ์Œ

  • Invoked Method๋กœ Sort๋‚˜ Add๋„ ๊ฐ€๋Šฅํ•จ.

๋ฆฌ์ŠคํŠธ๋ผ๋ฆฌ ํ•ฉ์น˜๊ธฐ ์œ„ํ•ด์„œ Enumerable.Concat์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

1
Enumerable.Concat(SpainCities.AsEnumerable, UKCities.AsEnumerable).ToList

.AsEnumerable ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” List๋ฅผ Enumerableํ•œ๊ฒƒ์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๊ธฐ ์œ„ํ•ด์„œ ์ด๋‹ค.

๋ฆฌ์ŠคํŠธ๋ฅผ String์œผ๋กœ ๋ณ€ํ™˜

1
StrConv(item, VbStrConv.ProperCase)




Dictionaries

  • Key์™€ Value๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ์Œ.
์ดˆ๊ธฐํ™”
1
2
3
4
new Dictionary(of String, List(Of String))

cities("US") = new List(of String) from {"New York", "Chicago", "Seattle","San Francisco"}

์š”์†Œ ์ถ”๊ฐ€ ์ œ๊ฑฐ

Add to Collection, RemoveFromCollection ์•กํ‹ฐ๋น„ํ‹ฐ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ ์•„๋ž˜ ๋ฐฉ๋ฒ•๋„ ๊ฐ€๋Šฅ

  • ์š”์†Œ ์ถ”๊ฐ€

    VarName.Add(Key, Value)

  • ์š”์†Œ ์ œ๊ฑฐ

    VarName.Remove(Key)

๊ธฐํƒ€
  • VarName.Item(Key) โ€“ key๊ฐ’์œผ๋กœ ์•„์ดํ…œ ๊ฐ€์ ธ์˜ค๊ธฐ
  • VarName.Count โ€“ ์š”์†Œ ๊ฐฏ์ˆ˜ ๊ฐ€์ ธ์˜ค๊ธฐ
  • VarName.ContainsKey(Key) โ€“ key๊ฐ€ ํฌํ•จ๋˜์–ด์žˆ๋Š”์ง€ ํ™•์ธ(boleanํ˜•์œผ๋กœ return)
  • VarName.TryGetValue(Key, Value) โ€“ key valueํ™•์ธ




DataRow ๋™์ ์ถ”๊ฐ€

๋ฐฐ์—ด์€ ํฌ๊ธฐ๊ฐ€ ์ •ํ•ด์ ธ์žˆ๊ธฐ ๋•Œ๋ฌธ์— List๋กœ DataRow๋ฅผ ๋Œ€์ฒดํ•˜์—ฌ DataTable์— ์‚ฝ์ž… ๊ฐ€๋Šฅ.

System.Collections.Generic.List

-> New List(Of String)(new String() {})

Dict

New Dictionary(of string, string)

Dict์˜ List

New List(Of Dictionary(Of String, String))()

Data Add

Invoke method์‚ฌ์šฉ

MethodName : AddRange

Parameter : IEnumerable, {""}

TargetObject : System.Collections.Generic.List

TargetType : (null)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<br>

---

<br>

### DataTable 

- ํ–‰๊ณผ ์—ด์„ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” Type



##### ์ดˆ๊ธฐํ™”

```c#
New System.Data.DataTable
์ƒ์„ฑ

์ผ๋ฐ˜์ ์ธ ์ƒ์„ฑ ๋ฐฉ๋ฒ•์€ BuildDataTable, Read Range, Read CSV, Data scraping์ด ์žˆ๋‹ค๊ณ  ํ•จ.

Generate Data Table์„ ํ†ตํ•ด์„œ ๋™์ ์œผ๋กœ๋„ ์ƒ์„ฑ๋„ ๊ฐ€๋Šฅํ•จ.

์„œ๋กœ ๋‹ค๋ฅธ DataTable ํ•ฉ์น˜๊ธฐ

Join DataTables : JoinType ์†์„ฑ์— ์ง€์ •๋œ Join ๊ทœ์น™์— ๋”ฐ๋ผ ์„œ๋กœ ๊ณตํ†ต ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ํ…Œ์ด๋ธ”์˜ ํ–‰์„ ๊ฒฐํ•ฉ ํ•ฉ๋‹ˆ๋‹ค.

Merge DataTable : ์ง€์ •๋œ DataTable์„ ํ˜„์žฌ DataTable๊ณผ ๋ณ‘ํ•ฉํ•˜์—ฌ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ๋ณด์กดํ• ์ง€ ์—ฌ๋ถ€์™€ ํ˜„์žฌ DataTable์—์„œ ๋ˆ„๋ฝ ๋œ ์Šคํ‚ค๋งˆ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.




๊ธฐํƒ€

loop ์ง€์ • ํšŸ์ˆ˜ ๋ฐ˜๋ณต

For Each ์›ํ•˜๋Š” ๊ฐฏ์ˆ˜ ๋Œ๋ฆฌ๊ณ  ์‹ถ์„๋•Œ(์•„๋ž˜ ์˜ˆ์ œ๋Š” 3๋ฒˆ ๋ฐ˜๋ณต)

Enumerable.Range(0, 3)

Excel Read Range / Workbook Read Range ์ฐจ์ด

Workbook์€ Excel์ด ์„ค์น˜๋˜์ง€ ์•Š์•„๋„ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๊ณ  Excel์€ Excel์ด ์„ค์น˜๋˜์–ด ์žˆ์–ด์•ผ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•จ. ๋˜ํ•œ Excel Read Range๋Š” Excel scope์•ˆ์—์„œ ์‹คํ–‰๋˜์–ด์•ผํ•จ

๋ฒˆ์™ธ๋กœ.. Workbook์€ DRM์ด ๊ฑธ๋ฆฐ ํŒŒ์ผ์ด ์—ด๋ฆฌ์ง€๋„ ์•Š์ง€๋งŒ DRM์ด ๊ฑธ๋ฆฌ์ง€๋„ ์•Š์•„ Excel์€ DRM ํŒŒ์ผ์ด ์—ด๋ฆฌ๋Š”๋ฐ ์ €์žฅํ•˜๋ฉด DRM์ด ๊ฑธ๋ฆผ

Array ๊ฑด๋„ˆ๋›ฐ๊ธฐ( index ๊ฐ’์œผ๋กœ ์ง€์šฐ๋Š”๊ฒŒ ์žˆ์„ํ…๋ฐ ๋ชป์ฐพ์•˜์Œ)

arrayData.Skip(1).ToArray()

Datatime ํฌ๋งท ์ •ํ•ด์ฃผ๊ธฐ ์ถ”๊ฐ€

System.DateTime.Now.ToString(โ€œyyyy_MM_ddโ€)

DateTime.Now.AddMonths(-1).ToString(โ€œyyyy.MM.ddโ€)

ํ˜„์žฌ Directory (path) ๊ฐ€์ ธ์˜ค๊ธฐ

Directory.GetCurrentDirectory()

์ •๊ทœํ‘œํ˜„์‹ ์ฐพ์€ ๊ฐ’์„ Array(Of String)์œผ๋กœ ๋ณ€๊ฒฝ

Matches Type : System.Collections.Generic.IEnumable OfType(Of Match).Select(Function(m) m.Value.ToString).ToArray

๊ณต๋ฐฑ ๋ฌธ์ž์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•

โ€œํ…Œ์ŠคํŠธโ€ & vbLf & โ€œ์ž…๋‹ˆ๋‹คโ€ Or โ€œtestโ€+ vbLf + โ€œ์ž…๋‹ˆ๋‹คโ€

์ปฌ๋Ÿผ๋ช… ๋ณ€๊ฒฝ

datatableVar.Columns(โ€œoldColumnNameโ€).ColumnName = New column Name

์ค‘๋ณต๋˜์ง€ ์•Š์€ ์‚ฌํ•ญ ์ฐพ๊ธฐ

List1.Except(List2)

์ค‘๋ณต ์‚ฌํ•ญ

List1.Intersect(List2) Distinct(), Union()

์œ ๋‹ˆ์ฝ”๋“œ ๋””์ฝ”๋”ฉ (\u20)

System.Text.RegularExpressions.Regex.Unescape(unicodeString)

Get Excel Row index

Int value_row_index =yourdatatable.Rows.Indexof(row)

Get Folder Name

Directory.GetFiles(ํด๋”๋ช…, โ€œ.xlsโ€, SearchOption.AllDirectories)

Datatable ์ค‘๋ณต์ œ๊ฑฐ

Datatable.DefaultView.Totable(true, list of column names)