1. //前端页面
  2. <body>
  3. <input type="button" value="导出Excel" class="button" id="btnjbntExport" runat="server" onclick="Exportjbnt()"/>
  4. <table class="table">
  5. <thead>
  6. <th colspan="3">基本农田保护区面积统计表(公顷)</th>
  7. </thead>
  8. <tbody>
  9. <tr>
  10. <td>基本农田占用总面积</td>
  11. <td id="JBNTZMJ">0.00</td>
  12. </tr>
  13.  
  14. </tbody>
  15.  
  16. </table>
  17. <form id="jbntform" action="./GisUtility/GeometryHelper.ashx" method="post"> //用js操作文件流,所以用form的post方法是一个不错的选择
  18. <input type="hidden" id="jbntarea" name="jbntarea" />//传递参数到后台
  19. <input type="hidden" id="jbnttype" name="jbnttype" />
  20. </form>
  21. </body>
  1.  
  2. //加载前端面前先加载包涵下面方法的js文件
  1. function Exportjbnt() {
  2. var area = GetJbntValue();
  3. $("#jbnttype").val("exportjbnt");
  4. $("#jbntarea").val(area);
  5. $("#jbntform").submit();
  6. }
  7.  
  8. function GetJbntValue() {
  9. var areavalue = $("#JBNTZMJ").html();
  10. return areavalue;
  11. }
  12.  
  1. //GeometryHelper.ashx中的后台方法
  1. if (context.Request.Form["jbnttype"] == "exportjbnt")//导出基本农田表格到excel
  2. {
  3. string area = context.Request.Params["jbntarea"];
  4. string tile = "基本农田保护区面积统计表(公顷)";
  5. pGeoJson= CommUtility.ExportJbnt2Excel(tile,area);
  6.  
  7. }
  8.  
  1. //创建excel
    public static string ExportJbnt2Excel(string Exceltitle, string area)
  2. {
  3. //创建工作薄
  4. HSSFWorkbook wk = new HSSFWorkbook();
  5. //创建一个名称为Sheet1的表
  6. ISheet tb = wk.CreateSheet();
  7. wk.SetSheetName(,"Sheet1");
  8. for (int i = ; i < ; i++)
  9. {
  10. ICellStyle cellStyle = SetCellStyle(wk, i);
  11. IRow row = tb.CreateRow(i);
  12. for (int j = ; j < ; j++)
  13. {
  14. ICell cell = row.CreateCell(j);
  15. cell.CellStyle = cellStyle;
  16. }
  17.  
  18. }
  19.  
  20. MergeCell(tb, tb.GetRow().GetCell(), , , , , Exceltitle);
  21. MergeCell(tb, tb.GetRow().GetCell(), , , , , "基本农田占用总面积");
  22. MergeCell(tb,tb.GetRow().GetCell(),,,,,area);
  23.  
  24. MemoryStream mstream = new MemoryStream();
  25. wk.Write(mstream);
  26. DownloadFile(mstream, Exceltitle);
  27. return null;
  28. }

  29. //在客户端保存或查看用流生成的excel文件
  30. public static string DownloadFile(MemoryStream fs, string filename)//必须为FileStream或MemoryStream ,如果用Stream则生成的excel无法正常打开{
    string fileName = filename+".xls";//客户端保存的文件名 //以字符流的形式下载文件
    byte[] bytes = fs.ToArray(); fs.Read(bytes, , bytes.Length); fs.Close();
    System.Web.HttpContext.Current.Response.Clear();
  1. System.Web.HttpContext.Current.Response.ClearContent();
    System.Web.HttpContext.Current.Response.ClearHeaders();
    System.Web.HttpContext.Current.Response.ContentType = "application/octet-stream";
  2. //通知浏览器下载文件而不是打开
    System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
    System.Web.HttpContext.Current.Response.AddHeader("Content-Transfer-Encoding", "binary"); System.Web.HttpContext.Current.Response.BinaryWrite(bytes);
    System.Web.HttpContext.Current.Response.Flush();
    System.Web.HttpContext.Current.Response.End();
    return null; }
  1.  
  1.  
  1.  
  1.  

npoi生成excel流并在客户端下载(html+后台 )的更多相关文章

  1. .net利用NPOI生成excel文件

    整理代码,这个是生成excel文件,用的是HSSF的方式,只能生成65535行,256列的数据,如果要看office07之后的生成,之前的随笔里提过.这个是一个完整的过程. 首先是已经查找好的数据,这 ...

  2. Aspose.Cell和NPOI生成Excel文件

    1.使用Aspose.Cell生成Excel文件,Aspose.Cell是.NET组件控件,不依赖COM组件 1首先一点需要使用新建好的空Excel文件做模板,否则容易产生一个多出的警告Sheet 1 ...

  3. 使用NPOI生成Excel级联列表

    目录 1    概要    1 2    磨刀不误砍柴工——先学会Excel中的操作    2 3    利用NPOI生成导入模板    7 3.1    设置workbook&sheet   ...

  4. NPOI生成excel并下载

    NPOI文件下载地址:http://npoi.codeplex.com/ 将文件直接引用至项目中即可,,,,, 虽然网上资料很多,但有可能并找不到自己想要的功能,今天闲的没事,所以就稍微整理了一个简单 ...

  5. NPOI 生成Excel (单元格合并、设置单元格样式:字段,颜色、设置单元格为下拉框并限制输入值、设置单元格只能输入数字等)

    NPIO源码地址:https://github.com/tonyqus/npoi NPIO使用参考:源码中的 NPOITest项目 下面代码包括: 1.包含多个Sheet的Excel 2.单元格合并 ...

  6. C#生成Excel保存到服务器端并下载

    using MongoDB.Bson; using Newtonsoft.Json.Linq; using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; ...

  7. NPOI 生成 Excel

    前言 ​ 在 c# 中可以使用对应的com组件生成或操作excel,但前提是必须安装了Office Excel , 但服务器端不一定会安装Excel,而且它操作起来并不简单.但是,使用NPOI这个第三 ...

  8. Aspose.Cell和NPOI生成Excel文件2

    NPOI还是比较好用的,引用dll程序集即可 1创建workbook和工作流 HSSFWorkbook workbook = new HSSFWorkbook(); MemoryStream ms = ...

  9. NPOI 生成 excel基本设置

    //设置页眉页脚 tempSheet.Header.Center = "2017-04-27"; tempSheet.Footer.Center = "√" + ...

随机推荐

  1. XBMC源代码简析 5:视频播放器(dvdplayer)-解复用器(以ffmpeg为例)

    XBMC分析系列文章: XBMC源代码分析 1:整体结构以及编译方法 XBMC源代码分析 2:Addons(皮肤Skin) XBMC源代码分析 3:核心部分(core)-综述 XBMC源代码分析 4: ...

  2. python的join(string)函数

    join是字符串操作函数,操作的也是字符串. key="\t".join(('a','b','c')) result= key.split("\t") prin ...

  3. linux:你不知道的echo

    linux的echo命令功能是在显示器上显示一段文字.一般格式为: echo [ -n ] 字符串.参数n是指行尾不换行 echo会将输入的字符串送往标准输出.输出的字符串间以空白字符隔开, 并在最后 ...

  4. nginx 编译增加新的模块

    原已经安装好的nginx,现在需要添加一个未被编译安装的模块: nginx -V 可以查看原来编译时都带了哪些参数 原来的参数:--prefix=/app/nginx 添加的参数: --with-ht ...

  5. daemontools安装和使用

    daemontools安装和使用 参考: http://cr.yp.to/daemontools/install.html daemontools用于自动重启进程.当某个关键服务进程崩溃,可以利用da ...

  6. struts2 easyui实现datagrid的crud

    最近两天因为项目需要,接触了easyui,要用它的datagrid实现crud.第一次做,花了一天时间才完成所有功能,昨天做另外一个模块,同样的功能只用了两个小时. 现在把第一次做datagrid时遇 ...

  7. 打造你的开发神器——介绍Android Studio上的几个插件

    这个月因为各种事情在忙,包括赶项目,回老家,还有准备旅游的事,所以应该写不了四篇博客了.今天介绍一下关于Android Studio 的几个好用的插件,都是我在用的,它们或能帮你节省时间,或者让你心情 ...

  8. centOS 安装(光安装 和 u盘安装)

    光盘安装用这个: http://www.williamlong.info/archives/1912.html 是否保留win7,要作好相关配置.有些插件可以不装. 网络设置:不好弄 如果用u盘安装, ...

  9. Linux - crontab的创建以及注意事项

    [root@www ~]# crontab [-u username] [-l|-e|-r] 选项与参数: -u :只有 root 才能进行这个任务,亦即帮其他使用者创建/移除 crontab 工作排 ...

  10. Linux - Bash shell的功能;内建命令type

    命令编修能力 (history): bash 的功能里头,相当棒的一个就是『他能记忆使用过的命令!』 这功能真的相当的棒!因为我只要在命令列按『上下键』就可以找到前/后一个输入的命令!而在很多 dis ...