- 浏览: 105455 次
- 性别:
- 来自: 上海
最新评论
-
18335864773:
用过一次用pageoffice产品生成excel。其实利用Pa ...
java导出多个excel并打成zip包 -
lujialiang:
writeEmailInfo2Excel() 这个方法怎么写 ...
java导出多个excel并打成zip包 -
zhaokui:
,用到了,太感谢了
DES加密 java与.net可以相互加密解密两种方法 -
fengpy2009:
灰常感谢啊
DES加密 java与.net可以相互加密解密两种方法
这里主要是要针对数据量过大,通过生成多个excel文件并打成一个zip压缩包提供下载.
压缩excel的类 ZipUtil:
import java.io.*; import java.util.*; import java.util.zip.ZipOutputStream; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; public class ZipUtil { private static final Log log = LogFactory.getLog(ZipUtil.class); /** * 压缩文件 * * @param srcfile File[] 需要压缩的文件列表 * @param zipfile File 压缩后的文件 */ public static void zipFiles(List<File> srcfile, File zipfile) { byte[] buf = new byte[1024]; try { // Create the ZIP file ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile)); // Compress the files for (int i = 0; i < srcfile.size(); i++) { File file = srcfile.get(i); FileInputStream in = new FileInputStream(file); // Add ZIP entry to output stream. out.putNextEntry(new ZipEntry(file.getName())); // Transfer bytes from the file to the ZIP file int len; while ((len = in.read(buf)) > 0) { out.write(buf, 0, len); } // Complete the entry out.closeEntry(); in.close(); } // Complete the ZIP file out.close(); } catch (IOException e) { log.error("ZipUtil zipFiles exception:"+e); } } /** * 解压缩 * * @param zipfile File 需要解压缩的文件 * @param descDir String 解压后的目标目录 */ public static void unZipFiles(File zipfile, String descDir) { try { // Open the ZIP file ZipFile zf = new ZipFile(zipfile); for (Enumeration entries = zf.entries(); entries.hasMoreElements();) { // Get the entry name ZipEntry entry = ((ZipEntry) entries.nextElement()); String zipEntryName = entry.getName(); InputStream in = zf.getInputStream(entry); // System.out.println(zipEntryName); OutputStream out = new FileOutputStream(descDir + zipEntryName); byte[] buf1 = new byte[1024]; int len; while ((len = in.read(buf1)) > 0) { out.write(buf1, 0, len); } // Close the file and stream in.close(); out.close(); } } catch (IOException e) { log.error("ZipUtil unZipFiles exception:"+e); } } /** * Main * * @param args */ public static void main(String[] args) { List<File> srcfile=new ArrayList<File>(); srcfile.add(new File("e:\\1.xls")); srcfile.add(new File("e:\\2.xls")); srcfile.add(new File("e:\\3.xls")); srcfile.add(new File("e:\\4.xls")); srcfile.add(new File("e:\\5.xls")); File zipfile = new File("e:\\edm.zip"); ZipUtil.zipFiles(srcfile, zipfile); } }
生成多个excel 类:
/** * forward:导出Excel * @throws Exception */ private ModelAndView forwardExport2Excel(HttpServletRequest request, HttpServletResponse response) throws Exception{ try { Integer page=0;//页数 Integer pagesize=Integer.valueOf(PropertiesUtil.getPropertyValue("PAGESIZE"));//每页显示数 Integer total=0;//总数 int pageindex=1;//当前页数 Integer rowfrom = 1; Integer rowto = 10; total =service.getTotal(); if(total<pagesize){ page=1; System.out.println("from:"+rowfrom+"---"+total); List<Object> list = new ArrayList<Object>(); list = service.getAllList(rowfrom,total); JXLUtil.writeEmailInfo2Excel(response, "邮箱信息总览", "titles", list,pageindex); }else{ Integer mode=total%pagesize; if(mode!=0){ page=total/pagesize+1; }else{ page=total/pagesize; } if(total!=0 && page!=0){ while(pageindex<=page ){ if(total<0){ break; } if( total>pageindex*pagesize ){ System.out.println("from:"+(rowfrom)+"----"+pageindex*pagesize); List<Object> list = new ArrayList<Object>(); list = service.getAllList(rowfrom,pagesize); JXLUtil.writeEmailInfo2Excel(response, "邮箱信息总览", "titles", list,pageindex); rowfrom=pageindex*pagesize; pageindex++; }else{ System.out.println("from:"+rowfrom+"--"+total); List<Object> list = new ArrayList<Object>(); list = service.getAllList(rowfrom,total); JXLUtil.writeEmailInfo2Excel(response, "邮箱信息总览", "titles", list,pageindex); break; } } } } List<File> srcfile=new ArrayList<File>(); for(int p=1;p<=page;p++){ srcfile.add(new File(PropertiesUtil.getPropertyValue("URL")+"zipname"+p+".xls")); } File zipfile = new File(PropertiesUtil.getPropertyValue("OUTPATH")+"zipname.zip"); ZipUtil.zipFiles(srcfile, zipfile); String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; writeObject("成功导出excel 地址:<html><a href="+basePath+"zipname.zip>点击下载</a></html>", response); } catch (Exception e) { log.error("error:"+e); } return null; }
jxl生成excel参考我之前的一篇即可
评论
2 楼
18335864773
2017-06-12
用过一次用pageoffice产品生成excel。其实利用PageOffice组件实现后台画出Excel报表是很容易的。与POI、JXL的比较。pageoffice既能在网页里显示编辑Office文档,也能在服务器端执行部分导入导出Office文档内容的任务。pageoffice可以兼容各种浏览器和各种office版本以及wps。
1 楼
lujialiang
2016-12-22
writeEmailInfo2Excel() 这个方法怎么写
发表评论
-
获取用户的msn和邮箱联系人列表,支持的邮箱包括hotmail, gmail, yahoo, sohu, sina, 163, 126, tom, yeah,
2012-06-13 14:47 5727http://code.google.com/p/contac ... -
Java操作Cookie
2011-09-02 09:52 1553Java对cookie的操作比较简 ... -
抽象类与接口的区别
2011-08-26 17:12 694abstract class和interface是Ja ... -
poi读取Excel2007文件
2011-06-16 11:16 2182excel2007同之前excel97-2003在存储数据量上 ... -
java读取property.property文件
2011-06-14 09:35 2264import java.io.IOException; im ... -
Java生成excel文件 JXL
2011-05-24 17:13 2340要使用的jar包 jxl-2.5.7.jar ... -
用于输出object对象中的属性值
2011-04-26 10:46 1605import java.lang.reflect.Invoca ... -
java 生成任意位数随机数
2010-07-06 11:16 2050/** * 生成任意位数随机数 * @param ... -
DES加密 java与.net可以相互加密解密两种方法
2010-03-02 17:34 3599通过这个方法可以实现java和C#相互加密与解密 并能保持解密 ... -
token解决重复提交问题
2009-12-15 15:32 1249如果避免重复提交呢? 请知道的详细说下,或者把文章的链接 ... -
java 获取域名
2009-08-19 14:52 2412import java.util.regex.Matcher; ... -
float类型转int型
2009-02-12 11:03 2335public class test { /** flo ... -
Java开源项目Hibernate包作用详解
2008-12-22 11:27 830Hibernate一共包括了23个jar包,令人眼花缭乱。本文 ... -
用java导出Msn好友及分组信息
2008-12-03 11:16 1946网上也有不少例子,但是有些朋友遇到所谓911错误导 ... -
IntelliJIDEA中文问题解决方案
2008-12-03 11:07 1110IntelliJIDEA中文问题解决方案 ... -
读取配置参数的properties文件,路径获取完美解决
2008-12-01 14:01 3199读取配制文件的时候,路径问题让人挠头,使用下面的方法,可方便获 ...
相关推荐
直接可以用的项目。数据量大,导出多个excel然后压缩成zip文件。。。
java中将多个excel打包成zip文件下载.rar
30万的数据量,生成多个excel最后打包成zip下载,是工程,直接导入就行
生成excel并打包成zip文件,包含主要的生成类和如何打包的代码,主要是嵌套的关系
用Java语言采用接口设计模式、代理设计模式、工厂设计模式实现对excel中的表实现基本的导出(写)功能,把一个对象集合输出到一个excel表中。 【基本功能】 将对象集合导出到Excel表 【扩展功能】 1、自由设置表头 2...
目前项目有一个需求“数据的离线导入导出”,需要将数据分模块导入到不同的excel,然后压缩成数据包下载
包含了使用的jar包,以及一个Java类,实现了使用Java对多目录多层级的文件进行打包,以及对ZIP包进行解压缩的操作。
Java根据Url把多个文件下载到指定的文件夹目录,然后再将文件夹目录打包成zip导出,包括子目录也可以打包,有个简单的导出html页面,点击导出按钮下载zip。
Java_批量导出大数据量Excel方法.zip
Java导出成Excel表格所需jar包,不要再找了,下载了就好了
Java导出数据到Excel文件中,支持多页签形式,如通过Java导出一个名为“各部门人员列表”,然后在文件中有三个页签,分别为“研发部”、“综合部”、“财务部”。其中这三个页签里面的数据就是通过Java导出到Excel...
java导出excel POI jar包 java代码地址http://blog.csdn.net/awenluck/article/details/51488537
Java封装导出Excel,数据全泛型方便导出,sheet页面个数不定,任意导出
java导出内容以及图片到execl中,由于客户的骚需求,不得不进行一些不情愿的开发。文档仅供思路参考。谢谢
java导出成Excel 本人亲自测试过
用开源 Apache POI 技术导出Excel,解决导出大数据出现OOM、栈溢出问题,此资源可实现百万级数据多线程分批导出Excel文件,不会内存溢出,生产环境已很稳定的使用者,所以用到的技术很核心、值得参考
java 实现Excel压缩成Zip导出.docx
java导出excel大数据,由于excel本身sheet页存储条数的限制,方案一般有:1、导出多个excel,然后将多个excel压缩为zip包,导出;2、导出可以通过excel打开的文本文件;3、导出csv文件(简单格式的)。 本样例以导出...
java导出数据到excel中的相关jar包。导出Excel的技术有两种Jakarta POI和Java Excel。
java开发中的列表数据导出成excel格式,这个文档包含了所需的jar包和例子代码。