Вы должны установить границы, если можете. Вы должны попытаться предоставить шаблон для использования с ожидаемыми данными, который включает в себя тип файла (Excel, CSV и т. Д.), Имена столбцов, допустимые значения и т. Д. Вы должны разрешить используемому просматривать файл и загружать его. на вашей странице / форме.
После загрузки файла необходимо выполнить проверку и импорт. Для этого вы можете использовать ADO.NET, файловые потоки, DTS / SSIS или Office Automation (если вы используете стек Microsoft). В части проверки вы должны сообщить пользователю точно , что он сделал неправильно или что нужно изменить. Это может включать наличие на странице проверки фактических данных в сетке данных и предоставление красных меток с ошибками в точной строке / столбце. Если вы используете Office Automation, вы можете дать им точное количество ячеек, но Office PIA вызывает боль в шее.
После подтверждения вы можете импортировать информацию по своему усмотрению. Я предпочитаю положить его в промежуточную таблицу и использовать хранимый процесс для его загрузки, но это только я. Некоторые предпочитают использовать объектную модель, но это может быть очень медленным, если у вас много данных.
Если вы лично загружаете эти файлы вручную и вынуждены заходить и манипулировать ими, я бы предложил найти общность между ними и придумать стандарт, которому нужно следовать. Если у вас есть это, вы можете сделать это так, чтобы пользователь мог сделать это самостоятельно, или вы можете сделать это намного быстрее самостоятельно.
Да, это большая работа, но в корне неправильно, когда есть программа, которая работает в 95% случаев, все выигрывают.
Если это будет ситуация, которая просто не может быть автоматизирована, то вам, вероятно, просто понадобится подготовительный стол ванили и запрос на импорт. Вам придется загрузить данные в одну промежуточную таблицу, выполнить основные манипуляции, а затем загрузить их в промежуточную таблицу, которую ожидает ваш SQL.
Я сделал так много инструментов импорта и ETL, и действительно нет простого способа справиться с этим. Единственный способ - действительно придумать разумный стандарт, придерживаться его и программировать вокруг него.