我正在做一个项目,此时我需要从“Excel”CSV 文件中导入数据,以逗号 (,) 分隔某些信息,我需要通过一个表单,他们可以上传 excel,并且说 excel 会自动导入到表dbo.Collaborators
我正在使用 MVC5 和 SQLServer 2014。
我的看法如下:
@model SI_OldMutual.Models.Collaborators
@{
ViewBag.Title = "UploadPlanta";
}
<h2>UploadPlanta</h2>
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<div class="form-group">
<input class="form-control" type="file" name="planta" /><br />
<input class="btn btn-default" type="submit" value="Cargar" />
</div>
}
我的控制器的一部分如下:
private SI_OldMutualContext db = new SI_OldMutualContext();
// UploadPlanta
public ActionResult UploadPlanta()
{
return View();
}
//POST UploadPlanta
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult UploadPlanta([Bind(Include = "planta")] Collaborators collaborators)
{
return View();
}
我的模型的一部分:
[Key]
public int CollaboratorID { get; set; }
[Required]
[Display(Name = "Codigo")]
public string codigo { get; set; }
[Display(Name = "Cedula")]
public string cedula { get; set; }
[Display(Name = "Nombres")]
public string nombres { get; set; }
[Display(Name = "Fecha Ingreso")]
[DataType(DataType.Date)]
[DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
public DateTime fecha_ingreso { get; set; }
[Display(Name = "Salario Basico")]
[DisplayFormat(DataFormatString = "{0:C0}", ApplyFormatInEditMode = false)]
public decimal salario_basico { get; set; }
[Display(Name = "Salario Cargo")]
[DisplayFormat(DataFormatString = "{0:C0}", ApplyFormatInEditMode = false)]
public decimal salario_cargo { get; set; }
[Display(Name = "Regimen")]
public string regimen { get; set; }
[Display(Name = "Tipo de Contrato")]
public string tipo_contrato { get; set; }
[Display(Name = "Ciudad")]
public string ciudad { get; set; }
说明:我需要通过所述表格插入以逗号分隔的CSV文件,并在自动加载所述文件中的信息时,将其导入到Collaborators
模型对应的表格中。
我一直在查看互联网组和 StackOverFlow 中的几个示例,但我找不到关于我需要什么的明确示例,任何输入都非常有用。
需要注意的是,我在 Visual Studio 2015 中使用 MVC5。
首先是在Controller中接收你上传的文件,保存在服务器上,用Linq读取并存入数据库:
考虑到在读取文件时,每个
part[X]
都将映射到一个 CSV 列,您必须根据 CSV 文件的设计调整该部分。可以分两部分工作
这是一个示例控制器
这是视图的示例
这是一个非常清晰的教程:
http://www.c-sharpcorner.com/article/upload-files-in-asp-net-mvc-5/
上传文件后,您可以使用此 TSQL 语句将其加载到表中
当然你必须根据你的文件、表格和csv结构来调整它
干杯,