C# MVC .Net NPOI实现excel导出功能
2017-04-25 16:33
603 查看
前台View通过JS调用后台Controller的方法使用NPOI组件实现excel导出功能。(利用AJAX调用时,前台页面无法响应excel的下载浏览窗口。)
将excel模板放到应用程序根目录
引用:
using System.Collections.Generic;
using System.Data;
using TecoCity.BaseInfo.Models.Check;
using NPOI.HSSF.UserModel;
using System.IO;
using System.Web;
实现代码:
{
System.Web.HttpContext.Current.Response.Charset = "GB2312";
System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
sFileName = System.Web.HttpUtility.UrlEncode(sFileName, System.Text.Encoding.UTF8);
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + sFileName);
// 指定返回的是一个不能被客户端读取的流,必须被下载
System.Web.HttpContext.Current.Response.ContentType = "application/ms-Excel";
// 把文件流发送到客户端
workbook.Write(System.Web.HttpContext.Current.Response.OutputStream);
// 停止页面的执行
4000
System.Web.HttpContext.Current.Response.End();
}
1,FileStream file = new FileStream(strModelFile, FileMode.Open, FileAccess.Read);使用制定的路径,创建模式和读写权限初始化FileStream类的新实例
2,HSSFSheet sheet = (HSSFSheet)workbook.GetSheet("CheckDetail"); GetSheet()方法中参数要给excel模板中sheet页的名字
3,workbookd.write()最后的写操作很重要,相当于对excel进行保存操作
将excel模板放到应用程序根目录
引用:
using System.Collections.Generic;
using System.Data;
using TecoCity.BaseInfo.Models.Check;
using NPOI.HSSF.UserModel;
using System.IO;
using System.Web;
实现代码:
public static void Export_ProjectCheckDetail(int CheckModelID, List<ProjectCheckDetail> modellist, HttpRequestBase Request) { string strModelFile = ""; strModelFile = Request.PhysicalApplicationPath + "ProjectCheckDetail.xls"; HSSFWorkbook workbook = null; FileStream file = new FileStream(strModelFile, FileMode.Open, FileAccess.Read); workbook = new HSSFWorkbook(file); HSSFSheet sheet = (HSSFSheet)workbook.GetSheet("CheckDetail"); if (sheet == null) { return; } //设置详细信息 ProjectCheck CheckModel = GetCheck(CheckModelID); decimal dAllRow = 0; if (CheckModel != null) { //1行基本信息设置 sheet.GetRow(1).GetCell(2).SetCellValue(GetProjectName(CheckModel.ProjectID)); sheet.GetRow(1).GetCell(4).SetCellValue(sheet.GetRow(2).GetCell(4).ToString() + CheckModel.Manager_JL + "(" + CheckModel.Manager_Tel + ")"); sheet.GetRow(1).GetCell(6).SetCellValue(GFun.SafeToDateTime(CheckModel.CheckDate).ToString("yyyy年MM月dd日")); for (int i = 0; i < modellist.Count; i++) { sheet.GetRow(i + 3).GetCell(0).SetCellValue(modellist[i].CheckProject.Replace("\\r", "\n")); sheet.GetRow(i + 3).GetCell(1).SetCellValue(modellist[i].CheckXH.ToString()); sheet.GetRow(i + 3).GetCell(2).SetCellValue(modellist[i].CheckContent.Replace("\\r", "\n")); sheet.GetRow(i + 3).GetCell(3).SetCellValue(modellist[i].CheckFZ.ToString()); sheet.GetRow(i + 3).GetCell(4).SetCellValue(modellist[i].CheckTemplate.Replace("\\r", "\n")); sheet.GetRow(i + 3).GetCell(5).SetCellValue(modellist[i].CheckScore.ToString()); sheet.GetRow(i + 3).GetCell(6).SetCellValue(modellist[i].Remark); dAllRow += GFun.SafeToDecimal(modellist[i].CheckScore); } sheet.GetRow(modellist.Count + 3).GetCell(1).SetCellValue(dAllRow.ToString());//得分 } SetExportFileName("制度考核考评表.xls", workbook); }public static void SetExportFileName(string sFileName, HSSFWorkbook workbook)
{
System.Web.HttpContext.Current.Response.Charset = "GB2312";
System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;
sFileName = System.Web.HttpUtility.UrlEncode(sFileName, System.Text.Encoding.UTF8);
// 添加头信息,为"文件下载/另存为"对话框指定默认文件名
System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + sFileName);
// 指定返回的是一个不能被客户端读取的流,必须被下载
System.Web.HttpContext.Current.Response.ContentType = "application/ms-Excel";
// 把文件流发送到客户端
workbook.Write(System.Web.HttpContext.Current.Response.OutputStream);
// 停止页面的执行
4000
System.Web.HttpContext.Current.Response.End();
}
1,FileStream file = new FileStream(strModelFile, FileMode.Open, FileAccess.Read);使用制定的路径,创建模式和读写权限初始化FileStream类的新实例
2,HSSFSheet sheet = (HSSFSheet)workbook.GetSheet("CheckDetail"); GetSheet()方法中参数要给excel模板中sheet页的名字
3,workbookd.write()最后的写操作很重要,相当于对excel进行保存操作
相关文章推荐
- asp.net mvc导出excel文件先保存到服务器某个目录,然后再导出到客户端供客户下载功能的实现
- asp.net 使用NPOI实现导出Excel功能
- (转)NPOI导出Excel表功能实现(多个工作簿)
- (转)NPOI导出Excel表功能实现(多个工作簿)
- MVC下用C#实现Excel导出
- .net mvc 利用NPOI导入导出excel
- c# .Net :Excel NPOI导入导出操作教程之List集合的数据写到一个Excel文件并导出
- C# WinForm 实现增删改查等功能(Access版) 系列之八-导出数据到Excel
- c#.net 使用NPOI导入导出标准Excel (asp.net winform csharp)
- npoi导出excel_asp.net MVC
- SpringMVC+POI 实现Excel按模板方式简单导出功能
- NPOI导出Excel表功能实现(多个工作簿)(备用)
- C# 操作EXCEL 类 可以实现导入导出功能 折腾了好长时间 现在两种方法显示出来
- asp.net Mvc Npoi 导出导入 excel
- ASP.NET实现增删改查等功能(Access版)系统之六-导出数据到EXCEL
- NPOI导出Excel表功能实现(多个工作簿)
- asp.net导出excel-一行代码实现excel、xml、pdf、word、html、csv等7种格式文件导出功能而且美观-SNF快速开发平台
- c#.Net:Excel导入/导出之NPOI 2.0简介
- NPOI导出Excel表功能实现(多个工作簿)
- EXTJS学习系列提高篇:第二篇(转载)作者殷良胜,结合EXT2.2+C#.net实现将数据导入Excel的功能