NPOI保存到服务器和导出到客户端
保存到服务器
<a class="easyui-linkbutton" href="javascript:void(0);" onclick="downloadexcel();">保存到服务器</a> function downloadexcel() { $.ajax({ //提交数据的类型 POST GET type: "POST", //提交的网址 url: "/Signup/GetDownloadEXCEL", //成功返回之后调用的函数 success: function (data) { if (data == true) { //alert("保存成功!"); } else { //alert("保存失败!"); } }, //调用执行后调用的函数 complete: function (XMLHttpRequest, textStatus) { //alert(XMLHttpRequest.responseText); //alert(textStatus); }, //调用出错执行的函数 error: function () { //请求出错处理 } }); }
//说明:HSSFWorkbook 用于创建 .xls // XSSFWorkbook 用于创建 .xlsx //1.创建EXCEL中的Workbook IWorkbook myHSSFworkbook = new HSSFWorkbook(); IWorkbook myXSSFworkbook = new XSSFWorkbook(); //2.创建Workbook中的Sheet ISheet mysheetHSSF = myHSSFworkbook.CreateSheet("sheet1"); ISheet mysheetXSSF = myXSSFworkbook.CreateSheet("sheet1"); //3.创建Sheet中的Row IRow rowHSSF = mysheetHSSF.CreateRow(0); //SetCellValue有5个重载方法 bool、DateTime、double、string、IRichTextString(未演示) rowHSSF.CreateCell(0).SetCellValue(true); rowHSSF.CreateCell(1).SetCellValue(System.DateTime.Now); rowHSSF.CreateCell(2).SetCellValue(9.32); rowHSSF.CreateCell(3).SetCellValue("Hello World!"); //4.创建Row中的Cell并赋值 IRow rowXSSF = mysheetXSSF.CreateRow(0); rowXSSF.CreateCell(0).SetCellValue(false); rowXSSF.CreateCell(1).SetCellValue(System.DateTime.Now); rowXSSF.CreateCell(2).SetCellValue(9.32); rowXSSF.CreateCell(3).SetCellValue("Hello World!"); //5.保存 FileStream fileHSSF = new FileStream(@"E:\myHSSFworkbook.xls", FileMode.Create); myHSSFworkbook.Write(fileHSSF); fileHSSF.Close(); FileStream fileXSSF = new FileStream(@"E:\myXSSFworkbook.xlsx", FileMode.Create); myXSSFworkbook.Write(fileXSSF); fileXSSF.Close();
导出到客户端: <a class="easyui-linkbutton" href='/Signup/GetDownloadEXCEL' target="_self">导出</a>
public FileResult GetDownloadEXCEL() { //获取list数据 ExcelClass ec = new ExcelClass(); ec.Id = "1"; ec.Title = "2"; ec.SalePrice = "3"; ec.Summary = "4"; ec.VipPrice = "5"; List<ExcelClass> list = new List<ExcelClass>(); list.Add(ec); //创建Excel文件的对象 NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook(); //添加一个sheet NPOI.SS.UserModel.ISheet sheet1 = book.CreateSheet("Sheet1"); //给sheet1添加第一行的头部标题 NPOI.SS.UserModel.IRow row1 = sheet1.CreateRow(0); row1.CreateCell(0).SetCellValue("ID"); row1.CreateCell(1).SetCellValue("用户姓名"); row1.CreateCell(2).SetCellValue("电话"); row1.CreateCell(3).SetCellValue("注册时间"); row1.CreateCell(4).SetCellValue("邀请人ID"); row1.CreateCell(5).SetCellValue("邀请人名称"); row1.CreateCell(6).SetCellValue("邀请人电话"); row1.CreateCell(7).SetCellValue("总积分"); row1.CreateCell(8).SetCellValue("已使用积分"); row1.CreateCell(9).SetCellValue("可用积分"); //将数据逐步写入sheet1各个行 for (int i = 0; i < list.Count; i++) { NPOI.SS.UserModel.IRow rowtemp = sheet1.CreateRow(i + 1); rowtemp.CreateCell(0).SetCellValue(list[i].Id); rowtemp.CreateCell(1).SetCellValue(list[i].Title); rowtemp.CreateCell(2).SetCellValue(list[i].SalePrice); rowtemp.CreateCell(3).SetCellValue(list[i].Summary); rowtemp.CreateCell(4).SetCellValue(list[i].VipPrice); } // 写入到客户端 System.IO.MemoryStream ms = new System.IO.MemoryStream(); book.Write(ms); ms.Seek(0, SeekOrigin.Begin); return File(ms, "application/vnd.ms-excel", "用户信息.xls"); }