- 浏览: 236116 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
lwb314:
你的这个是创建的临时的hive表,数据也是通过文件录入进去的, ...
Spark SQL操作Hive数据库 -
yixiaoqi2010:
你好 我的提交上去 总是报错,找不到hive表,可能是哪里 ...
Spark SQL操作Hive数据库 -
bo_hai:
target jvm版本也要选择正确。不能选择太高。2.10对 ...
eclipse开发spark程序配置本地运行
最近做java的web项目,用到了excel导出到客户端(本地),通过IE可以实现用浏览器保存、另存为、取消。我使用的是POI来完成的,poi架包是poi-3.7-20101029.jar这个架包在网上很容易找到。话不多说,进入实战demo。
项目结构:
第一步用MyEclipse创建一个web项目,名称:excelExport
第二步将下载的poi架包放到lib目录下,并添加到Build Path中:右击架包--》Build Path--》Add to Build Path.
第三步创建一个servlet,名称为:ExcelExportServlet.java,其代码如下:
第四步:将工程发布的tomcat中,运行,打开浏览器访问。如何知道访问的地址呢?打开WEB-INF下面的web.xml文件,我的是MyEclipse创建servlet时自动配置好的,代码如下,红色部分很关键,就是你访问网址最后面的两个excelExport是你的项目名称:
[url]
http://localhost:8080/excelExport/servlet/ExcelExportServlet
[/url]
在浏览器中打开即可该网址就可以将“学生信息表.xls”下载下来。
转载请注明出处:http://kevin12.iteye.com/blog/1929341
项目结构:
第一步用MyEclipse创建一个web项目,名称:excelExport
第二步将下载的poi架包放到lib目录下,并添加到Build Path中:右击架包--》Build Path--》Add to Build Path.
第三步创建一个servlet,名称为:ExcelExportServlet.java,其代码如下:
package com.lujinyong.servlet; import java.io.FileNotFoundException; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.hssf.util.HSSFColor; public class ExcelExportServlet extends HttpServlet { //访问网址:http://localhost:8080/excelExport/servlet/ExcelExportServlet public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("octets/stream"); // response.addHeader("Content-Disposition", "attachment;filename=test.xls"); String excelName = "学生信息表"; //转码防止乱码 response.addHeader("Content-Disposition", "attachment;filename="+new String( excelName.getBytes("gb2312"), "ISO8859-1" )+".xls"); String[] headers = new String[]{"编号","姓名","年龄","性别"}; try { OutputStream out = response.getOutputStream(); exportExcel(excelName,headers, getList(), out,"yyyy-MM-dd"); out.close(); System.out.println("excel导出成功!"); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } /** * * @Description: 模拟从数据库中查询出来的数据,一般是数据表中的几列 * @Auther: lujinyong * @Date: 2013-8-22 下午2:53:58 */ public List<Map<String,Object>> getList(){ List<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); for(int i = 0; i<100;i++){ Map<String,Object> map = new HashMap<String, Object>(); map.put("number",1000+i); map.put("name", "张三"+i); int age = (int)(Math.random()*100); do{ age = (int)(Math.random()*100); }while(age<10||age>15); map.put("age", age); map.put("sex", age%2==0?0:1);//获得随机性别 list.add(map); } return list; } /** * * @Description: 生成excel并导出到客户端(本地) * @Auther: lujinyong * @Date: 2013-8-22 下午3:05:49 */ protected void exportExcel(String title,String[] headers,List mapList,OutputStream out,String pattern){ //声明一个工作簿 HSSFWorkbook workbook = new HSSFWorkbook(); //生成一个表格 HSSFSheet sheet = workbook.createSheet(title); //设置表格默认列宽度为15个字符 sheet.setDefaultColumnWidth(20); //生成一个样式,用来设置标题样式 HSSFCellStyle style = workbook.createCellStyle(); //设置这些样式 style.setFillForegroundColor(HSSFColor.SKY_BLUE.index); style.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style.setBorderBottom(HSSFCellStyle.BORDER_THIN); style.setBorderLeft(HSSFCellStyle.BORDER_THIN); style.setBorderRight(HSSFCellStyle.BORDER_THIN); style.setBorderTop(HSSFCellStyle.BORDER_THIN); style.setAlignment(HSSFCellStyle.ALIGN_CENTER); //生成一个字体 HSSFFont font = workbook.createFont(); font.setColor(HSSFColor.VIOLET.index); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //把字体应用到当前的样式 style.setFont(font); // 生成并设置另一个样式,用于设置内容样式 HSSFCellStyle style2 = workbook.createCellStyle(); style2.setFillForegroundColor(HSSFColor.LIGHT_YELLOW.index); style2.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND); style2.setBorderBottom(HSSFCellStyle.BORDER_THIN); style2.setBorderLeft(HSSFCellStyle.BORDER_THIN); style2.setBorderRight(HSSFCellStyle.BORDER_THIN); style2.setBorderTop(HSSFCellStyle.BORDER_THIN); style2.setAlignment(HSSFCellStyle.ALIGN_CENTER); style2.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER); // 生成另一个字体 HSSFFont font2 = workbook.createFont(); font2.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL); // 把字体应用到当前的样式 style2.setFont(font2); //产生表格标题行 HSSFRow row = sheet.createRow(0); for(int i = 0; i<headers.length;i++){ HSSFCell cell = row.createCell(i); cell.setCellStyle(style); HSSFRichTextString text = new HSSFRichTextString(headers[i]); cell.setCellValue(text); } for (int i=0;i<mapList.size();i++) { Map<String,Object> map = (Map<String, Object>) mapList.get(i); row = sheet.createRow(i+1); int j = 0; Object value = null; value=map.get("number"); if(value instanceof Integer){ row.createCell(j++).setCellValue(String.valueOf(value)); } row.createCell(j++).setCellValue(map.get("name").toString()); value=map.get("age"); if(value instanceof Integer){ row.createCell(j++).setCellValue(String.valueOf(value)); } row.createCell(j++).setCellValue("0".equals(map.get("sex").toString())?"女":"男"); } try { workbook.write(out); } catch (IOException e) { e.printStackTrace(); } } }
第四步:将工程发布的tomcat中,运行,打开浏览器访问。如何知道访问的地址呢?打开WEB-INF下面的web.xml文件,我的是MyEclipse创建servlet时自动配置好的,代码如下,红色部分很关键,就是你访问网址最后面的两个excelExport是你的项目名称:
[url]
http://localhost:8080/excelExport/servlet/ExcelExportServlet
[/url]
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <display-name></display-name> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>ExcelExportServlet</servlet-name> <servlet-class>com.lujinyong.servlet.ExcelExportServlet</servlet-class> </servlet> <servlet-name>ExcelExportServlet</servlet-name> <url-pattern>[color=red]/servlet/ExcelExportServlet[/color]</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
在浏览器中打开即可该网址就可以将“学生信息表.xls”下载下来。
转载请注明出处:http://kevin12.iteye.com/blog/1929341
发表评论
-
BigDecimal实现double精度计算
2014-01-07 16:08 1142java中的float 和double类型会发生精度丢失,为了 ... -
could not read column value from result set: NAME5_1_; 流已被关闭
2013-10-11 15:53 2152最近做流程项目数据库是oracle,获取流程处理人时候出现下面 ... -
Dialect does not support identity key generation
2013-10-10 12:01 3018链接网址:http://kevin12.i ... -
struts2文件下载文件中文名称乱码解决
2013-09-26 14:57 3376链接地址:http://kevin12.iteye.com/b ... -
jbpm4 timer 定时器事件
2013-08-14 11:36 2024最近学习了jbpm4.X的定时器事件,下面是一个简单的测试,上 ... -
java中的HashSet
2013-08-01 17:48 1359HashSet集合 :不允许有重复的元素并且HashSet中元 ... -
java 中的NaN 和Infinity
2013-07-12 17:58 2954NaN是Not a Number的缩写,即不是一个数字。它不等 ... -
简单的 java 格式化数字用法
2013-07-11 18:42 1600有些时候将后台的数据显示到前台界面上要有一定的格式,比如,保留 ... -
javax.el.ELException: expression factory class not found
2013-06-27 21:43 2466jbpm4web项目部署流程时候出错: 信息: error ... -
<Context path="/files" docBase="D:\upload"></Context>
2013-06-18 11:36 5907发布到tomcat中的项目有 ... -
could not read column value from result set: DBID_; Column 'DBID_' not found.
2013-03-18 12:58 2222最近做项目,将原来项目中关于jbpm4(流程方面)的功能移到一 ... -
java中的时间排序易错点
2013-03-12 11:42 1180最近做流程项目时候发现,流程日志显示的问题: ... -
jbpm4条件节点表达式的解析
2013-03-07 16:31 1997说明:最近做jbpm4流程项目时,在条件节点中用到表达式了,流 ... -
java解析表达式
2013-03-07 16:21 2063说明:最近做jbpm4流程项目时,在条件节点中用到表达式了,流 ... -
org.hibernate.exception.ConstraintViolationException: could not delete: [org.jbp
2013-02-28 11:18 2016用jbpm4做流程时候将sqlserver数据库改为mysql ... -
mysql数据库遇到:org.hibernate.MappingException: No Dialect mapping for JDBC type: -1
2013-02-26 17:31 1726在做web项目时,用到了mysql数据库和ssh架构,登录系统 ...
相关推荐
在Java编程环境中,导出Excel是一项常见的需求,特别是在数据分析、报表生成或数据交换等领域。本实例将探讨如何利用Apache POI库来实现这一功能。Apache POI是一个开源项目,它提供了读取和写入Microsoft Office...
在这个例子中,我们看到如何使用POI库来将数据从数据库导出到Excel文件中。以下是关于这个话题的详细知识点: 1. **Apache POI**: Apache POI 是一个开源项目,它允许开发人员使用Java读取、写入和修改Microsoft ...
本篇文章将详细介绍如何在Spring MVC项目中使用Apache POI库来实现Excel的导入和导出。 Apache POI是Apache软件基金会的一个开源项目,专门用于读写Microsoft Office格式的文件,包括Excel。在Java中,POI提供了API...
在这个场景中,我们看到如何使用POI来实现一个模板导出Excel的功能,同时包含图片。以下是关键知识点的详细说明: 1. **Apache POI库**:Apache POI是一个开源项目,它提供了Java API来处理Microsoft Office格式的...
在本文中,我们将深入探讨如何使用Servlet来实现文件导出的功能。这个话题对于任何需要与用户交互并提供文件下载服务的Web应用都是至关重要的。 首先,理解Servlet的工作原理至关重要。Servlet是一个Java类,它扩展...
在Java、JSP和JavaScript中实现将统计表格保存为Excel文件是一个常见的需求,尤其是在数据分析和报表展示场景下。以下是一个详细的步骤和示例代码来帮助理解这个过程。 1. **前端JavaScript部分**: JavaScript...
JSP是一种动态网页技术,允许开发者使用Java语言在服务器端处理数据并返回给客户端,通常用于构建交互式的Web应用程序。 首先,我们需要了解JSP的基本概念。JSP是由Sun Microsystems(现已被Oracle收购)开发的一种...
在IT行业中,数据库查询结果的导出到Excel是一种常见的需求,尤其在数据分析、报表生成或者数据备份时。这里我们将详细探讨如何实现这个过程,并重点讨论Java编程语言中的实现方法。 首先,我们需要理解数据库查询...
通过运行此项目,你可以实际体验到EasyPoi在SpringBoot中的使用,以及注解导出Excel的便利性。 总之,EasyPoi在SpringBoot中提供了一种简单高效的方式来处理Excel数据。通过注解,我们可以轻松地将Java对象转换为...
- 使用第三方库(如Apache POI)读取Excel文件数据。 **5.10 使用同步连接** - 在多线程环境中确保数据库连接的安全性。 **5.11 网上投票** - 实现在线投票系统的数据库交互功能。 **5.12 成绩录入查询系统** - ...