asp.net mvc 导出表格

适合使用的场合:

.net 中从前台中的table导出成excel文件,兼容各种浏览器。

使用工具:

org.in2bits.MyXls.dll

从前台获取表格的thead和表格的tbody,将其转化为字符串,用逗号隔开

html:

 

  1. <div class=”printContent”>
  2.         <table cellspacing=”1″ class=”tablesorter table-04″>
  3.         <thead>
  4.         <tr><th>校友会编号</th><th>校友会名称</th><th>常设办事处</th><th>主席姓名</th><th>联系电话</th><th>建会时间</th><th>总人数</th><th>依托学院</th></tr>
  5.         </thead>
  6.         <tfoot>
  7.         <tr><th>校友会编号</th><th>校友会名称</th><th>常设办事处</th><th>主席姓名</th><th>联系电话</th><th>建会时间</th><th>总人数</th><th>依托学院</th></tr>
  8.         </tfoot>
  9.         <tbody>
  10.         @foreach (var l in Model)
  11.         {
  12.             <tr id=”@(l.XYHBH)”><td>@(l.XYHBH)</td><td>@(l.XYHMC)</td><td>@(l.BGSDZ)</td><td>@(l.XYHZX)</td><td>@(l.LXDH)</td><td>@(DAL.IsNull.ShortDateNull(l.CJSJ.ToString()))</td><td>@(l.HYZS)</td><td>@(BLL.ZYGLMK.XX_YXSJBQK.GetYXMC(l.YXSH))</td></tr>
  13.         }
  14.         </tbody>
  15.         </table></div>

 

javascript:

 

  1. var heads = “”;
  2.         var bodys = “”;
  3.         var i = 0;
  4.         //获取title内容,每一空以,隔开
  5.         $(“.printContent table thead tr th”).each(function () {
  6.             heads = heads + $(this).text() + “,”;
  7.             i++;
  8.         });
  9.         i = 0;
  10.         //获取tbody内容,每一空以,隔开
  11.         $(“.printContent table tbody tr td”).each(function () {
  12.             bodys = bodys + $(this).text() + “,”;
  13.             i++;
  14.         });
  15.         //发送请求,传表格内容
  16.         $.post(“/Shared/ExportExcel”, { head: heads, body: bodys }, function (data) {
  17.             //创建表格成功,保存在服务器
  18.             if (data == “1”) {
  19.                 //访问服务器指定文件,下载表格
  20.                 window.location.href = “/Shared/DownLoadExcel”;
  21.             }
  22.         });

 

引用

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using org.in2bits.MyXls;

 

ExportExcel:

 

  1. //导出excel文件
  2.         #region 导出Excel
  3.         public int  ExportExcel(string head, string body)
  4.         {
  5.             //将字符串拆分成数组,获取每一个单元格内容
  6.             string[] heads = head.Split(‘,’);
  7.             string[] bodys = body.Split(‘,’);
  8.             XlsDocument xls = new XlsDocument();
  9.             //文件名称
  10.             xls.FileName = “excel.xls”;
  11.             //excel作者
  12.             xls.SummaryInformation.Author = Session[“UID”].ToString().Trim();
  13.             //主题
  14.             xls.SummaryInformation.Subject = “LIIP&A”;
  15.             //公司
  16.             xls.DocumentSummaryInformation.Company = “Intelligent Information Processing and Application Lab”;
  17.             int len = heads.Length – 1;
  18.             //excel中sheet名称
  19.             string sheetName = Session[“UID”].ToString().Trim();
  20.             int colCount = len;//总列数
  21.             int rowCount = bodys.Length / len;//总行数
  22.             Worksheet sheet = xls.Workbook.Worksheets.AddNamed(sheetName);
  23.             Cells cells = sheet.Cells;
  24.             int t = 0;
  25.             //生成excel表格内容,从第0行到len-1行
  26.             for (int r = 0; r <= rowCount; r++)
  27.             {
  28.                 //第一行(title)
  29.                 if (r == 0)
  30.                 {
  31.                     for (int c = 0; c < colCount; c++)
  32.                     {
  33.                         //在一行内创建colCount个单元格,第1+r行第1+c列的值为heads[c][/c]
  34.                         cells.Add(1 + r, 1 + c, heads[c][/c]).
  35.                         Font.Bold = true;//字体加粗
  36.                     }
  37.                 }
  38.                 else //表示正文
  39.                 {
  40.                     for (int c = 0; c < colCount; c++)
  41.                     {
  42.                         cells.Add(1+r,1+c,bodys[t]);
  43.                         t++;
  44.                     }
  45.                 }
  46.             }
  47.             //保存到服务器
  48.             xls.Save(Server.MapPath(“/Content”),true);
  49.             return 1;
  50.         }
  51.         //文件下载
  52.         public FileResult DownLoadExcel()
  53.         {
  54.             return File(Server.MapPath(“/Content/excel.xls”), “application/ms-excel”,”excel.xls”);
  55.         }

标签