protected void btnExportZip_Click(object sender,EventArgs e)

{

string archiveName=String.Format("zip文件名{0}-{1}.zip",CurrentUser.DepartmentName,DateTime.Now.ToString("yyyy-MM-dd");

Resoponse.CotentType="application/zip";

Response.AddHeader("content-disposition","attachment;filename=\""+HttpUtility.UrlEncode(archiveName,Encoding.UTF8)+"\"");

var docHelper=new DocHelper();

var template=Server.MapPath("~/Template/export/template.doc");//模板

var streamList=new List<MemoryStream>();

//数据源赋值

using(var zip=new ZipFile(Encoding.UTF8))

{

foreach(var proposal in proposaList)

{

var newDs=new Dataset();

var dt1=ListExtend.ListToDataTable(new List<Proposal>(){proposal});// T转换为datatable

dt1.TableName="table";

newDs.Tables.add(dt1);

//关联建议人 把建议人数据放入提案数据的尾部

var suggesterList=ProposerService.GetListByProposalId(proposal.Id);

var dtSuggester=ListExtend.ListToDataTable(suggesterList);

dtSuggester.TableName="Proposer";

newDs.Table.Add(dtSuggester);

newDs.Relations.Add("ProposalWithProposer",dt1.Columns["Id"],dtSuggester.Colums["ProposalId"]);

docHelper.DataSetList=new List<DataSet>(){newDs};

var fileName=string.Format("{0}-{1}-政协提案交办全文.doc",proposal.Num,proposal.Title);

var stream=docHelper.ExportStream(template);

stream.Seek(0,SeekOrigin.Begin);

zip.AddEntry(fileName,stream);

streamList.Add(stream);

}

zip.save(Response.OutputStream);

foreach(var memoryStream in streamList)

{

memoryStream.Close();

}

}

}

打包成zip的更多相关文章

  1. 将多张图片打包成zip包,一起上传

    1.前端页面 <div class="mod-body" id="showRW" style="text-align: center;font- ...

  2. springboot中使用freemarker生成word文档并打包成zip下载(简历)

    一.设计出的简历模板图以及给的简历小图标切图         二.按照简历模板图新建简历word文件 :${字段名},同时将图片插入到word中,并将建好的word文件另存为xml文件:    三.直 ...

  3. java将文件打包成ZIP压缩文件的工具类实例

    package com.lanp; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ja ...

  4. java批量下载,将多文件打包成zip格式下载

    现在的需求的: 根据产品族.产品类型,下载该产品族.产品类型下面的pic包: pic包是zip压缩文件: t_product表: 这些包以blob形式存在另一张表中: t_imagefile表: 现在 ...

  5. 关于springmvc下服务器文件打包成zip格式下载功能

    关于springmvc下服务器文件打包成zip格式下载功能 2016年09月21日 11:22:14 toxic_guantou 阅读数:5731更多 个人分类: 技术点存储   版权声明:本文为博主 ...

  6. Springboot生成二维码并下载图片png支持打包成zip

    pom.xml <!--二维码--> <dependency> <groupId>com.google.zxing</groupId> <arti ...

  7. php 下载图片并打包成Zip格式压缩包

    前言:最近公司有个需要下载多个图片并打包成压缩包的需求,下面来看看具体是怎么做的 1.没什么说的,懒得说啥,直接看代码 /** * 下载图片并生成压缩包 * @param $data 图片数组,一维 ...

  8. 十一、springboot 配置log4j2以及打包成zip文件

    前言 其实我们前面已经配置了日志,但是最近总感觉日志日志格式看的不舒服,并且每次打包都是一个jar 文件,lib都包含在jar 中,每次做很小的修改都需要重新替换jar文件,jar文件会比较大,传输起 ...

  9. Java实现文件自动打包成zip并下载的代码

      import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java. ...

  10. 阿里云打包成zip格式,批量下载

    /** * 从阿里云下载文件 (以附件形式下载) 多个文件进行zip下载 第二种 * @param request * @param response */ @ResponseBody @Reques ...

随机推荐

  1. sql server 2008 跨服务器查询

    exec sp_addlinkedserver 'ITSV','','SQLOLEDB','192.168.202.53' exec sp_addlinkedsrvlogin 'ITSV','fals ...

  2. js与jquery异同

    大家都知道jquery是js的一个库,很多东西大多数简写了,让js写起来特别的方便.但是对与学习的人来说,最好是先学会了js再去学jquery会更好.在学得过程中你会发现两者实现的原理是差不多的,但是 ...

  3. 【转】浅谈 C++ 中的 new/delete 和 new[]/delete[]

    在 C++ 中,你也许经常使用 new 和 delete 来动态申请和释放内存,但你可曾想过以下问题呢? new 和 delete 是函数吗? new [] 和 delete [] 又是什么?什么时候 ...

  4. ArcGIS 最短路径计算

    using System;using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Geometry;using ESRI.ArcGIS.Geodatabase;using ...

  5. [linux]ubuntu 下安装RMySQL包

    http://downloads.mysql.com/docs/connector-odbc-en.pdf http://blog.csdn.net/ixidof/article/details/59 ...

  6. Haproxy内网连接阿里云存储OSS后提供下载

    global log 127.0.0.1 local0 maxconn #最大连接数 chroot /usr/local/haproxy uid #所属运行的用户UID gid #所属运行用用户组 d ...

  7. BZOJ1485: [HNOI2009]有趣的数列

    Description 我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件: (1)它是从1到2n共2n个整数的一个排列{ai}: (2)所有的奇数项满足a1<a3<…&l ...

  8. select..in(参数化) 解决注入式问题

    方案1 为where in的每一个参数生成一个参数,写法上比较麻烦些,传输的参数个数有限制,最多2100个,可以根据需要使用此方案 using (SqlConnection conn = new Sq ...

  9. iOS五种本地缓存数据方式

    iOS五种本地缓存数据方式   iOS本地缓存数据方式有五种:前言 1.直接写文件方式:可以存储的对象有NSString.NSArray.NSDictionary.NSData.NSNumber,数据 ...

  10. Odoo Xml Datetime 类型显示为 Date类型

    <field name='date_order' widget='date'/> 利用date widget即可使dateime类型的显示为date.