/** * 参数中如果是[Bind(Include="") DataSubscriptions dataSubscriptions)的形式,含义其实是绑定某些视图中的值到模型中,并将这些值传入到控制器当中 * */ public ActionResult Create(DataSubscriptions dataSubscriptions) { /** * 要注意的是:ModelState.IsValid的真假,是和model相关的,model中对属性的要求(非空、长度等等)必须和View中传过来一致 * 如果model中定义某个属性非空,但是在View中绑定的model中压根没有这个属性的值,ModelState.IsValid一定是为假的! * */ dataSubscriptions.BillCode = "9999999999"; dataSubscriptions.BillType = "0008"; dataSubscriptions.NextSendDate = DateTime.Now; if (ModelState.IsValid) { db.DataSubscriptions.Add(dataSubscriptions); db.SaveChanges(); HttpPostedFileBase file = Request.Files["file"]; if (file != null) { string fileName = Path.Combine(Request.MapPath("~/files/tmp"), Path.GetFileName(file.FileName)); file.SaveAs(fileName); using (ExcelPackage package = new ExcelPackage(new FileInfo(fileName))) { //注意!所有的起始位置都是1!所有的结束位置都是集合的元素长度值 ExcelWorksheet sheet = package.Workbook.Worksheets[1]; int colCount = sheet.Dimension.End.Column; int rowCount = sheet.Dimension.End.Row; for (ushort i = 2; i <= rowCount; i++) { BillStaffMapping mapping = new BillStaffMapping { BillType = dataSubscriptions.BillType, BillNumber = dataSubscriptions.BillCode, StaffNumber = sheet.GetValue(i, 1).ToString(), //从外部Excel表格获取员工工号 TelPhone = sheet.GetValue(i, 3).ToString(), Email = sheet.GetValue(i, 4).ToString() }; db.BillStaffMappings.Add(mapping); db.SaveChanges(); } if (!System.IO.File.Exists(fileName)) { System.IO.File.Delete(fileName); } } } // this.UploadFile(Request["Receiver"]); return(RedirectToAction("Index")); } return(View(dataSubscriptions)); }
public ActionResult ImportExcelFile() { HttpPostedFileBase file = Request.Files["file"]; string fileName = Path.Combine(Request.MapPath("~/Tmp"), Path.GetFileName(file.FileName)); string FileType = ".xls,.xlsx";//定义上传文件的类型字符串 if (!FileType.Contains(fileName)) { ModelState.AddModelError("", "文件类型不对,只能导入xls和xlsx格式的文件"); return(RedirectToAction("Index")); } file.SaveAs(fileName); string BillTypeNumber = "2603"; var item = (from p in db.BillProperties where p.Type == "2603" select p.TypeName).FirstOrDefault(); string BillTypeName = item; /*生成单号*/ string str = Generate.GenerateBillNumber(BillTypeNumber, this.ConnectionString); /*生成单号*/ string BillNumber = str; DataTable list = new DataTable(); list = ImportExcelFile1(fileName); for (int i = 0; i < list.Rows.Count; i++)//得到excel的所有行 { BillStaffMapping mapping = new BillStaffMapping { BillType = BillTypeNumber, BillNumber = BillNumber, StaffNumber = list.Rows[i][0].ToString(), //从外部Excel表格获取员工工号 TelPhone = list.Rows[i][2].ToString(), Email = list.Rows[i][3].ToString() }; db.BillStaffMappings.Add(mapping); db.SaveChanges(); } return(RedirectToAction("Index")); }