Excel dosyasındaki Uygulama Adı, Soru ve Cevap gibi verileri ASP.NET Core MVC ile veritabanına aktarmak için aşağıdaki adımları takip edebilirsiniz. Bu işlem için EPPlus veya NPOI gibi kütüphaneleri kullanarak Excel dosyasını okuyup verileri alabiliriz. Burada EPPlus kütüphanesini kullanacağız, çünkü basit ve kullanımı kolaydır.
EPPlus Kütüphanesini Projeye Dahil Etme
İlk olarak, EPPlus kütüphanesini projenize dahil etmeniz gerekiyor. Bunun için NuGet Package Manager kullanabilirsiniz.
NuGet ile EPPlus yükleme:
Tools > NuGet Package Manager > Manage NuGet Packages for Solution menüsüne gidin.
Browse sekmesine gelin ve EPPlus araması yapın.
EPPlus paketini seçip yükleyin.
Alternatif olarak, Package Manager Console üzerinden şu komutu kullanabilirsiniz:
Install-Package EPPlus
2. Excel Dosyasını Okuma ve Veritabanına Verileri Kaydetme
Excel dosyasındaki verileri okumak ve veritabanına kaydetmek için aşağıdaki adımları izleyebiliriz.
3. Modelinizi Oluşturun
Öncelikle, Excel'den alacağınız verileri kaydedeceğiniz modelinizi oluşturmanız gerekir. Örneğin, Uygulama modeli şöyle olabilir:
public class Uygulama
{
public int Id { get; set; }
public string UygulamaAdi { get; set; }
public string UygulamaSorusu { get; set; }
public string UygulamaCevabi { get; set; }
}
Veritabanına bu model üzerinden veri kaydedilecek.
4. Controller’da Excel Dosyasını Okuma ve Veritabanına Kaydetme
Excel dosyasını okumak için EPPlus'ı kullanarak verileri alıp, ardından DbContext kullanarak veritabanına kaydedebilirsiniz.
using EPPlus;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using SchoolManagement.Data;
using SchoolManagement.Models;
using System.IO;
public class UygulamaController : Controller
{
private readonly ApplicationDbContext _context;
public UygulamaController(ApplicationDbContext context)
{
_context = context;
}
[HttpPost]
public async Task<IActionResult> UploadExcel(IFormFile file)
{
if (file != null && file.Length > 0)
{
using (var stream = new MemoryStream())
{
await file.CopyToAsync(stream);
// EPPlus ile Excel dosyasını okuyalım
using (var package = new ExcelPackage(stream))
{
var worksheet = package.Workbook.Worksheets[0]; // İlk sayfayı alıyoruz
int rowCount = worksheet.Dimension.Rows;
for (int row = 2; row <= rowCount; row++) // Başlık satırını atlıyoruz (row = 2)
{
var uygulama = new Uygulama
{
UygulamaAdi = worksheet.Cells[row, 1].Text, // 1. sütun -> Uygulama Adı
UygulamaSorusu = worksheet.Cells[row, 2].Text, // 2. sütun -> Soru
UygulamaCevabi = worksheet.Cells[row, 3].Text // 3. sütun -> Cevap
};
_context.Uygulamalar.Add(uygulama); // Veritabanına ekliyoruz
}
await _context.SaveChangesAsync(); // Veritabanına kaydediyoruz
}
}
return RedirectToAction("Index"); // Başka bir aksiyona yönlendirebilirsiniz
}
return View();
}
}
5. View’da Excel Dosyasını Yüklemek İçin Form
Excel dosyasını yüklemek için bir form eklemeniz gerekir. Bunun için aşağıdaki gibi bir view oluşturabilirsiniz:
@{
ViewData["Title"] = "Excel Yükle";
}
<h1>@ViewData["Title"]</h1>
<form asp-action="UploadExcel" method="post" enctype="multipart/form-data">
<div class="form-group">
<label for="file">Excel Dosyası Yükleyin</label>
<input type="file" name="file" class="form-control" required />
</div>
<button type="submit" class="btn btn-primary">Yükle</button>
</form>
6. Sonuç
Yukarıdaki adımları takip ederek, Excel dosyasındaki Uygulama Adı, Soru ve Cevap verilerini ASP.NET Core MVC uygulamanıza aktarabilirsiniz. Bu işlemi, Excel dosyasını yükledikten sonra Controller içerisinde EPPlus kütüphanesini kullanarak verileri okuyup veritabanına kaydedebilirsiniz.