C# html的Table导出到Excel中

简介:

C#中导出Excel分为两大类。一类是Winform的,一类是Web。今天说的这一种是Web中的一种,把页面上的Table部分导出到Excel中。

Table导出Excel,简单点说,分为以下几步:

1.根据table的id,获取到Table的html,如用jquery获取table的代码:$("#table").html().但这只是获取到<table></table>之间的内容,还需要拼接上。

2.把页面获取到的table的html代码提交到后台。

3.后台的Response设置了一下要导出的格式,导出的编码,和导出的文件名。

具体详细,看一下下面的代码。

(1)获取table

复制代码
复制代码
var tableHead = "<html><meta http-equiv=\"content-type\" content=\"text/html; charset=UTF-8\" /><body><table><tr><td style=\"background-color: #84aced;\">社員番号</td><td style=\"background-color: #84aced;\">社員名前</td><td style=\"background-color: #84aced;\">拠点</td>"
                            + "<td style=\"background-color: #84aced;\">分野</td><td style=\"background-color: #84aced;\">課</td><td style=\"background-color: #84aced;\">職位</td><td style=\"background-color: #84aced;\">"
                            + "対象</td><td style=\"background-color: #84aced;\">一次評価者</td><td style=\"background-color: #84aced;\">二次評価者</td><td style=\"background-color: #84aced;\">操作</td></tr>";
$("#html").val(tableHead + $("#datalist").html() + "</table></body></html>"); //获取并拼接代码
复制代码
复制代码

(2)因为获取表格的html代码比较长,通过Form表单的形式提交个后台

 document.getElementById("ExcelForm").submit();

(3)后台将获取到的table代码导出到Excel中

复制代码
复制代码
  string excelHtml = context.Request["excelHtml"];
            string name = DateTime.Now.ToString();
            context.Response.Buffer = true;
            //输出的应用类型 
            context.Response.ContentType = "application/vnd.ms-excel";
            //设定编码方式,若输出的excel有乱码,可优先从编码方面解决
            context.Response.Charset = "utf-8";
            context.Response.ContentEncoding = System.Text.Encoding.UTF8;
            //filenames是自定义的文件名
            context.Response.AppendHeader("Content-Disposition", "attachment;filename=" + name + ".xls");
            //content是步骤1的html,注意是string类型
            context.Response.Write(excelHtml);
            context.Response.End();
复制代码
复制代码
分类:  ASP.NET

本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/p/3668418.html ,如需转载请自行联系原作者
相关文章
|
1月前
|
NoSQL 关系型数据库 MySQL
多人同时导出 Excel 干崩服务器?怎样实现一个简单排队导出功能!
业务诉求:考虑到数据库数据日渐增多,导出会有全量数据的导出,多人同时导出可以会对服务性能造成影响,导出涉及到mysql查询的io操作,还涉及文件输入、输出流的io操作,所以对服务器的性能会影响的比较大;结合以上原因,对导出操作进行排队; 刚开始拿到这个需求,第一时间想到就是需要维护一个FIFO先进先出的队列,给定队列一个固定size,在队列里面的人进行排队进行数据导出,导出完成后立马出队列,下一个排队的人进行操作;还考虑到异步,可能还需要建个文件导出表,主要记录文件的导出情况,文件的存放地址,用户根据文件列表情况下载导出文件。
多人同时导出 Excel 干崩服务器?怎样实现一个简单排队导出功能!
|
2月前
|
XML Java 数据格式
使用Freemarker模版导出xls文件使用excel打开提示文件损坏
使用Freemarker模版导出xls文件使用excel打开提示文件损坏
49 0
|
24天前
|
SQL C# 数据库
C# 读取多条数据记录导出到 Word 标签模板
C# 读取多条数据记录导出到 Word 标签模板
|
24天前
|
存储 SQL C#
C#实现Excel合并单元格数据导入数据集
C#实现Excel合并单元格数据导入数据集
|
1月前
|
SQL Java easyexcel
【Java】百万数据excel导出功能如何实现
【Java】百万数据excel导出功能如何实现
116 0
|
2月前
|
Java
使用POI导出Excel
使用POI导出Excel
|
2月前
|
移动开发 前端开发 JavaScript
H5+CSS3+JS逆向前置——HTML2、table表格标签
H5+CSS3+JS逆向前置——HTML2、table表格标签
24 0
|
2月前
|
前端开发 Java Maven
springboot优雅的实现excel的导出(自适应列宽实现,中文也行),复制可用
springboot优雅的实现excel的导出(自适应列宽实现,中文也行),复制可用
56 0
|
2月前
|
测试技术 数据处理 Python
测试报告导出PDF和excel的方法
测试报告导出PDF和excel的方法