2010-06-25 3 views
0

У меня есть сайт, на котором предприятия могут загружать товары для продажи. Затем конечные пользователи могут искать этот элемент и найти все магазины, которые его несут.Можно ли загрузить файл Excel в память?

Большинство магазинов продают более 100 вещей, и хотя у меня есть форма для вставки одного элемента, это очень глупо иметь дело только для бизнеса.

Моя идея - иметь возможность для предприятий загружать файл excel, а приложение ASP.Net извлекает информацию из столбцов и заполняет классы, а затем с помощью магии Entity Framework 4 я сохраню эту информацию в одном падении мах.

Есть ли какие-нибудь подводные камни, о которых я должен знать, когда вы это делаете? Возможно ли это? Является ли это очень налоговым процессом на моем сервере (будет ли он удалять мой сайт)?

EDIT: До сих пор кажется, что для того, чтобы я мог анализировать XML-файлы, мне нужно установить Office. Я не уверен, что Winhost.com предлагает это.

Другим решением было использование CSV-файла для получения информации. Как легко секретарь создаст файл CSV, помните, что она, вероятно, тот, кто собирается создать файл в первую очередь. Легко ли это создать для человека с ограниченными возможностями компьютера?

Разбор CSV будет тривиальным Я предполагаю, но я хочу сосредоточиться на пользовательском опыте и не проклинать людей на моем веб-сайте, чтобы они научились чему-то.

EDIT 2: Совсем забыл упомянуть, что конечно я приведу шаблон для их использования, было бы абсолютно тупой, чтобы просто предположить, что они будут следовать за сервировку стола. Поэтому не учитывайте эту проблему. Я также знаю, что мне придется проверять каждый столбец, чтобы они не записывали «lolgei» в поле «Цена» или что-то в этом роде.

ответ

2

Некоторые быстрые мысли ....

проверки входных данных будет очень важно. Поскольку это автономный процесс, вам нужно, чтобы это было заблокировано довольно жестко, чтобы пользователи не пытались загрузить что-то, чего им не должно быть.

Запуск процесса автоматизации делопроизводства, как правило, является громоздким решением, добавляет зависимость от офиса Microsoft для развертывания вашего сервера, и его лучше избегать, если это возможно, особенно если вы намерены запустить этот код в ответном сообщении.

Лучшим решением может стать предоставление конечным пользователям шаблона excel, который выводит XML-файл, который затем может быть загружен. Таким образом, его намного проще обрабатывать, а также упростить проверку и устранение любой зависимости от офиса Microsoft на вашем сервере. В Excel есть интересные функции xml. Лично я бы выбрал этот подход для отправки самой книги на сервер.

Надеюсь, что это поможет.

Наслаждайтесь!

-1

Возможно, было бы полезно создать страницу управления, чтобы сразу вводить сразу несколько элементов. Я говорю об этом, потому что, несмотря ни на что, пользователь должен будет использовать каждый элемент, даже если вы выпустите «стандартный»/пустой файл excel в качестве шаблона для ввода их данных, который вы затем импортируете.

0

Когда я это делаю, я использую CSV-файл вместо файла XLS, так как файлы CSV намного проще разбирать на стороне сервера. После того, как пользователь загрузит файл, следующим шагом будет проверка данных и отображение любых ошибок или предупреждений. Это усложняется, если пользователь может обновлять существующие записи в процессе импорта. Затем ваш код должен иметь возможность синхронизировать данные между двумя хранилищами данных, а не просто вставлять их.

+0

Я не думал о обновлении информации о продукте, загружая полный список продуктов. Я учту это, но на данный момент я просто разрешу отдельные страницы редактирования для каждого предлагаемого ими продукта. –

1

Я сделал что-то подобное. Даг прав, автоматизация офиса может быть немного сложной и на самом деле не нужна здесь. Как насчет простых csv-файлов? Их легко загрузить, они могут быть легко проанализированы и могут быть легко проверены.

Секретарь, вероятно, может быть обучен созданию Excel-листа в правильном формате. Сохранение этого листа в виде CSV-файла - простая задача (File-> Save as-> csv).

+0

Хотя все, что вы сказали, верно, я должен убедиться, что процесс создания указанного списка продуктов настолько прост, насколько это возможно для предприятий, чтобы их создавать. Помните, что это секретарь, который, вероятно, будет создавать этот файл. Знает ли она, что такое CSV? –

0

Могу ли я представить боковую мысль? Как насчет создания надстройки для листа Excel, который вы можете распространять среди своих клиентов? Он может обрабатывать всю необходимую аутентификацию и т. Д., А также при нажатии кнопки отправлять информацию на ваш сервер ASP.NET (или, еще лучше, службу WCF, которую вы можете затем опубликовать &). Конечно, в этот момент вам не придется беспокоиться о переводе формата Excel в читаемый формат .NET - все это может быть отформатировано по желанию вашего сердца от надстрочного интерфейса, будь то XML-сериализованные объекты, csv, без разницы.

Только мой $ 0,02 стоит ...

+0

Спасибо за ввод, но у меня есть ZERO опыт программирования Excel. Я просто знаю, как придать таблице границу, и это все. Я не хочу вкладывать средства в новую технологию для чего-то такого тривиального (в более широкой картине). –

-1

Я не понимаю, почему вы хотите, чтобы заполнить объекты из файла Excel. Почему бы просто не создать процедуру, позволяющую клиенту загружать файл excel, анализировать его и вставлять несколько элементов в существующую базу данных? Кажется, что у вас уже есть архитектура. Ваш желаемый подход кажется слишком сложным.

Я делал импорт, как это раньше, но будьте осторожны, что поставщик струи съедает соединения.

Help me find the leak in this excel import code

Я в конечном итоге происходит с разбора CSV вместо этого.

+0

У меня нет понятия о том, о чем вы говорите. Вы говорите о том, что я делаю то же самое, что планирую делать. В чем смысл этого ответа? –

+0

Прочитайте вопрос - вы не указали, что содержимое файла excel сначала заполняет базу данных. «извлекать информацию из столбцов и заполнять классы» – ScottE

0

Первое, о чем нужно беспокоиться, - это разнообразие презентаций, которые ваши пользователи собираются придумать. Вы должны, вероятно, дать им шаблон, но даже в этом случае пользователи беспорядочно разбираются.

НЕ используйте автоматизацию для чтения файла Excel. Он не поддерживается, и однажды он перестанет работать. Попросите пользователей загрузить файлы xlsx и использовать OpenXML SDK для извлечения данных.

1

FWIW, я был очень впечатлен SpreadsheetGear в прошлом. Это не поможет в значительной степени с проверкой, которую вам нужно будет сделать, но вы можете найти это более простым способом обработки данных.

Смежные вопросы