Сбор данных с нескольких листов

Программа обработки прайсов позволяет настроить сбор данных с нескольких листов обрабатываемого файла.

В зависимости от структуры данных на листах, тут есть 2 варианта настройки:

 

1. Все (или несколько) листов одинаковы по структуре (расположению данных) — отличие только в имени листа

В этом случае, мы можем настроить ОДИН обработчик листа для всех этих листов, а в качестве имени листа указать маску, — например, маску * (чтобы обработались все листы в файле) или *ЧастьИмениЛиста* (чтобы обработались только те листы, в имени которых присутствует текст ЧастьИмениЛиста)

Предположим, что прайс-лист состоит из 4 листов:

  • Шины легковые летние
  • Шины легковые зимние
  • Шины грузовые
  • Диски

Причём, два листа с легковыми шинами имеют одинаковую структуру, лист шины грузовые немного отличается по порядку столбцов (для него нужен отдельный обработчик листа), а лист с именем диски нам вообще обрабатывать не нужно.

Тогда для первых 2 листов мы сделаем один общий обработчик листа, и зададим маску имени листа Шины легковые *

 

2. Листы отличаются по структуре (разный порядок столбцов) — под каждый лист свои настройки

Вернёмся к вышеописанному примеру, где для листа Шины грузовые нам нужно задать другие настройки обработки.
Для этого, щелкнем на ссылке для переключения в режим сбора данных с нескольких листов.
Программа отобразит список обработчиков листов этого прайса, где пока есть только один обрабочик:

Для начала, переименуем имеющийся обработчик листа в «Шины легковые», нажав кнопку Переименовать, и введя понятное название для обработчика листа:

 

Теперь, переключимся в файле Excel на другой лист (Шины грузовые), и нажмём кнопку Добавить.
В списке появится новый обработчик с именем типа SheetConfig2.
Переименуем его в «Грузовые», и включим режим поиска листа «по названию» (при этом автоматически подхватится название текущего листа, его можно потом изменить при необходимости):


Теперь в обработчике прайс-листа настроена обработка всех 3 нужных нам листов (создано 2 обработчика листа, — первый обработает 2 листа с легковыми шинами, а второй обработает только лист с грузовыми).
Осталось только задать настройки полей для каждого из этих обработчиков листов (настроили обработчик легковых шин, переключились на обработчик грузовых, настроили и его тоже)

 

Иногда бывает, что настроек в обработчике много, а листы отличаются незначительно (например, всё отличие только в номере столбца с отстатками товара).
Тогда правильнее будет поступить так:

  • настраиваем полностью обработчик для одного листа (прописываем настройки всех полей), не забываем задать имя листа
  • переключаемся в режим сбора данных из нескольких листов, переименовываем текущий обработчик листа
  • переключаемся на следующий лист (под который еще не настраивали, где почти всё также надо настроить)
  • нажимаем кнопку Клонировать, создавая таким образом компию обработчика листа
  • переименовываем добавленный обработчик (заодно проверив имя листа, - оно подставится автоматически при клонировании)
  • меняем настройки добавленного обработчика листа (например, изменяем номер столбца с отстатками товара)

Таким образом, мы можем быстро настроить обработку прайс-листа, состоящего из множества листов, которые отличаются лишь некоторыми столбцами.

PS: в некоторых случаях (например, для прайсов в несколько колонок) требуется аналогичным образом создать несколько обработчиков одного и того же листа

Комментарии

Доброго дня!
Можно ли добавить функцию выбора имени листа для обработчика по regexp выражению или хотя бы через | (или)?