Windows-приложение для работы с MS Office

Цена договорная • безналичный расчёт
22 января 2016, 13:50 • 7 откликов • 20 просмотров
Необходимо разработать приложение под Windows (можно 64-bit и ориентироваться на Win7/8/10) работающее в форматом файлов MS Excel 2007(xlsx).

При работе приложение может использовать NET.Framework(необходимой версии) и MS Office 2013(подразумевается что они установлены на ПК) чтобы чуть облегчить задачу ПО.

Входные данные:
Графическое приложение со следующими параметрами: выбор одного и второго исходных файлов выгрузок xlsx(примеры будут во вложении), установка процентной ставки для расчетов, получение текущей даты из ОС, выбор третьего файла со списком, указание почтового адреса отправки результата, указание каталога выгрузки результата.

Действия:
  1. Формируем новый исходный файл подставляя в него две вкладки из двух разных исходных файлов(GetTaxi и Uber), выбранных в приложении и формируя третью новую результативную вкладку.
  2. Скопированные из исходных файлов вкладки должны оставаться без изменений и быть источниками данных для новой результативной вкладки.
  3. Вкладки получают имена в соответствии с выбранными категориями в графическом интерфейсе приложения(поле выбора исходного файла выгрузки GetTaxi и выгрузки Uber).
  4. В новую вкладку ИТОГ загружаются из вкладки Uber поле "Водители" в новое поле Водители вкладки ИТОГ, поле "Доходы" - в новое поле Uber вкладки ИТОГ, складывая все результаты одного и того-же водителя(файл выглядит как лог и не подводит промежуточные итоги, поэтому один и тот же водитель дублируется столько раз, сколько совершил поездок, нужно оставить одну запись по нему в виде итога суммы всех поездок).
  5. В новую вкладку ИТОГ загружаются из вкладки GetTaxi поле "Водитель" в новое поле Водители вкладки ИТОГ, новое поле GetTaxi вкладки ИТОГ вычисляем математической функцией: "Тариф для водителя всего" - Процент по GetTaxi(указывается в приложении) от поля "Тариф для водителя всего" - "Получено от клиента" (данная формула есть в таблице в более удобном виде). Складывая все результаты одного и того-же водителя(файл выглядит как лог и не подводит промежуточные итоги, поэтому один и тот же водитель дублируется столько раз, сколько совершил поездок, нужно оставить одну запись по нему в виде итога суммы всех поездок).
  6. Создаем новое поле ИТОГ вкладки ИТОГ, где отражена сумма полей GetTaxi и Uber по каждому водителю.
  7. Из файла со списком водителей(выбранном в приложении) берем все заполненные столбцы с начала до столбца с численным значение(водитель может работать под разными учетными записями, оформленными в виде текстового ФИО в файле списка в нескольких колонках. Если водитель работает под одной учетной записью, то заполнена только первая колонка его ФИО, если две учетные записи - 2 колонки ФИО и т.д. Соответственно, количество таких колонок в файле равно длине максимального количества используемых учетных записей каким-либо водителем. Следующая за этими колонками колонка - номер телефона, поэтому имеет смысл забрать просто все непустые значения с первой колонки до колонки с численным значением).
  8. Актуализируем список водителей(видимо эту операцию стоит выполнить все же первой). Осуществляем текстовый поиск по части слова без учета регистра(зачастую фамилии, но лучше сочетание фамилии и имени, если они указаны(иногда указана только фамилия, но тогда подразумевается что в файле нет однофамильца), в обоих исходных файлах выгрузок(GetTaxi и Uber) из файла "Водители"(данный файл является исходным, если водителя из этого файла нет в списках GetTaxi и Uber, то его следует добавить в коней вкладки ИТОГ с нулевыми значениями полей "GetTaxi", "Uber" и "ИТОГ" соответственно. Если происходит обратное - в списках GetTaxi или Uber есть водитель, которого нет в списке Водители, то он удаляется(не вносится) во вкладку ИТОГ. Есть водители, которые работают только по UBER или GetTaxi, тогда по ним вносятся данные только по одной системе, во второй ставится 0).
  9. Убрать множественные учетные записи. В пункте 8 описано что некоторые водители могут работать под несколькими учетными записями, их результат должен быть суммирован в одну, которая будет найдена в файле первой. Например, это один и тот же водитель Иванов, Петров, Сидоров, результаты его поездок во вкладке ИТОГ должны быть записаны только как Иванов если по этой учетной записи есть данные. Если по учетной записи Иванов нет данных, но есть по Петров и Сидоров, то его данные должны быть записаны под Петров, есть данные есть только по Сидоров - соответственно только Сидоров.
  10. Сформированный итоговый файл называется именем "Отчет_текущая_дата_из_системы.xlsx", сохранен в указанную в приложении папку и прикреплен к почтовому сообщению(вызов MS Outlook с темой "Отчет за текущая_дата_из системы" для адреса, указанного в приложении + вложенный файл).
В приложении к заданию имеются файлы с комментариями и инструкция для оператора ввода данных, как он осуществляет аналогичные действия на данный момент.

Исключением является то, что на данный момент в отчете ИТОГ подведен во вкладке Убер.

Так же прошу учесть человеческий фактор: пробелы до текста, пробел после и прочие символы, которые установлены случайно их следует отсечь.


Файлы