2017-07-14 2 views
0

SQLデータベースへの一括インポートが可能です。各行の検証が必要です。Microsoft.Office.Interop.Excelサービスを使用しています。コードを使用しています:Excelで検証行が必要です。aps.net MVC

public ActionResult ImportDataAgens() 
{ 
    return View(); 
} 

[HttpPost] 
[ValidateAntiForgeryToken] 
public ActionResult ImportDataAgens(HttpPostedFileBase excelfileRekn) 
{ 
    if (excelfileRekn == null || excelfileRekn.ContentLength == 0) 
    { 
    ViewBag.Error = "Please Select File <br>"; 
    return View("ImportDataAgens"); 
    } 
    else 
    { 
    if (excelfileRekn.FileName.EndsWith("xls") || excelfileRekn.FileName.EndsWith("xlsx")) 
    { 
     string newFileName = DateTime.Now.ToString("yyyyMMddHHmmssfff"); 
     string filename = Path.GetFileName(excelfileRekn.FileName); 
     string DocFileNames = newFileName + "-" + filename; 
     string path = System.IO.Path.Combine(Server.MapPath("~/UploadFile/DataAgen/"), DocFileNames); 
     if (System.IO.File.Exists(path)) 
     System.IO.File.Delete(path); 
     try 
     { 
     excelfileRekn.SaveAs(path); 
     ViewData["Feedback"] = "Upload Complete"; 
     } 
     catch (Exception ex) 
     { 
     ViewData["Feedback"] = ex.Message; 
     } 

     //read data from file excel 

     Excel.Application application = new Excel.Application(); 
     Excel.Workbook workbook = application.Workbooks.Open(path); 
     Excel.Worksheet worksheet = workbook.ActiveSheet; 
     Excel.Range range = worksheet.UsedRange; 
     List<DMInformasiDataAgen> listTempRekn = new List<DMInformasiDataAgen>(); 
     for (int row = 3; row <= range.Rows.Count; row++) 
     { 
     DMInformasiDataAgen rk = new DMInformasiDataAgen(); 
     rk.NamaAgen = ((Excel.Range)range.Cells[row, 2]).Text; 
     rk.NomorIdentifikasiAgen = ((Excel.Range)range.Cells[row, 3]).Text; 
     rk.NomordanTanggalPerjanjian = ((Excel.Range)range.Cells[row, 4]).Text; 
     rk.CreateBy = valueA; 
     rk.UpdateDate = DateTime.Today; 
     listTempRekn.Add(rk); 
     db.DMInformasiDataAgen.Add(rk); 
     db.SaveChanges(); 
     ViewBag.Result = "Successfully Imported"; 
     } 
     return RedirectToAction("Index", "DataAgens"); 
    } 
    else 
    { 
     ViewBag.Error = "This file format is not supported"; 
     return View("ImportDataAgens"); 
    } 
    } 
} 

すべての行のデータを検証するにはどうすればよいですか?

+0

datarowまたはdt.rows [0] ["columnname"]値を使用してデータを検証するには、コードを使用するか、regex検証を作成します。 –

答えて

0

各タイプごとに検証機能を作成し、失敗した行をすべて収集して、instertがリストしてユーザーに情報を提供しないようにすることができます。

+0

ありがとうございました。ありがとうございました。ファイルをインポートするときに行を分けて、データベースに一括インポートする際に、行の区切りを検証する方法がわかりません。 –

関連する問題