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 ...
随机推荐
- Qt Chart 5.7.0 傻瓜安装教程
前提 qtchart 里的README文件(注意红色标记处)(本人翻译不行.多多见谅,也可以在评论里纠正( ⊙ o ⊙ )) --------------- Qt Charts 5.7.0 ----- ...
- 登陆整合实现-QQ互联认证(ASP.NET版本)
原文:登陆整合实现-QQ互联认证(ASP.NET版本) 首先 我们创建一个qq.ashx的页面,这个页面会跳转到QQ的请求界面 代码如下: QQSettingConfig qqSettingConfi ...
- android 程序崩溃crash日志的捕捉
android 程序崩溃crash日志的捕捉 之前在项目开发过程中,一直会遇到程序崩溃了,但是测试組的哥哥们又没及时的导出日志.... 后来在诳群的时候听别人说起,腾讯有那么一个叫bugly的东西 将 ...
- W3C 、HTML 、CSS 发展介绍
一.W3C W3C 指万维网联盟(World Wide Web Consortium),创建于1994年10月,由 Tim Berners-Lee (他是html的发明人)创建. W3C开始被创建的目 ...
- 转:一道笔试题-将int型数组强制转换为char*,再求strlen,涉及大小端
写出如下程序运行结果: #include<stdio.h> #include<string.h> int main() { int a[2000]; char *p = (ch ...
- JQuery - 提交表单
[JavaScript] JQuery异步提交表单与文件上传 Jquery.form.js是一个可以异步提交表单及上传文件的插件. 文档地址:http://jquery.malsup.com/form ...
- 一口一口吃掉Hibernate(八)——Hibernate中inverse的用法
一.Inverse是hibernate双向关系中的基本概念.inverse的真正作用就是指定由哪一方来维护之间的关联关系.当一方中指定了“inverse=false”(默认),那么那一方就有责任负责之 ...
- UTL_RAW
The UTL_RAW package provides SQL functions for manipulating RAW data types. 该包的功能其实可以用来加密: SELECT ...
- GDSOI2015 task4 ACU
题目大意 只要你有耐心看完题目,你就可以得到以下模型: 给出一个有向图,有若干询问,每次询问对于某条边\((v,u)\),求删掉这条边后,\(v\)到\(u\)的最短路. 算法1 暴力出奇迹,期望得分 ...
- asp.net 生成xml文件 与 asp生成xml文件
一.asp.net 生成xml文件 webservice方式,调用接口: public XmlDocument List() { XmlDocument doc = new XmlDocument() ...