- 浏览: 150662 次
- 性别:
- 来自: 瑟孔达
最新评论
-
haihongxingzi:
妖孽r 写道long呢 已添加long和string的转换!
java中 String,Long,int类型转换 -
妖孽r:
long呢
java中 String,Long,int类型转换 -
h140465:
oracle创建同义词以及赋予权限 -
haihongxingzi:
dukun 写道grant all on b to a1
...
oracle创建同义词以及赋予权限 -
dukun:
grant all on b to a1
我测试的 o ...
oracle创建同义词以及赋予权限
我用的是poi3.6的包!
1.java类 ExportExcel
2.model类
3.jsp页面调用
1.java类 ExportExcel
package com.htjy.excel.common; import java.io.BufferedInputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collection; import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.regex.Matcher; import java.util.regex.Pattern; import javax.swing.JOptionPane; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFCellStyle; import org.apache.poi.hssf.usermodel.HSSFClientAnchor; import org.apache.poi.hssf.usermodel.HSSFComment; import org.apache.poi.hssf.usermodel.HSSFFont; import org.apache.poi.hssf.usermodel.HSSFPatriarch; 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; import com.htjy.excel.model.VCxtjHyzjcx; /** * * 利用开源组件POI3.0.2动态导出EXCEL文档 * * 转载时请保留以下信息,注明出处! * * @author leno * * @version v1.0 * * @param <T> * 应用泛型,代表任意一个符合javabean风格的类 * * 注意这里为了简单起见,boolean型的属性xxx的get器方式为getXxx(),而不是isXxx() * * byte[]表jpg格式的图片数据 * */ public class ExportExcel<T> { public void exportExcel(Collection<T> dataset, OutputStream out) { exportExcel("测试POI导出EXCEL文档", null, dataset, out, "yyyy-MM-dd"); } public void exportExcel(String[] headers, Collection<T> dataset,OutputStream out) { exportExcel("测试POI导出EXCEL文档", headers, dataset, out, "yyyy-MM-dd"); } public void exportExcel(String[] headers, Collection<T> dataset,OutputStream out, String pattern) { exportExcel("测试POI导出EXCEL文档", headers, dataset, out, pattern); } /** * * 这是一个通用的方法,利用了JAVA的反射机制,可以将放置在JAVA集合中并且符号一定条件的数据以EXCEL 的形式输出到指定IO设备上 * * * * @param title * * 表格标题名 * * @param headers * * 表格属性列名数组 * * @param dataset * * 需要显示的数据集合,集合中一定要放置符合javabean风格的类的对象。此方法支持的 * * javabean属性的数据类型有基本数据类型及String,Date,byte[](图片数据) * * @param out * * 与输出设备关联的流对象,可以将EXCEL文档导出到本地文件或者网络中 * * @param pattern * * 如果有时间数据,设定输出格式。默认为"yyy-MM-dd" * */ @SuppressWarnings("unchecked") public void exportExcel(String title, String[] headers, Collection<T> dataset, OutputStream out, String pattern) { // 声明一个工作薄 HSSFWorkbook workbook = new HSSFWorkbook(); // 生成一个表格 HSSFSheet sheet = workbook.createSheet(title); // 设置表格默认列宽度为15个字节 sheet.setDefaultColumnWidth((short) 15); // 生成一个样式 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.setFontHeightInPoints((short) 12); 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); // 声明一个画图的顶级管理器 HSSFPatriarch patriarch = sheet.createDrawingPatriarch(); // 定义注释的大小和位置,详见文档 HSSFComment comment = patriarch.createComment(new HSSFClientAnchor(0,0, 0, 0, (short) 4, 2, (short) 6, 5)); // 设置注释内容 comment.setString(new HSSFRichTextString("可以在POI中添加注释!")); // 设置注释作者,当鼠标移动到单元格上是可以在状态栏中看到该内容. comment.setAuthor("leno"); // 产生表格标题行 HSSFRow row = sheet.createRow(0); for (short i = 0; i < headers.length; i++) { HSSFCell cell = row.createCell(i); cell.setCellStyle(style); HSSFRichTextString text = new HSSFRichTextString(headers[i]); cell.setCellValue(text); } // 遍历集合数据,产生数据行 Iterator<T> it = dataset.iterator(); int index = 0; while (it.hasNext()) { index++; row = sheet.createRow(index); T t = (T) it.next(); // 利用反射,根据javabean属性的先后顺序,动态调用getXxx()方法得到属性值 Field[] fields = t.getClass().getDeclaredFields(); for (short i = 0; i < fields.length; i++) { HSSFCell cell = row.createCell(i); cell.setCellStyle(style2); Field field = fields[i]; String fieldName = field.getName(); String getMethodName = "get" + fieldName.substring(0, 1).toUpperCase() + fieldName.substring(1); try { Class tCls = t.getClass(); Method getMethod = tCls.getMethod(getMethodName, new Class[] {}); Object value = getMethod.invoke(t, new Object[] {}); // 判断值的类型后进行强制类型转换 String textValue = null; // if (value instanceof Integer) { // // int intValue = (Integer) value; // // cell.setCellValue(intValue); // // } else if (value instanceof Float) { // // float fValue = (Float) value; // // textValue = new HSSFRichTextString( // // String.valueOf(fValue)); // // cell.setCellValue(textValue); // // } else if (value instanceof Double) { // // double dValue = (Double) value; // // textValue = new HSSFRichTextString( // // String.valueOf(dValue)); // // cell.setCellValue(textValue); // // } else if (value instanceof Long) { // // long longValue = (Long) value; // // cell.setCellValue(longValue); // // } if (value instanceof Boolean) { boolean bValue = (Boolean) value; textValue = "男"; if (!bValue) { textValue = "女"; } }else if (value instanceof Date) { Date date = (Date) value; SimpleDateFormat sdf = new SimpleDateFormat(pattern); textValue = sdf.format(date); } else if (value instanceof byte[]) { // 有图片时,设置行高为60px; row.setHeightInPoints(60); // 设置图片所在列宽度为80px,注意这里单位的一个换算 sheet.setColumnWidth(i, (short) (35.7 * 80)); // sheet.autoSizeColumn(i); byte[] bsValue = (byte[]) value; HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 1023, 255, (short) 6, index, (short) 6, index); anchor.setAnchorType(2); patriarch.createPicture(anchor, workbook.addPicture( bsValue, HSSFWorkbook.PICTURE_TYPE_JPEG)); }else if (value instanceof Double) { double dValue = (Double) value; textValue =String.valueOf(dValue); cell.setCellValue(textValue); } else { // 其它数据类型都当作字符串简单处理 textValue = String.valueOf(value); } // 如果不是图片数据,就利用正则表达式判断textValue是否全部由数字组成 if (textValue != null) { Pattern p = Pattern.compile("^\\d+(\\.\\d+)?$"); Matcher matcher = p.matcher(textValue); if (matcher.matches()) { // 是数字当作double处理 cell.setCellValue(Double.parseDouble(textValue)); } else { HSSFRichTextString richString = new HSSFRichTextString(textValue); HSSFFont font3 = workbook.createFont(); font3.setColor(HSSFColor.BLUE.index); richString.applyFont(font3); cell.setCellValue(richString); } } } catch (SecurityException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } finally { // 清理资源 } } } try { workbook.write(out); } catch (IOException e) { e.printStackTrace(); } } }
2.model类
引用
package com.htjy.excel.model;
/**
* VCxtjHyzjcxId entity.
*
* @author MyEclipse Persistence Tools
*/
public class VCxtjHyzjcx implements java.io.Serializable {
// Fields
private String khbm;
private String khjc;
private Double dqkyzj;
private Double dqzyzj;
private Double dqfxkzdjzj;
private Double drxjrje;
private Double drxjcje;
// Constructors
/** default constructor */
public VCxtjHyzjcx() {
}
/** minimal constructor */
public VCxtjHyzjcx(String khbm,String khjc,Double dqkyzj,Double dqzyzj,Double dqfxkzdjzj,Double drxjrje,Double drxjcje) {
this.khbm = khbm;
this.khjc = khjc;
this.dqkyzj = dqkyzj;
this.dqzyzj = dqzyzj;
this.dqfxkzdjzj = dqfxkzdjzj;
this.drxjrje = drxjrje;
this.drxjcje = drxjcje;
}
public String getKhbm() {
return khbm;
}
public void setKhbm(String khbm) {
this.khbm = khbm;
}
public String getKhjc() {
return khjc;
}
public void setKhjc(String khjc) {
this.khjc = khjc;
}
public Double getDqkyzj() {
return dqkyzj;
}
public void setDqkyzj(Double dqkyzj) {
this.dqkyzj = dqkyzj;
}
public Double getDqzyzj() {
return dqzyzj;
}
public void setDqzyzj(Double dqzyzj) {
this.dqzyzj = dqzyzj;
}
public Double getDqfxkzdjzj() {
return dqfxkzdjzj;
}
public void setDqfxkzdjzj(Double dqfxkzdjzj) {
this.dqfxkzdjzj = dqfxkzdjzj;
}
public Double getDrxjrje() {
return drxjrje;
}
public void setDrxjrje(Double drxjrje) {
this.drxjrje = drxjrje;
}
public Double getDrxjcje() {
return drxjcje;
}
public void setDrxjcje(Double drxjcje) {
this.drxjcje = drxjcje;
}
}
/**
* VCxtjHyzjcxId entity.
*
* @author MyEclipse Persistence Tools
*/
public class VCxtjHyzjcx implements java.io.Serializable {
// Fields
private String khbm;
private String khjc;
private Double dqkyzj;
private Double dqzyzj;
private Double dqfxkzdjzj;
private Double drxjrje;
private Double drxjcje;
// Constructors
/** default constructor */
public VCxtjHyzjcx() {
}
/** minimal constructor */
public VCxtjHyzjcx(String khbm,String khjc,Double dqkyzj,Double dqzyzj,Double dqfxkzdjzj,Double drxjrje,Double drxjcje) {
this.khbm = khbm;
this.khjc = khjc;
this.dqkyzj = dqkyzj;
this.dqzyzj = dqzyzj;
this.dqfxkzdjzj = dqfxkzdjzj;
this.drxjrje = drxjrje;
this.drxjcje = drxjcje;
}
public String getKhbm() {
return khbm;
}
public void setKhbm(String khbm) {
this.khbm = khbm;
}
public String getKhjc() {
return khjc;
}
public void setKhjc(String khjc) {
this.khjc = khjc;
}
public Double getDqkyzj() {
return dqkyzj;
}
public void setDqkyzj(Double dqkyzj) {
this.dqkyzj = dqkyzj;
}
public Double getDqzyzj() {
return dqzyzj;
}
public void setDqzyzj(Double dqzyzj) {
this.dqzyzj = dqzyzj;
}
public Double getDqfxkzdjzj() {
return dqfxkzdjzj;
}
public void setDqfxkzdjzj(Double dqfxkzdjzj) {
this.dqfxkzdjzj = dqfxkzdjzj;
}
public Double getDrxjrje() {
return drxjrje;
}
public void setDrxjrje(Double drxjrje) {
this.drxjrje = drxjrje;
}
public Double getDrxjcje() {
return drxjcje;
}
public void setDrxjcje(Double drxjcje) {
this.drxjcje = drxjcje;
}
}
3.jsp页面调用
<%@page contentType="text/html; charset=GBK"%> <%@ page import="java.sql.*" %> <%@ page import="java.util.*"%> <%@ page import="java.text.*"%> <%@ page import="com.htjy.cxtj.*,com.htjy.excel.common.*,com.htjy.excel.model.VCxtjHyzjcx"%> <%@ page import=" java.io.BufferedInputStream, java.io.FileInputStream, java.io.FileNotFoundException, java.io.FileOutputStream, java.io.IOException, java.io.OutputStream, java.lang.reflect.Field, java.lang.reflect.InvocationTargetException, java.lang.reflect.Method, java.text.SimpleDateFormat, java.util.ArrayList, java.util.Collection, java.util.Date, java.util.Iterator, java.util.List, java.util.regex.Matcher, java.util.regex.Pattern, javax.swing.JOptionPane "%> <%@ page import="org.apache.poi.hssf.usermodel.HSSFCell, org.apache.poi.hssf.usermodel.HSSFCellStyle, org.apache.poi.hssf.usermodel.HSSFClientAnchor, org.apache.poi.hssf.usermodel.HSSFComment, org.apache.poi.hssf.usermodel.HSSFFont, org.apache.poi.hssf.usermodel.HSSFPatriarch, org.apache.poi.hssf.usermodel.HSSFRichTextString, org.apache.poi.hssf.usermodel.HSSFRow, org.apache.poi.hssf.usermodel.HSSFSheet, org.apache.poi.hssf.usermodel.HSSFWorkbook, org.apache.poi.hssf.util.HSSFColor "%> <% Hyzb_HyzjList list = new Hyzb_HyzjList(request,true); ArrayList<ResultSetHashMap> rs = list.getResultSetList(); java.text.SimpleDateFormat formatter = new java.text.SimpleDateFormat("yyyy-MM-dd"); java.util.Date currentTime = new java.util.Date();//得到当前系统时间 String str_date1 = formatter.format(currentTime); //将日期时间格式化 //excel export response.setContentType("octets/stream"); response.addHeader("Content-Disposition", "attachment;filename=khzjcx("+str_date1+").xls"); ExportExcel<VCxtjHyzjcx> ex = new ExportExcel<VCxtjHyzjcx>(); String[] headers = { "客户编码", "客户名称", "可用资金", "占用资金", "风控冻结","当日入金","当日出金" }; List<VCxtjHyzjcx> dataset = new ArrayList<VCxtjHyzjcx>(); for(int i = 0 ; i < rs.size() ; i++) { ResultSetHashMap map = (ResultSetHashMap)rs.get(i); dataset.add(new VCxtjHyzjcx(map.getString("KHBM"),map.getString("KHJC"),map.getDouble("DQKYZJ"),map.getDouble("DQZYZJ"), map.getDouble("DQFXKZDJZJ"), map.getDouble("DRXJRJE"),map.getDouble("DRXJCJE"))); } OutputStream out1 = response.getOutputStream(); // OutputStream out1 = new FileOutputStream("E:\\客户资金查询.xls"); ex.exportExcel(headers, dataset, out1); out1.close(); %>
发表评论
-
java.net.SocketException: Software caused connection abort: recv failed
2011-09-07 14:20 1698software caused connection abor ... -
连接池(转)
2011-03-29 10:00 846以下三种连接都是以连接MySQl为例。 <!-- J ... -
myeclipse配置 cvs
2011-03-03 09:41 1846下载cvsNt地址 http://www.mar ... -
url传递中文乱码解决方法
2010-06-13 09:47 1272URL中的中文问题 对于直接通过在URL ... -
tomcat 配置虚拟目录
2010-05-24 16:08 1799==================配置方法========= ... -
poi生成excel经典实现(转载)
2010-05-24 14:24 1945本文来自CSDN博客,http://blog.csdn.net ... -
jfreechar 中文帮助
2010-04-25 14:43 1049转 JFreeChart类: void setAntiA ... -
jfreechar 简介
2010-04-25 14:29 1636核心类主要有: org.jfre ... -
jfreechar一些关于AXIS类的方法:
2010-04-25 14:27 1585一些关于AXIS类的方法: ... -
学习jfreechar必看的API
2010-04-25 14:23 1147学JFreeChart不得不看的中 ... -
flex builder 的can not locate the required version of the Flash Player错误
2009-12-14 11:52 1848每次在Eclipse里运行都报错: Flex Builder ... -
JSP如何防范SQL注入攻击
2009-04-01 14:59 1190SQL注入攻击的总体思路: 发现SQL注入位置; 判断服务器类 ... -
MyEclipse6.1+Weblogic10配置ssh
2009-03-26 15:44 2551WebLogic10 | MyEclipse |Eclipse ... -
WebLogic10 | MyEclipse |Eclipse 配置
2009-03-25 19:37 2070安装 WebLogic 比较容易,在这里就不再累述了,大家可以 ... -
weblogic配置 eclipse中的配置 weblogic中项目的部署
2009-03-25 16:43 12691http://www.cnitblog.com/jackmis ... -
将SSH项目部署到Weblogic90
2009-03-25 16:21 12551.创建一个新的服务器域 2.由于hibernate与web ... -
当在weblogic里面部署ssh项目的时出现org.hibernate.hql.ast.hqlto
2009-03-25 16:20 1364这个问题一般出现在weblogic8以下的服务器里,原因是hi ... -
myeclipse6.0,weblogic9.0安装配置使用
2009-03-25 11:34 1331安装WebLogic比较容易,在这里就我就不多说了。现在着重说 ... -
input及其属性的用法
2009-03-24 11:44 2747Input表示Form表单中的一种输入对象,其又随Type ... -
程序员的人生路
2009-03-24 11:34 8711. 高级程序员-架构师 2. 售前 - ...
相关推荐
1.java使用poi生成excel插入图表曲线 2.demo包含完成jar包 3.主要用途是过滤数据自动生成曲线图
POI生成Excel POI读取Excel java操作Excel Servlet生成Excel web项目,包含含读取Excel与生成Excel方法
使用poi生成Excel所需要的jar包,poi-3.9.jar
Java POI 生成Excel时显示货币格式
apache软件基金 poi组件 轻松实现,生成excel报表
Demo1 把数据写到excel表中, Demo2 在Demo1生成的excel中添加新的数据 Demo3 和Demo1一样生成一个excel表格 剩下的那个是从数据库取数据放到excel表格
poi excel poi excel poi excel poi excel poi excel poi excel poi excel poi excel
Java用POI实现根据Excel表格模板生成新的Excel并实现数据输出...
java代码调用poi架包, 把数据生成excel文件, 导出到文件
poi生成excel及合并单元格示例,详见文章http://blog.csdn.net/geloin/article/details/17219885
POI操作Excel生成水印,该水印其实就是一个图片,该代码是将文字生成图片,再将图片变成水印的。
平时工作中用到的一些技术点,拿出来和大家共享一下。 有些功能比较粗糙,如果大家有更加完善的示例或建议,欢迎交流。 1、jpg图片缩略图:ImageUtil ...2、poi创建excel:CDSHdlReport 3、计算表达式求值:Cal
使用poi在excel中生成各种常见的图像,比如饼状图(普通饼状图、三D图,环状体、折线图、柱状图、等~~)
JAVA使用POI生成简单的Excel文件并下载,并设置了字体大小。
poi生成excel报表合并列和列,按规范构造数据集就可以,mergeRow 合并行,genMergeCellByContent 合并头
poi 生成excel模板,下拉选项,批注。现在有模板中插入下拉信息
poi 导出EXCEL 例子 poi 导出EXCEL 例子poi 导出EXCEL 例子poi 导出EXCEL 例子
使用apach poi 导出Excel,可直接在项目中使用使用apach poi 导出Excel,可直接在项目中使用使用apach poi 导出Excel,可直接在项目中使用
java使用POI导出 Excel+图片工具类 ,里面含有poi jar包,只调用接口即可直接保存Excel。使用的时候需先把数据封装,具体包装需根据实际导出数据进行处理。文件demo中只提供包装格式。
java poi 根据excel模板生成excel文件,利用poijar包根据已有excel模板,生成基于模板的新文件,jar包也在压缩包内,导入即可使用。