- 浏览: 230800 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
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 1069java中的float 和double类型会发生精度丢失,为了 ... -
could not read column value from result set: NAME5_1_; 流已被关闭
2013-10-11 15:53 2077最近做流程项目数据库是oracle,获取流程处理人时候出现下面 ... -
Dialect does not support identity key generation
2013-10-10 12:01 2914链接网址:http://kevin12.i ... -
struts2文件下载文件中文名称乱码解决
2013-09-26 14:57 3285链接地址:http://kevin12.iteye.com/b ... -
jbpm4 timer 定时器事件
2013-08-14 11:36 1976最近学习了jbpm4.X的定时器事件,下面是一个简单的测试,上 ... -
java中的HashSet
2013-08-01 17:48 1319HashSet集合 :不允许有重复的元素并且HashSet中元 ... -
java 中的NaN 和Infinity
2013-07-12 17:58 2831NaN是Not a Number的缩写,即不是一个数字。它不等 ... -
简单的 java 格式化数字用法
2013-07-11 18:42 1550有些时候将后台的数据显示到前台界面上要有一定的格式,比如,保留 ... -
javax.el.ELException: expression factory class not found
2013-06-27 21:43 2394jbpm4web项目部署流程时候出错: 信息: error ... -
<Context path="/files" docBase="D:\upload"></Context>
2013-06-18 11:36 5870发布到tomcat中的项目有 ... -
could not read column value from result set: DBID_; Column 'DBID_' not found.
2013-03-18 12:58 2146最近做项目,将原来项目中关于jbpm4(流程方面)的功能移到一 ... -
java中的时间排序易错点
2013-03-12 11:42 1132最近做流程项目时候发现,流程日志显示的问题: ... -
jbpm4条件节点表达式的解析
2013-03-07 16:31 1909说明:最近做jbpm4流程项目时,在条件节点中用到表达式了,流 ... -
java解析表达式
2013-03-07 16:21 1987说明:最近做jbpm4流程项目时,在条件节点中用到表达式了,流 ... -
org.hibernate.exception.ConstraintViolationException: could not delete: [org.jbp
2013-02-28 11:18 1939用jbpm4做流程时候将sqlserver数据库改为mysql ... -
mysql数据库遇到:org.hibernate.MappingException: No Dialect mapping for JDBC type: -1
2013-02-26 17:31 1626在做web项目时,用到了mysql数据库和ssh架构,登录系统 ...
相关推荐
java实现excel的导入导出(poi详解),经过测试poi效率要比jxl要高很多,特别是数据量大的时候jxl根本无法用肉眼入目,本资源是个可运行项目demo,很有参考价值!
java导出excel POI jar包 java代码地址http://blog.csdn.net/awenluck/article/details/51488537
java_poi实现excel导入导出功能,有详细的注解
基于SpringBoot和POI实现单线程和多线程导出Excel.zip基于SpringBoot和POI实现单线程和多线程导出Excel.zip基于SpringBoot和POI实现单线程和多线程导出Excel.zip基于SpringBoot和POI实现单线程和多线程导出Excel.zip...
java使用POI导出 Excel+图片工具类 ,里面含有poi jar包,只调用接口即可直接保存Excel。使用的时候需先把数据封装,具体包装需根据实际导出数据进行处理。文件demo中只提供包装格式。
java导出excel例子,使用的是poi,可以分sheet导出,可以导出txt
使用apach poi 导出Excel,可直接在项目中使用使用apach poi 导出Excel,可直接在项目中使用使用apach poi 导出Excel,可直接在项目中使用
需要使用JAVA 做EXCEL导出的同学,有问题尽管私信
poi 导出EXCEL 例子 poi 导出EXCEL 例子poi 导出EXCEL 例子poi 导出EXCEL 例子
Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出Java POI EXCEL导入导出...
这个是java用poi操作Excel进行导出,并且可以自动换行
Java Poi 导出excel(支持各种设置字体、颜色、垂直居中)
该实例集成maven开发环境,里面讲解了POI导入和导出Excel表格的基本用法
使用POI筛选字段导出Excel,以及条件查询和指定数据导出
java开发中的列表数据导出成excel格式,这个文档包含了所需的jar包和例子代码。
文件包含了 1.POI导入导出的工具类; 2.图片URL导出成图片文件; 3.导出excel和图片压缩包格式文件。 如果下载后有任何问题,可以联系我哦!
JAVA POI导出EXCEL代码
Java导出excel工具详细介绍(POI 和 EasyExcel),各种复杂需求情况的导出,代码拿来即可运行,各种情况的例子以及通用工具类都在里面,主要内容如下: 1. 第一部门:详细介绍POI使用以及完成各种复杂的Excel的导出...
这是一个Excel表格导入与导出功能,Excel美化,并且添加了进度条,丢上Eclipse直接运行使用,附带测试数据与说明。Java项目使用maven搭建。