Создание программы на C# для объединения похожих Excel-файлов в один
Как не тратить драгоценное время на объединение Excel-файлов одинакового формата в один файл? Расскажем в статье…
Часто аналитикам в работе необходимо объединять Excel-файлы одинакового формата в один файл. Для этого приходится открывать каждый файл, копировать из него информацию и вставлять в сводный файл. Эта работа занимает порой от 5 до 30 минут, а иногда и больше. Чтобы не тратить драгоценное в наши дни время на данное рутинное занятие, можно создать программу, которая будет делать это за вас.
Рассмотрим пример несложной программы, написанной на языке программирования C#. Ее функционал следующий:
— объединять несколько одинаковых Excel-файлов в один. В каждом файле будем считывать только первый лист. Все файлы могут быть расположены в одной папке (1)или во вложенных папках (2):
— В файлах первая строка может содержать названия столбцов (3) или названия столбцов могут отсутствовать (4).
— Программа может объединять не все столбцы, а определенное количество, считая с первого. Например, в файлах может быть 20 столбцов, но нужно объединить только первые 10.
Для создания программы используется Visual Studio.
На форме (5) нужно создать следующие элементы:
текстовое поле (TextBox) для отображения выбранной директории, где размещены Excel-файлы, которые необходимо обработать.
текстовое поле с маской (MaskedTextBox) для указания количества столбцов, считая с 1. Выставляем свойство Mask равным Numeric.
Теперь нужно создать события нажатия (Click) на кнопки Button1 и Button2.
Кнопка Button1 «Выбрать директорию» будет открывать диалоговое окно для указания директории, где расположены все Excel-файлы, которые нужно объединить.
Код:
Кнопка Button2 «Запуск» проверяет, что выбрана директория и указано количество столбцов и запускает функцию, которая объединяет файлы.
Теперь нужно создать функцию, которая объединяет все файлы Excel в один:
Это был пример самой простой программы, которая позволит быстро объединить одинаковые файлы. Конечно, ее можно еще дорабатывать и сделать более универсальной. Например, чтобы она объединяла файлы, в которых: названия столбцов занимают несколько строк, указывать перечень столбцов для обработки и т.д.
Такие несложные программы высвобождают много времени, которое можно потратить на более интересное и важное занятие.
Почему вы не использовали PowerQuery, который "из коробки" есть в Excel?
Вы правы! PowerQuery - очень удобный инструмент. Переводим постепенно на него решение многих задач!
Сколько трудочасов потратили на эту задачу интересно)) разрабам совсем скучно у вас)
Задача по объединению файлов ставится довольно часто, поэтому решили автоматизировать её таким способом.