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 ...
随机推荐
- 1.unix网络编程基础知识
接触网络编程一年多了,最近在系统的学习vnp两本书,对基础知识做一些总结,希望理解的更透彻清晰,希望能有更多的沉淀. 1.套接口地址 针对IPv4和IPv6地址族,分别定义了两种类型的套接口地址:so ...
- php language construct 语言构造器
isset和empty看起来像是函数,我们也经常把它当作函数一样使用,但是实际上,它们是语言构造器. php中的语言构造器就相当于C中的预定义宏的意思,它属于php语言内部定义的关键词,不可以被修改, ...
- mysql 创建临时节点
use ZooKeeper; use AnyEvent; use AE; use Data::Dumper; use IO::Socket; my $zk = ZooKeeper->new(ho ...
- shell脚本中每次读取文件的一行
写法一: #!/bin/bash while read linedo echo $line #这里可根据实际用途变化 done < file #需要读取的文件 ...
- Hdu 1158 Employment Planning(DP)
Problem地址:http://acm.hdu.edu.cn/showproblem.php?pid=1158 一道dp题,或许是我对dp的理解的还不够,看了题解才做出来,要加油了. 只能先上代码了 ...
- Linux内核中的宏:__init and __exit
ZZ FROM: http://blog.csdn.net/musein/article/details/742609 ======================================== ...
- LVS:DR模式(Direct Routing)部署实验
本文介绍怎样在kvm的虚拟环境下,部署实验LVS的DR模式.包含网络结构图,怎样配置.以及使用tcpdump分析ip包. 网络结构图 kvm ...
- Nmon 性能:分析 AIX 和 Linux 性能的免费工具
原文摘自: http://www.ibm.com/developerworks/cn/aix/library/analyze_aix/ 官网:http://www.ibm.com/developerw ...
- Sort List 分类: leetcode 算法 2015-07-10 15:35 1人阅读 评论(0) 收藏
对链表进行排序,要求时间复杂度为O(n log n) ,不使用额外的空间. 我一开始的想法是借助quicksort的思想,代码如下: # time O(nlog(n)) # Definition fo ...
- webform--常用的控件
一.简单控件 1.Lable——标签:在网页中呈现出来的时候会变成span标签 属性:Text——标签上的文字 BackColor,ForeColor——背景色,前景色 Font——字体 Bold- ...