前台调用:
view: <a href=‘/Admin/NurseUser/Excel‘ target=‘_blank‘>导出Excel</a>或js: window.location = "/Controller/Excel";
后台代码(控制器):
public FileResult Excel(){ //第一步:以虚拟表的形式获取要导出的数据 DataTable dt = this.Service.Excel(); //第二步:创建excel文件的对象 NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook(); //第三步:添加一个sheet页 NPOI.SS.UserModel.ISheet sheet1 = book.CreateSheet("Sheet1"); //第四步:sheet页添加栏位 NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow(0); row1.CreateCell(0).SetCellValue("标题一"); row1.CreateCell(1).SetCellValue("标题二"); //第五步:将数据写入sheet各个行 for(int i = 0;i<dt.Rows.Count;i++){ NPOI.SS.UserModel.IRow rowtemp = sheet1.CreateRow(i + 1); for (int j = 0; j < dt.Columns.Count; j++){ rowtemp.CreateCell(j - 1).SetCellValue(dt.Rows[i][j].ToString()); } } //第六步:写入客户端 System.IO.MemoryStream ms = new System.IO.MemoryStream(); book.Write(ms); ms.Seek(0, SeekOrigin.Begin); return File(ms, "application/vnd.ms-excel", "用户信息.xls"); }注意:此代码须在控制器里,在dao层 return File中的File会被当作变量处理,导致报错,其本质是一个类型。
时间: 2024-10-10 09:46:53