Простим користувачам подобається працювати з таблицями в Ексель. Логіка роботи програми зрозуміла і проста. Тому дані дуже часто представляються саме в такому вигляді. Розберемо один з варіантів імпорту в реляційну базу даних SQL Server. Хоча точно такий прийом може бути застосований і для імпорту в будь-яку іншу базу, наприклад MySQl.
Саме використовуватиметься версія EPPlus.dll 4.0.4.0, проект asp.net mvc razor, мова програмування C #.
- створимо UploadController.cs
- Додамо туди неймспейси:
- Створимо метод зі сторінкою форми завантаження
- Створимо вьюха для цього методу Index.cshtml
Зверніть увагу у форми повинен бути прописаний атрибут enctype. Без нього завантаження працювати не буде.
- Додамо HttpPost метод Index. У нього буде передано дані з форми.
- Надіслати в форму можна який завгодно файл, а не тільки в форматі xlsx. Тому додаємо найпростішу валідацію.
Імпорт буде складатися з наступних етапів:
- генерація SQL скрипта на основі даних з файлу
- виконання SQL скрипта в базі одержувача
Умовно вважаємо, що таблиця одержувач називається [TableDestination].
- Додамо допоміжний метод в контролер. Він буде використовуватися для читання даних з конкретної комірки таблиці.
- Генерація скрипта, привожу шматок коду цілком.
- виконуємо запит
- Ну і залишилося тільки повідомити про успішну операцію користувачеві. Наприклад так:
Хотілося б додати, що запропонований варіант імпорту не єдино можливий, різних бібліотек для роботи c xlsx багато. Ми працюємо з EPPlus не тільки для читання і для генерації документів і всі завдання вирішуємо цілком успішно.