坐在海边看星星

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
//导出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  坐在海边看星星  阅读(189)  评论(0编辑  收藏  举报