Обработать все файлы Excel в заданной папке, и извлечь информацию из определенных ячеек.
Искать в файлах данные не привязываясь к адресам ячеек (структура файлов немного отличается, часть данных смещена)
Этот парсер опубликован как пример использования парсера для обработки файлов, в частности, для парсинга таблиц Excel.
В качестве основы был использован парсер для перебора всех файлов в папке, но с незначительным отличием: если при парсинге файлов других типов (текстовых / Word / PDF) нам достаточно только считать данные из файла (файл временно открывается, данные считываются, и файл сразу закрывается), то при загрузке данных из файлов Excel, обрабатываемый файл должен быть открыт всё то время, пока из него считываются данные в разные столбцы.
Подробнее об этом — в инструкции по парсингу файлов Excel
Для извлечения данных с листа используется многофункциональное действие «Поиск ячеек на листе».
Оно позволяет найти на листе нужные ячейки, ориентируясь на значения соседних ячеек (например, найти на листе ячейку с заданным текстом, отступить от неё вниз/вправо/влево/вверх на заданное количество строк/столбцов, и из этой ячейки считать значение / ссылку / примечание)
Поскольку некоторые из обрабатываемых файлов могут отличаться по структуре (присутствует первый пустой столбец), необходима дополнительная коррекция файла перед обработкой (при условии, что в первом столбце меньше 5 заполненных ячеек, надо значения ячеек первого столбца перенести во второй столбец, а первый столбец листа целиком удалить). Это тоже можно сделать парсером, — в настройках этого парсера присутствует набор действий «Коррекция файла», содержащий 5 команд:
Действие | Параметр | Значение |
---|---|---|
Поиск ячеек на листе | Адрес ячейки / диапазона для поиска | a1:a15 |
Маска поиска | ?* | |
Смещение от найденного | 0;0 | |
Действие для целевой ячейки | GetValue | |
Задаваемое значение | ||
Маска найденного значения | * | |
Заменять пустые значения на | ||
Количество элементов массива | Сохранить результат в переменную | |
Использовать новое значение | да | |
Проверка на выполнение условия | Режим проверки | больше |
Значение для сравнения | 5 | |
Действие при выполнении условия | Новое значение, и остановить | |
Параметр действия | Коррекция не требуется (первый столбец не пустой) | |
Проверять другое значение | нет | |
Другое проверяемое значение | ||
Поиск ячеек на листе | Адрес ячейки / диапазона для поиска | a:a |
Маска поиска | ?* | |
Смещение от найденного | 0;1 | |
Действие для целевой ячейки | SetValue | |
Задаваемое значение | {FoundCell.Text} {TargetCell.Text} | |
Маска найденного значения | * | |
Заменять пустые значения на | ||
Действия со столбцами | Столбцы | 1 |
Действие для выбранных столбцов | Удалить | |
Параметр действия |
Комментарии
Отправить комментарий