将Table表格导出到Excel
2016-11-17 17:23
375 查看
1.导出当前页
效果如下:
前台代码:
View Code
后台代码:
View Code
导出Excel动态链接库下载:http://pan.baidu.com/s/1o7ZDxwu
PS:上面是导出【当前页】的内容,如果想导出【所有的】。原理一样,添加个隐藏域就行了,然后将所有查询到的值加载到这个隐藏域里面。之后就可以按照上面的方法继续啦~
效果如下:
前台代码:
@{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width" /> <title>Index</title> <style> DIV.viciao { MARGIN-TOP: 20px; MARGIN-BOTTOM: 10px; } DIV.viciao A { BORDER-RIGHT: #8db5d7 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #8db5d7 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; BORDER-LEFT: #8db5d7 1px solid; COLOR: #000; MARGIN-RIGHT: 2px; PADDING-TOP: 2px; BORDER-BOTTOM: #8db5d7 1px solid; TEXT-DECORATION: none; } DIV.viciao A:hover { BORDER-RIGHT: red 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: red 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; BORDER-LEFT: red 1px solid; MARGIN-RIGHT: 2px; PADDING-TOP: 2px; BORDER-BOTTOM: red 1px solid; } DIV.viciao A:active { BORDER-RIGHT: red 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: red 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; BORDER-LEFT: red 1px solid; MARGIN-RIGHT: 2px; PADDING-TOP: 2px; BORDER-BOTTOM: red 1px solid; } DIV.viciao SPAN.current { BORDER-RIGHT: #e89954 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #e89954 1px solid; PADDING-LEFT: 5px; FONT-WEIGHT: bold; PADDING-BOTTOM: 2px; BORDER-LEFT: #e89954 1px solid; COLOR: #000; MARGIN-RIGHT: 2px; PADDING-TOP: 2px; BORDER-BOTTOM: #e89954 1px solid; BACKGROUND-COLOR: #ffca7d; } DIV.viciao SPAN.disabled { BORDER-RIGHT: #ccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #ccc 1px solid; PADDING-LEFT: 5px; PADDING-BOTTOM: 2px; BORDER-LEFT: #ccc 1px solid; COLOR: #ccc; MARGIN-RIGHT: 2px; PADDING-TOP: 2px; BORDER-BOTTOM: #ccc 1px solid; } </style> </head> <body> <input type="button" name="excelBut" value="导出Excel" onclick="exportExcel()" class="sgbtn" /> <table id="OrderInfo"> <thead> <tr> <th>编号</th> <th>姓名</th> <th>备注</th> </tr> </thead> <tbody id="tdContent"></tbody> </table> <div id="nav" class="viciao"></div> <!--导出Excel处理隐藏域--> @using (Html.BeginForm("ExportExcel1", "Home", FormMethod.Post, new { name = "myForm" })) { @Html.Hidden("hHtml") } <script src="~/Scripts/jquery-1.8.2.min.js"></script> <script> //分页内容开始 $(function () { pageData(1,5); }) pageData = function (pIndex, pSize) { $("#tdContent").empty(); $("#nav").children().empty(); $.getJSON('@Url.Action("GetList","Home")?id='+Math.random()+'', { pageIndex: pIndex,pageSize:pSize}, function (_data) { for (var i = 0; i < _data.data.length; i++) { var html = "<tr><td name='majorId'>" + _data.data[i].MajorID + "</td><td>" + _data.data[i].Name + "</td><td>" + _data.data[i].Remark + "</td></tr>"; $("#tdContent").append(html); } $("<p id='pNav'>" + _data.strPage + "</p>").appendTo("#nav"); $("#pNav a").click(clickShow); }) } function clickShow() { var url = this.href; var navData = url.substring(url.lastIndexOf('?') + 1); var pSize = navData.split('&')[0].split('=')[1]; var pIndex = navData.split('&')[1].split('=')[1]; pageData(pIndex, pSize); return false; } //分页内容结束-------<< //导出Excel文件开始 function exportExcel() { var sHtml =htmlEncode($("#OrderInfo")[0].outerHTML);//做html编码 $("input[name='hHtml']").val(sHtml); //表单提交 $("form[name='myForm']").submit(); } function htmlEncode(value) { return $('<div/>').text(value).html(); } //导出Excel文件结束 </script> </body> </html>
View Code
后台代码:
using Entity.Models; using System; using System.Collections.Generic; using System.Data; using System.Data.Entity; using System.Linq; using System.Web; using System.Web.Mvc; using NPOI.HSSF.UserModel; using NPOI.HPSF; using NPOI.POIFS.FileSystem; using System.IO; using System.Text.RegularExpressions; namespace 分页练习.Controllers { public class HomeController : Controller { // // GET: /Home/ public ActionResult Index() { return View(); } public ActionResult GetList() { int pageIndex = string.IsNullOrEmpty(Request["pageIndex"]) ? 1:int.Parse(Request["pageIndex"]); int pageSize = string.IsNullOrEmpty(Request["pageSize"]) ? 10 : int.Parse(Request["pageSize"]); DbContext db = new InfernoContext(); int recordCount=db.Set<Major>().Count(); int pageCount = Convert.ToInt32(Math.Ceiling((recordCount*1.0/pageSize))); List<Major> list=db.Set<Major>().OrderBy(c => c.MajorID).Skip((pageIndex - 1) * pageSize).Take(pageSize).ToList(); string strPage = PageHelper.strPage(recordCount, pageSize, pageCount, pageIndex,"../Home/Index?pageSize="+pageSize+"&pageIndex="); var sendData = new{data=list,strPage=strPage }; return Json(sendData, JsonRequestBehavior.AllowGet); } /// <summary> /// 导出Excel /// </summary> [HttpPost] public ActionResult ExportExcel1(FormCollection form) { string strHtml = form["hHtml"]; strHtml = HttpUtility.HtmlDecode(strHtml);//Html解码 byte[] b = System.Text.Encoding.UTF8.GetBytes(strHtml);//字串转byte阵列 return File(b, "application/vnd.ms-excel", "订单详情.xls");//输出档案给Client端 } } }
View Code
导出Excel动态链接库下载:http://pan.baidu.com/s/1o7ZDxwu
PS:上面是导出【当前页】的内容,如果想导出【所有的】。原理一样,添加个隐藏域就行了,然后将所有查询到的值加载到这个隐藏域里面。之后就可以按照上面的方法继续啦~
相关文章推荐
- js导出table表格生成excel
- Table表格导出为Excel、csv、txt、sql、json、xml、Word格式
- 利用poi实现table表格导出excel
- js 将table表格导出excel
- 如何使用html表格自定义或采用tableexport.js第三方插件以excel格式导出
- Html Table用JS导出excel格式问题 导出EXCEL后单元格里的000412341234会变成412341234 7-14 会变成 2018-7-14(7月14) 自定义格式 web利用table表格生成excel格式问题 js导出excel增加表头、mso-number-format定义数据格式 数字输出格式转换 mso-number-format:"\@"
- .net SQLServer导出Excel,速度快,支持自定义表格table样式
- js 导出 html 中的 table 表格为 excel
- javascript 将table数据导出到excel中(支持表格线的导出)
- 在把table表格中的数据导出到Excel的时候,以科学计数法显示位数多的数字时怎么解决?(已解决)
- Table表格导出为Excel、csv、txt、sql、json、xml、Word格式
- JS 将表格table导出excel
- js操作table表格导出数据到excel方法
- 把页面Table表格内容导出为Excel-仅是当前页面上显示的table 分页未知(转载 略修改)
- 使用tableExport导出bootstrap-table表格 支持中文的Excel等格式
- 把table表格内容导出为excel
- asp.net将内容导出到Excel,Table表格数据(html)导出EXCEL
- 如何使用html表格自定义或采用tableexport.js第三方插件以excel格式导出
- bootstrap table和tableExport导出支持中文的Excel和pdf等表格
- html table 表格导出到Excel