- 浏览: 322548 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (254)
- java (178)
- tomcat (6)
- 邮件 (1)
- smtp (1)
- Linux (2)
- 编码 (2)
- 导入工程 (1)
- Specification Level (1)
- hibernate (10)
- 字段类型 (1)
- 字段类型匹配 (1)
- 数据库 (3)
- sql (9)
- struts2 (8)
- 类型转换 (2)
- java,MyEclipse,SVN (1)
- Myecplise (4)
- 输入校验 (1)
- JFrame (2)
- Oracle (8)
- google (1)
- Swing (3)
- Fusioncharts (1)
- 找工作 (0)
- js (4)
- jsp (11)
- displaytag (1)
- spring (8)
- 工作 (1)
- String (1)
- 算法 (2)
- IO (1)
- xml (3)
- 设计模式 (1)
- UML (1)
- 文档 (1)
- ajax (1)
- 日常 (7)
- sql server (1)
- mysql (3)
- git (1)
- Maven (1)
- mongodb (1)
- postman (1)
最新评论
http://blog.csdn.net/cmtobby/article/details/1508647
http://blog.csdn.net/evangel_z/article/details/7332535
这里曾涉及到一个问题,在导出excel表格的时候如何弹出下载提示框并修改下载文件名称,解决方案见下文:
http://wenku.baidu.com/link?url=PdTPKaJC3ykNR9mQDYBOxbsxq2NIPtoKokT1-IThGpUgvvbPLLJrIlpxv1QDC0ygkAC_H_onvB0kaX5Iz7zwCkuve2YydOUggjlCtducRxi
曾经自己写的一个导出excel的方法:
这里面最重要的是下载提示框和修改下载文件的名称这一块的解决方案。
下面是标准的下载提示框和修改下载文件的名称的servlet示例:
http://blog.csdn.net/evangel_z/article/details/7332535
这里曾涉及到一个问题,在导出excel表格的时候如何弹出下载提示框并修改下载文件名称,解决方案见下文:
http://wenku.baidu.com/link?url=PdTPKaJC3ykNR9mQDYBOxbsxq2NIPtoKokT1-IThGpUgvvbPLLJrIlpxv1QDC0ygkAC_H_onvB0kaX5Iz7zwCkuve2YydOUggjlCtducRxi
曾经自己写的一个导出excel的方法:
public String createExcel() { if (null == channelid) { yAllChannelSummary = true; } String filePath = ServletActionContext.getServletContext().getRealPath(File.separator) + "excel"+File.separator; File excelFile = new File(filePath); // 删除临时目录下的excel文件 this.deleteFile(excelFile); if (!excelFile.isDirectory()) { excelFile.mkdirs(); } List<Mall3AdSummary> summaryList = new ArrayList<Mall3AdSummary>(); List<TreeMap<Integer,Mall3AdSummary>> summaryMapList = new ArrayList<TreeMap<Integer,Mall3AdSummary>>(); if (!yAllChannelSummary) {// 非渠道全部查询 summaryList = mall3AdSummaryManager.getList(channelid, startime, endtime, type, -1, -1, null, null);// 获得导出记录 } else {// 渠道全部查询 summaryList = mall3AdSummaryManager.getNoChannelList(startime, endtime, type, -1, -1, null, null); for (int i = 0; i < summaryList.size(); i++) {// 循环获取每条汇总数据下面每个渠道的详细数据 Mall3AdSummary mall = summaryList.get(i); TreeMap<Integer,Mall3AdSummary> map = new TreeMap<Integer,Mall3AdSummary>(); map.put(0, mall);// 第一条为汇总数据,后面的是渠道详细数据 ///////////////////////////////////////////////////////////////////////////////////////////////////// List<Mall3AdSummary> channDetail = new ArrayList<Mall3AdSummary>(); channDetail = mall3AdSummaryManager.getNoChannelListDetail(mall.getChecktime(), null == mall.getCheckhour() ? null : String.valueOf(mall.getCheckhour()), type, -1, -1, null, null); for (int j = 0; j < channDetail.size(); j++) { map.put(j+1, channDetail.get(j)); } summaryMapList.add(map); } } if (null == channelid) { yAllChannelSummary = true; } DecimalFormat df = new DecimalFormat("0.00");//格式化小数,不足的补0 HSSFWorkbook wb = new HSSFWorkbook(); // 汇总数据 allAdSummary = mall3AdSummaryManager.getAllListAdd(channelid, startime, endtime, type); allAdSummary.setActiveretio(df.format(Double.parseDouble(allAdSummary.getActiveretio())*100)); HandleExcel handleExcel = new HandleExcel(); if (!yAllChannelSummary) {// 非渠道全部查询 handleExcel.createExcel(wb, summaryList, type, yAllChannelSummary, allAdSummary);// 创建excel表格数据 } else {// 渠道全部查询 handleExcel.createExcelAsNoChannel(wb, summaryMapList, type, allAdSummary); } FileOutputStream fos = null; try { if(null == summaryList || summaryList.size() == 0){ ServletActionContext.getResponse().getWriter().println("<script>alert('没有数据可供导出');location.href='/app30/mall3adsummary.action?type=1'</script>"); return null; } ServletActionContext.getRequest().setCharacterEncoding("UTF-8"); String filename = new SimpleDateFormat("yyyymmddhhmmss").format(new Date())+".xls"; fos = new FileOutputStream(new File(filePath + filename),false); //ServletActionContext.getResponse().sendRedirect("excel/"+filename); wb.write(fos); ServletActionContext.getResponse().reset();//清空response的buffer ServletActionContext.getResponse().setContentType("application/vnd.ms-excel");//设置正确的输出类型 ServletActionContext.getRequest().getContentType(); // PrintWriter out = ServletActionContext.getResponse().getWriter(); FileInputStream fis = new FileInputStream( new File(filePath + filename)); OutputStream os = ServletActionContext.getResponse().getOutputStream(); String fileName = "jifenqiang-" + new SimpleDateFormat("yyyyMMddhhmmss").format(new Date()) + ".xls"; ServletActionContext.getResponse().setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("gb2312"), "iso8859-1")); ServletActionContext.getResponse().setCharacterEncoding("utf-8"); int j = 0; byte[] b = new byte[8192]; while ((j = fis.read(b, 0, 8192)) != -1) { os.write(b, 0, j); } os.flush(); fis.close(); // ServletActionContext.getRequest().getRequestDispatcher("/excel/"+filename).forward(ServletActionContext.getRequest(), ServletActionContext.getResponse()); // out.print("<a href='"+filePath+new SimpleDateFormat("yyyymmddhhmmss").format(new Date())+".xls' target='blank' >"+"下载"+title+"</a>"+"(右键单击另存为)"); fos.close(); return null; } catch (Exception e) { e.printStackTrace(); return null; } //exportExcel.outputExcel(filePath); }
这里面最重要的是下载提示框和修改下载文件的名称这一块的解决方案。
下面是标准的下载提示框和修改下载文件的名称的servlet示例:
package com.lwf.poi; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.OutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class TestUpload extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { FileInputStream fis = new FileInputStream( new File("C:/ererer.xlsx")); OutputStream os = response.getOutputStream(); String fileName = "20160721.xlsx"; response.setHeader("Content-Disposition", "attachment;filename=" + new String(fileName.getBytes("gb2312"), "iso8859-1")); response.setCharacterEncoding("utf-8"); int j = 0; byte[] b = new byte[8192]; while ((j = fis.read(b, 0, 8192)) != -1) { os.write(b, 0, j); } os.flush(); fis.close(); } @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } }
发表评论
-
领域精通涉及技术点(不分先后)
2017-12-20 19:35 614Java8 netty jvm kafaka消息队列 上传下载 ... -
计算机各种单位讲解及换算
2017-12-13 13:54 1631我还听过有UK的 一、最小单位:位(bit,缩写为b) 在原 ... -
JAVA字符串格式化-String.format()和MessageFormat的使用
2017-12-05 10:39 1428String.format()常规类型的格式化 Stri ... -
eclipse启动项目常见问题
2017-11-16 17:46 1173今儿遇到了个问题,ecli ... -
字符编码笔记:ASCII,Unicode和UTF-8
2017-10-23 16:37 454讲的太牛逼了: http://ww ... -
emoji简单讲解
2017-10-23 15:17 968emoji处理方式大起底 http://blog.csdn.n ... -
BigDecimal讲解
2017-10-12 15:58 439BigDecimal 由任意精度的整数非标度值 和 32 位的 ... -
eclips 控制台console上不打印信息
2017-09-06 21:53 5761、进windows菜单 -> show view -& ... -
详解RequestMappingHandlerMapping和RequestMappingHandlerAdapter
2017-08-29 17:08 2960http://donald-draper.iteye.com/ ... -
用@ExceptionHandler 来进行切面异常处理
2017-08-29 11:47 2299有时候我们想处理某个类里Controller中抛出的异常怎么搞 ... -
Spring 注解@Component、@Repository、@Service、@Controller区别
2017-08-28 15:27 1008spring 2.5 中除了提供 @Com ... -
线程的一点小总结
2017-08-23 20:36 701java中main方法启动的是一个进程还是一个线程? 答:是一 ... -
线程池
2017-08-23 17:35 514诸如Web 服务器、数据库 ... -
Class源码大概讲解
2017-08-23 16:47 503http://blog.csdn.net/a327369238 ... -
Spring 事务相关
2017-08-14 12:10 470Transactionz注解的readOnly ... -
把时间当做朋友-前言
2017-08-13 20:47 400要管理的不是时间,而是自己。人们生活在同一个世界,却又各自 ... -
单例里面的方法讲解
2017-08-11 14:55 487spring里的controller是单例的。系统针对每个co ... -
eclipse拷贝出来的项目名称还是原来的
2017-07-26 16:46 1074需要修改的有如下几个地方: 1、pom.xml里面打包的名字一 ... -
自定义hibernate方言,新增自定义函数
2017-06-27 10:47 868按位与运算(&)在许多数据库中都是支持的,遗憾的是,H ... -
http请求参数:header body paramter三种参数区别、联系
2017-06-19 10:46 487912345
相关推荐
java导出excel超过65536条记录出错 java导出excel超过65536条记录出错 java导出excel超过65536条记录出错 java导出excel超过65536条记录出错
Java导出Excel是Java开发中常见的需求,尤其是在数据处理和报表生成方面。Apache POI库是Java领域中广泛使用的工具,它允许开发者读写Microsoft Office格式的文件,包括Excel(.xlsx和.xls)。本篇文章将深入讲解...
java导出Excel 时候 相同行合并(可合并多列); 已测试通过;
该工具类实现java导出树形结构的方法,并未采用excel分组功能实现,而是根据树节点显示层级设置excel样式。针对easyUi,treeGrid开发的导出excel功能。方法简便实用、性强、通俗易懂。项目中亲测,no problem。
需用到的Excel包 博文链接:https://comeon-liming.iteye.com/blog/121959
Java POI导出图片到Excel示例代码详解 Java POI是Java开发中常用的开源库,用于读写Microsoft Office文件格式,包括Excel、Word、PowerPoint等。今天,我们将介绍如何使用Java POI将图片导出到Excel中。 标题解释 ...
本示例涉及的主题是“java导出excel复杂表头”,这意味着我们要处理的不是简单的单级表头,而是包含多级或者多层次结构的表头。在描述中提到这是一个可以直接运行的Java工程,但需要进一步改造为Web下载服务。 首先...
本资源提供的"java导出excel复合表头简单实例"是针对Java开发者的一个实用教程,特别是对于那些刚开始接触Java Excel导出功能的新手。这个实例将帮助你理解如何在Excel中创建并设置复杂的表头结构,使得数据的呈现...
资源描述:一个使用java做的导出数据,并且可以在excel表生成折线图的工具类,使用简单操作方便。
在Java编程中,导出数据到Excel是一种常见的需求,特别是在数据分析、报表生成或者数据交换的场景下。Apache POI是一个强大的库,专为处理Microsoft Office格式的文件,尤其是Excel(.xlsx和.xls)文件。本篇文章将...
java导出复杂Excel内容数据动态循环
通过阅读和学习这个示例,你可以掌握Java导出Excel的基本步骤,并将其应用到自己的项目中。此外,还可以了解如何在Web环境中优雅地处理文件下载,这对构建企业级应用非常有用。记住,实际使用时需要根据具体需求进行...
总之,Java导出Excel涉及到的主要知识点包括:Apache POI库的使用,Workbook、Sheet、Row和Cell对象的创建和操作,以及数据写入和文件输出。希望这个示例能帮助你理解并开始在自己的项目中实现Excel导出功能。
Java操作数据库并导出Excel是一项常见的任务,尤其在数据分析、报表生成或数据迁移等领域。这里主要涉及两个核心技术:Java数据库连接(JDBC)用于与数据库交互,以及Apache POI库用于处理Excel文件。 首先,Java...
在Java编程中,导出Excel是一项常见的任务,特别是在数据分析、报表生成或数据交换等领域。而带图片的Excel导出则增加了复杂性,因为涉及到二进制数据的处理和Excel特定格式的支持。以下是一些关于如何在Java中实现...
在Java编程中,导出Excel数据是常见的任务,特别是在数据处理和报表生成的场景下。本教程将聚焦于使用jxl库来实现这一功能。jxl是一个流行且强大的Java库,能够读写Microsoft Excel文件。这里我们将介绍如何利用jxl...
在Java编程中,导出数据到Excel是一种常见的需求,尤其当需要将图片与文本一起展示在电子表格中时。这个任务通常涉及到使用第三方库来处理Excel文件,因为Java标准库并未提供直接支持图像到Excel的功能。以下是一些...
压缩包中的文件"java导出excel"很可能包含了使用这两种库的示例代码或教程资源,你可以通过解压并学习这些文件来深入理解如何在Java中实现数据到Excel的导出。记得在实际使用时,要根据项目需求选择合适的技术,并...
"Java 导出Excel.zip"这个压缩包文件提供了一个Java实现的解决方案,允许开发者以全泛型的方式方便地导出数据到Excel文件,而且支持动态创建不同数量的sheet页面,增强了灵活性。 1. **Java与Excel交互**:Java中...
在Java编程环境中,导出Excel 2007文件(也称为.xlsx文件)是一项常见的任务,主要用于数据报表、数据分析和数据交换。Excel 2007引入了Open XML格式,这是Microsoft Office的一项新标准,提供了更高效的数据存储...