/// <summary>///可导出多个sheet表/// </summary>/// <param name="Author">作者</param>/// <param name="Company">公司</param>/// <param name="dt">多个DataTable</param>/// <param name="fileName">文件名</param>public static void PushExcelToClientEx(string Author, string Company, DataTable[] dt, string fileName){if (!fileName.Contains(".xls")){fileName += ".xls";}StringBuilder sbBody = new StringBuilder();StringBuilder sbSheet = new StringBuilder();sbBody.AppendFormat("MIME-Version: 1.0\r\n" +"X-Document-Type: Workbook\r\n" +"Content-Type: multipart/related; boundary=\"-=BOUNDARY_EXCEL\"\r\n\r\n" +"---=BOUNDARY_EXCEL\r\n" +"Content-Type: text/html; charset=\"gbk\"\r\n\r\n" +"<html xmlns:o=\"urn:schemas-microsoft-com:office:office\"\r\n" +"xmlns:x=\"urn:schemas-microsoft-com:office:excel\">\r\n\r\n" +"<head>\r\n" +"<xml>\r\n" +"<o:DocumentProperties>\r\n" +"<o:Author>{0}</o:Author>\r\n" +"<o:LastAuthor>{0}</o:LastAuthor>\r\n" +"<o:Created>{1}</o:Created>\r\n" +"<o:LastSaved>{1}</o:LastSaved>\r\n" +"<o:Company>{2}</o:Company>\r\n" +"<o:Version>11.5606</o:Version>\r\n" +"</o:DocumentProperties>\r\n" +"</xml>\r\n" +"<xml>\r\n" +"<x:ExcelWorkbook>\r\n" +"<x:ExcelWorksheets>\r\n", Author, DateTime.Now.ToString(), Company);foreach (var d in dt){string gid = Guid.NewGuid().ToString();sbBody.AppendFormat("<x:ExcelWorksheet>\r\n" +"<x:Name>{0}</x:Name>\r\n" +"<x:WorksheetSource HRef=\"cid:{1}\"/>\r\n" +"</x:ExcelWorksheet>\r\n", d.TableName.Replace(":", "").Replace("\\", "").Replace("/", "").Replace("?", "").Replace("*", "").Replace("[", "").Replace("]", "").Trim(), gid);sbSheet.AppendFormat("---=BOUNDARY_EXCEL\r\n" +"Content-ID: {0}\r\n" +"Content-Type: text/html; charset=\"gbk\"\r\n\r\n" +"<html xmlns:o=\"urn:schemas-microsoft-com:office:office\"\r\n" +"xmlns:x=\"urn:schemas-microsoft-com:office:excel\">\r\n\r\n" +"<head>\r\n" +"<xml>\r\n" +"<x:WorksheetOptions>\r\n" +"<x:ProtectContents>False</x:ProtectContents>\r\n" +"<x:ProtectObjects>False</x:ProtectObjects>\r\n" +"<x:ProtectScenarios>False</x:ProtectScenarios>\r\n" +"</x:WorksheetOptions>\r\n" +"</xml>\r\n" +"</head>\r\n" +"<body>\r\n", gid);sbSheet.Append("<table border='1'>");sbSheet.Append("<tr style='background-color: #CCC;'>");for (int i = 0; i < d.Columns.Count; i++){sbSheet.AppendFormat("<td style='vnd.ms-excel.numberformat: @;font-weight:bold'>{0}</td>", d.Columns[i].ColumnName);}sbSheet.Append("</tr>");for (int j = 0; j < d.Rows.Count; j++){sbSheet.Append("<tr>");for (int k = 0; k < d.Columns.Count; k++){sbSheet.AppendFormat("<td style='vnd.ms-excel.numberformat: @;'>{0}</td>", Convert.ToString(d.Rows[j][k]));}sbSheet.Append("</tr>");}sbSheet.Append("</table>");sbSheet.Append("</body>\r\n" +"</html>\r\n\r\n");}StringBuilder sb = new StringBuilder(sbBody.ToString());sb.Append("</x:ExcelWorksheets>\r\n" +"</x:ExcelWorkbook>\r\n" +"</xml>\r\n" +"</head>\r\n" +"</html>\r\n\r\n");sb.Append(sbSheet.ToString());sb.Append("---=BOUNDARY_EXCEL--");HttpContext.Current.Response.Clear();HttpContext.Current.Response.ClearContent();HttpContext.Current.Response.ClearHeaders();HttpContext.Current.Response.Buffer = true;HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=" + fileName);HttpContext.Current.Response.ContentType = "application/vnd.ms-excel";HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gbk");HttpContext.Current.Response.Write(sb.ToString());HttpContext.Current.Response.End();}

转载于:https://www.cnblogs.com/diose/p/7213846.html

asp.net c# 网页 导出excel 多表格 多个sheet相关推荐

  1. js网页导出excel表格文件

    下载地址 js网页导出excel表格文件,没有使用任何第三方js类库,简单的实现table数据导出效果. dd:

  2. ASP.NET Core 导入导出Excel xlsx 文件

    ASP.NET Core 使用EPPlus.Core导入导出Excel xlsx 文件,EPPlus.Core支持Excel 2007/2010 xlsx文件导入导出,可以运行在Windows, Li ...

  3. php把数据创建一个表格,PHP创建(导出Excel数据表格)

    /** * 创建(导出Excel数据表格) * @param  array   $list 要导出的数组格式的数据 * @param  string  $filename 导出的Excel表格数据表的 ...

  4. Vue导出Excel数据表格

    这两天在做一个有关Vue框架导出Excel数据表格的项目练习,因为之前并未写过有关导出功能的练习,所以有感而发记录一下,也请各位一起共同各抒己见.(这是我第一次写博客,不足之处敬请指教) 我的情况是后 ...

  5. EasyExcel导入和导出excel数据表格用法示例

    说明:平时项目中经常有需要把excel表格中的数据导入库中,或者需要把查询出来的数据导出到excel文件中,今天就来介绍阿里的 easyexcel 的用法 一.SpringBoot集成EasyExce ...

  6. asp.net简单实现导出excel报表

    关于导出excel报表,网上也是一搜一大把.整理一下,无非就是几种思路,有利用安装excel软件或插件的服务器直接生成,或者直接在客户端生成(通常都是利用excel软件或插件直接在浏览器生成).反正万 ...

  7. 【测试技能分享】xmind思维导图导出excel层级表格转换为测试场景案例分享实践附脚本

    1.通过xmind输出测试场景: 每个项目不同,xmind不一内容不一致,可按自己负责项目或测试模块进行测试场景设计 2.导出excel 通过xmind导出功能,输出excle 3.通过python脚 ...

  8. ASP将查询数据导出EXCEL

    一.用OWC 什么是OWC? OWC是Office Web Compent的缩写,即Microsoft的Office Web组件,它为在Web中绘制图形提供 了灵活的同时也是最基本的机制.在一个int ...

  9. js表格导出excel,含多个sheet

    1. 首先安装 npm install xlsx --save//如果报错请下载最新版本 //比如 npm install xlsx@0.14.5 --save 或者更高 2. 在组件中引用 xlsx ...

  10. 网页导出Excel文件并下载

    protected void btnExport_Click(object sender, EventArgs e){try{string where = GetWhere();string sql ...

最新文章

  1. Android SpannableString 给TextView 设置颜色,删除线等
  2. 【新手宝典】一篇博文带萌新建站并了解建站体系流程和对萌新友好的便捷方式,这篇博文很有可能是你的启蒙文
  3. java程序编六角星_跨平台移动端解决方案—Weex
  4. asp判断是否移动端_asp判断用户端是电脑访问还是移动设备方法
  5. 五轴编程_沙井万丰数控数控编程五轴编程那个软件好用
  6. 怎么导出oracle库,【DG】怎么从Oracle备库导出数据
  7. 合唱团算法(DP问题)
  8. [Note]Linux查看ASCII字符表
  9. 线程5-生产者消费者模式(线程通信)
  10. 基于JAVA+SpringMVC+Mybatis+MYSQL的企业通用门户网站官网
  11. python游戏源码回合制游戏_python game源码下载
  12. profibus dp协议_轻松搞定PROFIBUS故障诊断与排除
  13. 【李宏毅机器学习2021】Task02 回归
  14. 带左右箭头的图片滚动html,js实现图片上显示左右箭头类似翻页效果的代码
  15. 嵌入式课程设计第一篇之OLED与温湿度模块
  16. 网络通信优化之通信协议:如何优化RPC网络通信?
  17. 可验证随机函数(Verifiable Random Function, VRF)
  18. windowslive站点源码里的学问
  19. VB.NET转C# Constants.vbCrLf替换
  20. 由《爆裂鼓手》引发的产品思考

热门文章

  1. 数据挖掘导论(完整版).Introduction.To.Data.Mining习题英文版答案
  2. 人工智能教学解决方案
  3. C#读IC卡程序(明华读卡器)
  4. 方方格子补丁_方方格子wps版下载 方方格子Excel工具箱插件(WPS版全套) v3.2.8.0 中文官方安装版 下载-脚本之家...
  5. RF接口测试-post
  6. pc上html5游戏无法打开,原神PC端进不去怎么办
  7. 安卓 实现一个简单的计算器
  8. 代码行数统计工具cloc
  9. 最详细的Vivado安装教程
  10. Java函数中改变变量值