C#后台导出Excel文件

必须为继承Controller的类:

Layui接口返回字符串数据:res

JObject jr = (JObject)JsonConvert.DeserializeObject(res);

JArray data = (JArray)JsonConvert.DeserializeObject(jr["data"].ToString());           

NPOI.SS.UserModel.IWorkbook workbook = new NPOI.XSSF.UserModel.XSSFWorkbook();//表
            NPOI.SS.UserModel.ISheet sheet = workbook.CreateSheet("导出文件名");//工作簿
            NPOI.SS.UserModel.IRow row = sheet.CreateRow(0);//表头行
            string[] cellName1 = { "列1", "列2","列3", "列4"};//定义表头
            //写表头
            for (int i = 0; i < cellName1.Length; i++)
            {
                row.CreateCell(i).SetCellValue(cellName1[i]);
            }

//写内容
            if (data.Count >0)
            {
                for(int i = 0; i < data.Count; i++)
                {
                    row = sheet.CreateRow(i + 1);  //创建行,序号若为0则会覆盖已写好的表头行
                    row.CreateCell(0).SetCellValue(data[i]["columns_a"].ToString());
                    row.CreateCell(1).SetCellValue(data[i]["columns_b"].ToString());
                    row.CreateCell(2).SetCellValue(data[i]["columns_c"].ToString());
                    row.CreateCell(3).SetCellValue(data[i]["columns_d"].ToString());


                }

            }
            using (MemoryStream ms = new MemoryStream())
            {
                workbook.Write(ms);
                var buffer = ms.GetBuffer();
                ms.Close();
                return File(buffer, "application/ms-excel", "导出文件名.xlsx");
            }

posted @ 2020-08-13 08:37  棂信  阅读(468)  评论(0)    收藏  举报