MVC5中利用NOPI导出EXCLE
//导出excle 设备效率public JsonResult Exporta(){var jser = new JavaScriptSerializer();string js1 = Request.Params["rows"].ToString();string js2 = Request.Params["columns"].ToString();DataTable dt1 = JsonToDataTable.JsToDataTab(js1);DataTable dt2 = JsonToDataTable.JsToDataTab(js2);//反序列化//var objList1 = jser.DeserializeObject(Request.Params["rows"]);//Object objList2 = jser.DeserializeObject(Request.Params["columns"]);//foreach (DataRow dr in dt2.Rows)//{// string value = dr["Title"].ToString();// DataColumn col = new DataColumn();// col.ColumnName = value;// col.DataType = System.Type.GetType("System.String");// dt1.Columns.Add(col);//}//创建Excel文件的对象NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook();HSSFSheet sheet = book.CreateSheet("Sheet1");//给sheet1添加第一行的头部标题HSSFRow row1 = sheet.CreateRow(0);int i = -1;foreach (DataRow dr in dt2.Rows){i++;string value = dr["title"].ToString();row1.CreateCell(i).SetCellValue(value);}if (dt1 != null){//将数据逐步写入sheet1各个行for (int j = 0; j < dt1.Rows.Count; j++){HSSFRow rowtemp = sheet.CreateRow(j + 1);rowtemp.CreateCell(0).SetCellValue(dt1.Rows[j]["WorkShopName"].ToString());rowtemp.CreateCell(1).SetCellValue(dt1.Rows[j]["OpenRate"].ToString());rowtemp.CreateCell(2).SetCellValue(dt1.Rows[j]["RunRate"].ToString());rowtemp.CreateCell(3).SetCellValue(dt1.Rows[j]["UOE2"].ToString());rowtemp.CreateCell(4).SetCellValue(dt1.Rows[j]["UOE3"].ToString());rowtemp.CreateCell(5).SetCellValue(dt1.Rows[j]["UOE4"].ToString());}}// 写入到客户端 // 写入到客户端 if (Directory.Exists(Server.MapPath("~/ExportFiles/")) == false)//如果不存在就创建file文件夹{Directory.CreateDirectory(Server.MapPath("~~/ExportFiles/"));}//判断文件的存在if (System.IO.File.Exists(Server.MapPath("~/ExportFiles/设备效率.xls"))){Response.Write("Yes");//存在文件}else{Response.Write("No");//不存在文件System.IO.File.Create(Server.MapPath("~/ExportFiles/设备效率.xls")).Close();//创建该文件}try{FileStream fs = new FileStream(Server.MapPath("~/ExportFiles/" + "设备效率.xls"), FileMode.Create);book.Write(fs);fs.Seek(0, SeekOrigin.Begin);fs.Flush();fs.Close();}catch (Exception){throw;}//return File(fs, "application/vnd.ms-excel", "1.xls");return Json(new { mes = "", state = 1 });}
posted on 2016-07-15 15:20 坐在海边看星星 阅读(...) 评论(...) 编辑 收藏