UIPath - перебор файла Excel для динамического заполнения DataTable с диапазоном считывания - PullRequest
0 голосов
/ 30 января 2019

мой вопрос в принципе совпадает с целью Цикл на URL из файла Excel с использованием UiPath (в смысле чтения в файле Excel с ReadRange и итерацией по нему)

IЯ хочу перебрать файл Excel - и, конечно, сделал бы это с областью приложения Excel. Но когда я читаю файл Excel в DataTable - мне нужно задать диапазон, например "D2: K30" ..

«K30» будет концом моего прочитанного диапазона - как мне получить «конец» моего конкретного файла Excel?

С VBA я бы просто перебрал Excelфайл и произнесите что-то вроде

', если содержимое строки равно ""'

, и тогда я узнаю, когда появится первая ПУСТОЙ строка.

Возможно, моя первая найденная пустая строка будет сохранена в переменной "emptyRow" - тогда я мог бы сказать

Диапазон чтения "D2: K" + emptyRow - 1

Так что мойцель состоит в том, чтобы сделать этот Диапазон чтения «динамически» в смысле не копировать пустые строки вв datatable ..

Потому что, кроме того, когда я копирую этот datatable в другой файл Excel, я хочу закрасить определенные диапазоны разными цветами, поэтому мне нужна конкретная длина каждого диапазона, иначе я получу пустые строкиа также цветные ..

С уважением, Франц

1 Ответ

0 голосов
/ 30 января 2019

Есть несколько способов достичь этого:

Наивный подход

Очень простой подход - прочитать диапазон достаточно большого размера, например, A1:C10000, а затем выполнить цикл по указанному диапазону.чтобы найти первую пустую ячейку - в какой момент вы бы вышли из цикла.Есть очевидный недостаток - это совсем не очень эффективно.

Invoke VBA

Другой вариант - использовать действие Invoke VBA , а затем использовать что-то вроде этого:

Function GetRowCount()
    Dim sh As Worksheet
    Set sh = ThisWorkbook.Sheets("Sheet1")
    Dim k As Long
    k = sh.Range("A1", sh.Range("A1").End(xlDown)).Rows.Count
    GetRowCount = k
End function

Это должно работать просто отлично, но для этого необходимо использовать область Excel (и для этого необходимо установить Excel).

Объединить таблицы Get и Get Range

Это, наверное, мой любимый, так как вы можете просто использовать действия Workbook (т.е. без установки Excel).Однако для этого требуется, чтобы ваши данные в Excel были представлены в виде таблицы .Вот пример - действие Get Table Range возвращает диапазон (в виде строки, например, «A1: C42», который затем используется в действии Read Range .

getTableRange

...