Необходимо написать консольное приложение на C#, которое принимает на вход два параметра:
- путь до исходного файла Excel
- путь до папки, куда должен лечь результат (папку нужно будет создать, т.к. её при запуске не будет)
В результате работы утилиты в результирующей папке должны быть созданы CSV файлы:
1.csv первый лист
2.csv второй лист
и т.д. по всем листам. Число листов в файлах разное.
И в самом конце создается пустой файл ok.csv
Если не удалось сконвертировать, то в выходной папке создается файл bad.txt с описанием ошибки.
Т.е. утилита должна вести себя практически так, как если бы пользователь открыл файл в Excel и выбрал "Сохранить как" указав формат CSV.
НО!!!! Есть нюансы:
- исходные файлы могут быть размером около 100 мегабайт. Скрипт должен работать достаточно быстро и быть не более чем в два раза медленней ручного сохранения из Excel. Т.е. если сам Excel сохраняет в CSV 30 секунд, то ваша утилита должна справиться быстрее чем за минуту
- на выходе числа должы быть ВСЕГДА в одном формате!
Например, введите число 1200 в Excel и поиграйтесь с форматом ячейки. Укажите там разделитель тысяч. И сохраните в CSV. Вы увидите в сохраненном файле что-то вроде 1.200 Вот такого в вашей утилите быть не должно. ВСЕ числа должны сохраняться БЕЗ разделителей тысяч, а дробная часть от целой всегда должны отделяться одним и тем же знаком (будет это точка или запятая это непринципиально)
- на выходе всегда одна и та же кодировка независимо от того, в какой кодировке Excel (да да, бывает разная кодировка содержимого)
- Бывают "битые" файлы. Т.е. открываешь его Excel'ем, а он выводит диалог "Файл поврежден. Все равно открыть?". Такие файлы не должны приводить к "зависанию" утилиты.
- бывают файлы, которые задают лишние вопросы. Например, "Файл защищен от изменений. Открыть только на чтение?" Это не должно приводить к зависанию утилиты.
Т.е. на выходе либо ok.txt либо bad.txt с текстом проблемы. НИКАКИХ лишних вопросов пользователю и зависаний.
По результату проекта от вас нужны будут исходники.
С вас срок и стоимость работы.
Опубликован 02.04.2015 в 13:18
Заказ находится в архиве