Как прочитать лист Excel и поместить значение ячейки в различные текстовые поля через UiPath? - PullRequest
0 голосов
/ 15 февраля 2019

Как прочитать лист Excel и поместить значение ячейки в разные текстовые поля через UiPath?

У меня есть лист Excel следующим образом:

SAP_excel

Я прочитал содержимое Excel и для повторного просмотра содержимого позже я сохранил содержимое в Output Data Table следующим образом:

  • Диапазон считывания - Вывод:

    • DataTable: CVdatatable
  • Таблица выходных данных

    • DataTable: CVdatatable
    • Текст: opCVdatatable

Снимок экрана:

SAP_OutputDataTable

Наконец, я хочу прочитать text opCVdatatable в итерации и запишите их в текстовые поля.Таким образом, в желаемых Входных полях я упомянул opCVdatatable или opCVdatatable+ "[k(enter)]", как требуется.

Снимок экрана:

SAP_iterate_OutputDataTable

Но UiPath, кажется, начинается с начала Таблицы выходных данных всякий раз, когда я вызывал opCVdatatable.

Inshort, каждый желаемый Входной файл является итеративнымзаполнить все данные данными, хранящимися в Таблице выходных данных .

Может кто-нибудь помочь мне, пожалуйста?

Ответы [ 2 ]

0 голосов
/ 15 февраля 2019

Вот другой, более общий подход.Вместо включения цели в сам процесс, Excel будет изменен, чтобы включить части селектора:

enter image description here

Обратите внимание, что столбец B теперь содержитидентификатор, и этот идентификатор зависит от приложения, с которым вы будете работать.Например, вот мой пример приложения выглядит так.Как видите, первое текстовое поле имеет идентификатор 585, второе - 586 и т. Д. (Обратите внимание, что вы можете работать с любым видом идентификатора, включая имя элемента управления, если открыт UiPath):

uiexplorer

Теперь, вместо добавления нескольких элементов Type Into в рабочий процесс, вы бы добавили только один, зациклились над каждой строкой таблицы данных, а затем создали быдинамический селектор:

workflow

В моем случае селектор для действия Type Into выглядит следующим образом:

"<wnd cls='#32770' title='General' /><wnd ctrlid='" + row(1).ToString() + "' />"

Это будетПозволяет вам поддерживать процесс только из листа Excel - если есть новое поле, которое необходимо сопоставить, просто добавьте его на свой лист.Никаких изменений в рабочем процессе не требуется.

0 голосов
/ 15 февраля 2019

Моя первая рекомендация - использовать Workbook: Read range activity для чтения данных из Excel, потому что это быстрее, работает в фоновом режиме и не требует установки Excel в системе.

Начните свою последовательность следующим образом (обратите внимание, что свойство add headers не проверено):

image image

You do not need to use Output Data Table because this activity outputs a string containing all row items. What you want to do instead is to access the items in the data table and output each one as a string in your type into, e.g., CVDatatable.Rows(0).Item(0).ToString, like so:

image

You mention you want to read the text opCVdatatable in an iteration and write them into text fields. This is a little bit more complex, but i'll give you an example. You can use a For Each Row activity and loop through each row in CVDatatable, setting the index property if required. See below:

image image

The challenge is to get the selector correct here and make it dynamic, so that it targets a different text field per iteration. The selector for the type into activity will depend on the system you are targeting, but here is an example:

image image

And the selector for this:

image

Also, here is a working XAML файл для тестирования.

Надеюсь, это поможет.

Крис

...