Сравнение двух Excel-таблиц с помощью бота🤖

Сравнение двух Excel-таблиц с помощью бота🤖

Mark

Чтобы работать над этим примером, Вам нужно установить UiPath.Excel.Activities в меню Activities > Manage Packages (Ctrl+P)

Кейс

Есть две таблицы со столбцом «Имя». Оба файла содержат имена «Иван» и «Сергей». В первой таблице есть уникальные имена: «Антон», «Алексей» и «Дмитрий». Вторая таблица содержит уникальное имя «Фёдор». Нам нужно:

  • сравнить эти две таблицы;
  • определить повторяющиеся имена и записать их отдельный файл;
  • определить уникальные имена и записать их в отдельный файл.

Итак, поехали:

  1. Создайте последовательность действий;
  2. Добавьте оператора «Excel Application Scope»;
  3. В окне «Properties» в поле «WorkbookPath» выберите первую таблицу;
  4. Добавьте оператора «Read Range» в «Excel Application Scope»;
  5. В окне «Properties» в поле «Range» прописываем «””», в поле «SheetName» прописываем имя листа «Sheet1», в поле «DataTable» прописываем «dtFirst», нажимаем правой кнопкой мыши и выбираем «Creat Variable». Выбираем тип переменной «DataTable»;
  6. Добавьте ниже ещё одного оператора «Excel Application Scope»;
  7. В окне «Properties» в поле «WorkbookPath» выберите вторую таблицу;
  8. Добавьте оператора «Read Range» в «Excel Application Scope»;
  9. В окне «Properties» в поле «Range» прописываем «””», в поле «SheetName» прописываем имя листа «Sheet1», в поле «DataTable» прописываем «dtSecond», нажимаем правой кнопкой мыши и выбираем «Creat Variable». Выбираем тип переменной «DataTable».

Когда у нас «прочитаны» две таблицы, сделаем следующее:

  1. Добавьте оператора «Build Data Table»;
  2. Нажмите на кнопку «DataTable», создайте таблицу с заголовком «Имя» с типом «String» и нажмите «OK»;
  3. В окне «Properties» в поле «DataTable» прописываем «dtMain_dif», нажимаем правой кнопкой мыши и выбираем «Creat Variable». Выбираем тип переменной «DataTable». Тем самым, мы создали таблицу-донора, которая будет собирать уникальные имена;
  4. Добавьте ещё одного оператора «Build Data Table»;
  5. Нажмите на кнопку «DataTable», создайте таблицу с заголовком «Имя» с типом «String» и нажмите «OK»;
  6. В окне «Properties» в поле «DataTable» прописываем «dtMain_pivot», нажимаем правой кнопкой мыши и выбираем «Creat Variable». Выбираем тип переменной «DataTable». Тем самым, мы создали таблицу-донора, которая будет собирать одинаковые имена;

Теперь начнём соотносить строчки в этих таблицах:

  1. Добавьте оператора «For Each Row» и пропишите следующие переменные в поля: Foreach row in dtFirst;
  2. Добавьте оператора «Add data row» в «For Each Row»;
  3. В окне «Properties», в поле «ArrayRow» пропишите: {row.Item(0).toString}; в поле «DataTable» пропишите: dtMain_dif. Тем самым мы переносим информацию из Excel-таблицы в таблицу-донор;
  4. Добавьте ещё одного оператора «For Each Row» и пропишите следующие переменные в поля: Foreach row1 in dtSecond;
  5. Добавьте оператора «Assign» и пропишите в него новую переменную типа «Boolean» blI и прировняйте ее к «False»;
  6. Добавьте ещё одного оператора «For Each Row», поместите его в тело предыдущего «For Each Row», прямо под «Assign», и пропишите следующие переменные поля: Foreach row2 in dtMain_dif;
  7. Добавьте оператора «If» и в поле «Condition» пропилите условие: row1.Item(0).toString=row2.Item(0).toString. Тем самым, мы прописываем условие, если ячейка из Excel-таблицы равна ячейке таблицы-донора, то...;
  8. Добавьте в «Then» последнего «For Each Row» оператора «Assign» и приравняйте его к «True»;
  9. Добавьте в «Then» оператора «Add Data Row»;
  10. В окне «Properties», в поле «ArrayRow» пропишите: {row1.Item(o).toString}; в поле «DataTable» пропишите: dtMain_pivot. Тем самым мы переносим информацию об уникальных именах из Excel-таблицы во вторую таблицу-донор;
  11. Добавьте в «Then» оператора «Remove Data Row»;
  12. В окне «Properties», в поле «DataTable» пропишите dtMain_dif, а в поле «Row» пропишите row2. Тем самым, мы удаляем одинаковые номера из таблицы-донора.

Теперь вернёмся во второй «For Each Row»:

  1. Добавьте оператора «If» и в поле «Condition» пропилите условие: blI=false;
  2. Добавьте в «Then» оператора «Add Data Row»;
  3. В окне «Properties», в поле «ArrayRow» пропишите: {row1.Item(o).toString}; в поле «DataTable» пропишите: dtMain_dif;
  4. Вернувшись в главную последовательность действий, добавьте оператора «Excel Application Scope»;
  5. В окне «Properties» в поле «WorkbookPath» выберите таблицу, содержащую разные имена;
  6. Добавьте оператора «Write Range» в «Excel Application Scope»;
  7. В окне «Properties» в поле «DataTable» пропишите dtMain_dif;
  8. Ниже добавьте ещё одного оператора «Excel Application Scope»;
  9. В окне «Properties» в поле «WorkbookPath» выберите таблицу, содержащую одинаковые имена;
  10. Добавьте оператора «Write Range» в «Excel Application Scope»;
  11. В окне «Properties» в поле «DataTable» пропишите dtMain_pivot;
  12. Нажмите F7, бот🤖 начал свою работу.

Источник:

Vecteezy.com

Report Page