asp.net mvc 导出表格
适合使用的场合:
.net 中从前台中的table导出成excel文件,兼容各种浏览器。
使用工具:
org.in2bits.MyXls.dll
从前台获取表格的thead和表格的tbody,将其转化为字符串,用逗号隔开
html:
<div class="printContent">
<table cellspacing="1" class="tablesorter table-04">
<thead>
<tr><th>校友会编号</th><th>校友会名称</th><th>常设办事处</th><th>主席姓名</th><th>联系电话</th><th>建会时间</th><th>总人数</th><th>依托学院</th></tr>
</thead>
<tfoot>
<tr><th>校友会编号</th><th>校友会名称</th><th>常设办事处</th><th>主席姓名</th><th>联系电话</th><th>建会时间</th><th>总人数</th><th>依托学院</th></tr>
</tfoot>
<tbody>
@foreach (var l in Model)
{
<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>
}
</tbody>
</table></div>
javascript:
var heads = "";
var bodys = "";
var i = 0;
//获取title内容,每一空以,隔开
$(".printContent table thead tr th").each(function () {
heads = heads + $(this).text() + ",";
i++;
});
i = 0;
//获取tbody内容,每一空以,隔开
$(".printContent table tbody tr td").each(function () {
bodys = bodys + $(this).text() + ",";
i++;
});
//发送请求,传表格内容
$.post("/Shared/ExportExcel", { head: heads, body: bodys }, function (data) {
//创建表格成功,保存在服务器
if (data == "1") {
//访问服务器指定文件,下载表格
window.location.href = "/Shared/DownLoadExcel"; }
});
引用
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using org.in2bits.MyXls;
ExportExcel:
//导出excel文件
#region 导出Excel
public int ExportExcel(string head, string body)
{
//将字符串拆分成数组,获取每一个单元格内容
string[] heads = head.Split(',');
string[] bodys = body.Split(',');
XlsDocument xls = new XlsDocument();
//文件名称
xls.FileName = "excel.xls";
//excel作者
xls.SummaryInformation.Author = Session["UID"].ToString().Trim();
//主题
xls.SummaryInformation.Subject = "LIIP&A";
//公司
xls.DocumentSummaryInformation.Company = "Intelligent Information Processing and Application Lab";
int len = heads.Length - 1;
//excel中sheet名称
string sheetName = Session["UID"].ToString().Trim();
int colCount = len;//总列数
int rowCount = bodys.Length / len;//总行数
Worksheet sheet = xls.Workbook.Worksheets.AddNamed(sheetName);
Cells cells = sheet.Cells;
int t = 0;
//生成excel表格内容,从第0行到len-1行
for (int r = 0; r <= rowCount; r++)
{
//第一行(title)
if (r == 0)
{
for (int c = 0; c < colCount; c++)
{
//在一行内创建colCount个单元格,第1+r行第1+c列的值为heads[c]
cells.Add(1 + r, 1 + c, heads[c]).
Font.Bold = true;//字体加粗
}
}
else //表示正文
{
for (int c = 0; c < colCount; c++)
{
cells.Add(1+r,1+c,bodys[t]);
t++;
}
}
}
//保存到服务器
xls.Save(Server.MapPath("/Content"),true);
return 1;
} //文件下载
public FileResult DownLoadExcel()
{
return File(Server.MapPath("/Content/excel.xls"), "application/ms-excel","excel.xls");
}
asp.net mvc 导出表格的更多相关文章
- ASP.NET MVC导出excel
ASP.NET MVC导出excel 要在ASP.NET MVC站点上做excel导出功能,但是要导出的excel文件比较大,有几十M,所以导出比较费时,为了不影响对界面的其它操作,我就采用异步的方式 ...
- ASP.NET MVC 导出CSV文件
ASP.NET MVC 导出CSV文件.直接贴代码 /// <summary> /// ASP.NET MVC导出CSV文件Demo1 /// </summary> /// ...
- ASP.NET MVC导出excel(数据量大,非常耗时的,异步导出)
要在ASP.NET MVC站点上做excel导出功能,但是要导出的excel文件比较大,有几十M,所以导出比较费时,为了不影响对界面的其它操作,我就采用异步的方式,后台开辟一个线程将excel导出到指 ...
- ASP.NET MVC 导出Word报表
最近要做MVC导出Word报表功能.查了查资料发现一个好用的插件就是Aspose.Word.这个插件也很有名气,也很好用. 1.首先就是引用该插件 2.填充Word模版 3.后台操作 private ...
- ASP.NET MVC 之表格分页
简单效果图:(框架:MVC+NHibernate) 要点: (1)首先建立表格分页Model(GridModel.cs) (2)然后建立数据展示页(PageCloth.cshtml) (3)再建分页版 ...
- 在asp.net中导出表格Excel数据
第一步:需要引用org.in2bits.MyXls程序集到使用页面 第二步:前台代码 <asp:Button ID="LeadingOut" runat="serv ...
- ASP.NET MVC导出excel npoi
使用npoi组件 前端代码: @Html.ActionLink("导出Excel", "ExportWarehouseInOutDetailTable", ne ...
- asp.net MVC 导出查询结果到Excel
首先在View视图中有一表单form,导出按钮<input class="btn export" type="button" value="导出 ...
- asp.net mvc导出execl_转载
public FileResult ExportExcel() { var sbHtml = new StringBuilder(); sbHtml.Append("<table bo ...
随机推荐
- form的验证用法
models.py forms.py html页面 第二种方法: 不继承model直接自定义内容 获得内容: if form.is_valid(): price = reques ...
- 用QFileSystemWatcher来监视文件和目录的改变(内部还是使用了timer)
Use Case: 两个程序共享同一个Configuration文件,当一个程序作出改变的时候,需要另外一个程序能够及时响应. 之前其实猜的八九不离十,估计是有一个Timer,然后定时查询Config ...
- Qt中所有类型之间的转换
1.char * 与 const char *的转换 char *ch1="hello11";const char *ch2="hello22";ch2 = c ...
- linux 学习:环境变量设置
一.临时环境变量 临时环境变量,只对当前打开的shell生效,shell关闭后,环境变量失效. 设置方法一: 分两步 MYPARA=hello export MYPARA 设置方法二:一步完成 exp ...
- hadoop安全模式
hadoop安全模式在分布式文件系统启动的时候,开始的时候会有安全模式,当分布式文件系统处于安全模式的情况下,文件系统中的内容不允许修改也不允许删除,直到安全模式结束.安全模式主要是为了系统启动的 ...
- Struts2 学习笔记16 struts标签 part2
接下来说一下if标签.下面是结果图. <li><s:if test="#parameters.age[0]<0">error!</s:if> ...
- PopupWindow 的showatlocation参数解释
showAtLocation(parent, gravity, x, y) 第一个参数指定PopupWindow的锚点view,即依附在哪个view上.第二个参数指定起始点第三个参数设置以起始点的右下 ...
- SDCard助手类
package com.zyh.sdcardHelper; import java.io.BufferedInputStream; import java.io.BufferedOutputStrea ...
- 自己用js写的两个日历控件
前一阵写了两个日历控件,做了简单的封装,发出来共朋友们参考. 第一个日历控件,条状的日历. (使用方法:调用initBarTime(id,evn),第一个参数是要渲染div的id,第二个参数是点击日期 ...
- 高级UIKit-06(UIImagePickerController)
[day07-1-getSystemImage]:获取系统相册 UIImagePickerController图片采集控制器 picker采集者,采摘者 该方法继承自:UINavigationCont ...