示例#1
0
        /// <summary>
        /// 导入试题
        /// </summary>
        /// <returns></returns>
        public string Improt()
        {
            var    file = Request.Files["files"];
            string path = Server.MapPath("/QuestionImport/");

            file.SaveAs(path + file.FileName);

            DataTable dt = new DataTable();
            IWorkbook workbook;
            string    xls = Path.GetExtension(path + file.FileName);

            if (xls == ".xlsx")
            {
                workbook = new XSSFWorkbook(file.InputStream);
            }
            else
            {
                workbook = new HSSFWorkbook(file.InputStream);
            }
            if (workbook == null)
            {
                return("");
            }
            ISheet sheet  = workbook.GetSheetAt(0);
            IRow   header = sheet.GetRow(sheet.FirstRowNum);

            for (int i = 0; i < header.LastCellNum; i++)
            {
                DataColumn col = new DataColumn(header.GetCell(i).ToString());
                dt.Columns.Add(col);
            }
            for (int i = (sheet.FirstRowNum + 1); i <= sheet.LastRowNum; i++)
            {
                IRow    row = sheet.GetRow(i);
                DataRow dr  = dt.NewRow();
                for (int j = header.FirstCellNum; j < header.LastCellNum; j++)
                {
                    if (row.GetCell(j) != null)
                    {
                        dr[j] = row.GetCell(j).ToString();
                    }
                    else
                    {
                        dr[j] = "";
                    }
                }
                dt.Rows.Add(dr);
            }
            string json = Newtonsoft.Json.JsonConvert.SerializeObject(dt);
            List <BackQuestionBank> list = Newtonsoft.Json.JsonConvert.DeserializeObject <List <BackQuestionBank> >(json);

            foreach (var item in list)
            {
                item.UnitId = Convert.ToInt32(Request["UnitId"]);
            }
            int        succ  = question.Import(list);
            int        lose  = list.Count - succ;
            List <int> count = new List <int>()
            {
                succ, lose
            };
            Users us = (Users)Session["User"];

            if (succ > 0)
            {
                logs.Add(us.ID, "导入试题", 1);
            }
            else
            {
                logs.Add(us.ID, "导入试题", 0);
            }
            return(Newtonsoft.Json.JsonConvert.SerializeObject(count));
        }