博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.net导出excle无需任何插件,直接通过一个tablehtml实现
阅读量:7014 次
发布时间:2019-06-28

本文共 2347 字,大约阅读时间需要 7 分钟。

项目背景:

  项目需要导出样式复杂的excl表格,主要是一些样式布局比较复杂

技术分析:

  目前比较通用的实现方式有

    1、借助微软的excle插件

    2、通过NPOI插件实现

    3、直接导出一个html(table),在输出头部指定文件输出类型

  本次主要说的第3中实现方式,这样实现起来很方便,尤其是针对样式复杂的表格,就当写html一样可以实现复杂的显示逻辑

  直接替代吗

后端:采用的一个一般处理程序:

  

namespace WebApplication3 {    ///     /// DownLoadExcle 的摘要说明    ///     public class DownLoadExcle : IHttpHandler {        public void ProcessRequest(HttpContext context) {            context.Response.ClearHeaders();            context.Response.Clear();            context.Response.AppendHeader("content-disposition", "attachment; filename=" + HttpUtility.UrlEncode(System.DateTime.Now.ToString("yyyyMMddHHmmss")+ ".xls", Encoding.UTF8));            // 在此处放置用户代码以初始化页面            context.Response.ContentType = "application/vnd.ms-excel";            // 从Content-Type header中去除charset设置            context.Response.ContentEncoding = Encoding.UTF8;//.GetEncoding("GB2312")  .UTF8;//解决中文乱码之关键            // 关闭 ViewState            //EnableViewState = false;            // 把HTML写回浏览器            context.Response.Write("
"); context.Response.Write(this.GetExcleDataHtml()); context.Response.Flush(); context.Response.Clear(); context.Response.End(); } public bool IsReusable { get { return false; } } /// /// 获取需要导出的数据HTML字符串 /// ///
private string GetExcleDataHtml() { StringBuilder sbReport = new StringBuilder(); sbReport.Append("
"); sbReport.Append("
"); sbReport.Append("
"); sbReport.Append("
"); sbReport.Append("
"); sbReport.Append("
"); for (int i = 0; i < 10; i++) { sbReport.Append("
"); sbReport.Append(string.Format("
", i + 1)); sbReport.Append(string.Format("
", i + 1)); sbReport.Append(string.Format("
", (i + 1) * 10)); sbReport.Append("
"); } sbReport.Append("

Id

姓名

成绩

{0} 测试{0} {0}
"); return sbReport.ToString(); } }}

  

前端代码:直接用的一个a标签,链接到下载的一般处理程序地址即可

 

转载于:https://www.cnblogs.com/xiaoXuZhi/p/downloadExcle.html

你可能感兴趣的文章
Port already be taken
查看>>
C#演示如何使用 XML 将源码编入文档
查看>>
深入理解计算机系统11——网络编程
查看>>
为什么说甲骨文裁员也属无奈之举?
查看>>
LeetCode:Word Pattern
查看>>
重载模板的顺序
查看>>
keil 编译后 flash 和 ram 占用情况
查看>>
java Jsoup爬取静态网站
查看>>
css选择器
查看>>
emacs使用http代理打开
查看>>
IOException: Sharing violation on path *****
查看>>
redhat python笔试题
查看>>
Silverlig“.NET研究”ht 2.5D RPG游戏技巧与特效处理:(三)动态光影
查看>>
字符串
查看>>
Vue 项目中使用less
查看>>
2018-2019-1 20165303 《信息安全系统设计基础》第七周学习总结
查看>>
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:600)
查看>>
如何將CMOS影像以RGB16的方式存入SDRAM? (SOC) (DE2-70) (TRDB-D5M) (TRDB-LTM)
查看>>
中国程序员容易发音错误的单词
查看>>
Android通知的基本用法
查看>>