/**
         * 参数中如果是[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));
        }
Exemple #2
0
        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"));
        }