导包:
<!-- poi依赖的相关jar包 -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>3.9</version>
</dependency>
jsp页面中datagrid显示的数据及echarts图表显示的代码(包含在form表单中),算了,还是贴上整个jsp算了。
<
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ include file="/includes/taglibs.jsp"%>
<%--============================================================================
■页面标题:统计分析页面:/webview/eqkDemo/statisticAnalysis/findStatistic.jsp
■页面说明:... ...
============================================================================--%>
<form name="统计分析表单" action="#" class="jeasy-panel" data-options="split:true,border:false" style="width: 100%; padding: 5px;">
<fieldset class="form-field-find push-bottom">
<legend>统计分析</legend>
<table width="100%" border="0">
<tr>
<td>
<label>行政区划:</label>
<select class="jeasy-combobox" name="areaId" data-options="editable:false,url:'${ctx}/common/combobox/findBaseAreaId/4401'"></select>
<label style="padding-left: 120px;">示范评级:</label>
<select class="jeasy-combobox" name="cmtyLevel" data-options="editable:false,url:'${ctx}/common/combobox/findDicInfoId/levelType'"></select>
</td>
</tr>
<tr>
<td align="right">
<a href="#" title="导出" class="jeasy-linkbutton" iconCls="icon-add">导出</a>
<a href="#" title="查询" class="jeasy-linkbutton" iconCls="icon-find">查询</a>
<a href="#" title="清空" class="jeasy-linkbutton" iconCls="icon-clear">清空</a>
</td>
</tr>
</table>
</fieldset>
<table title="显示统计分析列表" width="100%" data-options='url:"${ctx}/statis/statisticsAnalyze"'></table>
<!-- EChart图表展示 -->
<div style="margin-top:5px;margin-bottom: 10px;">
<div title="防震减灾示范-图" class="jeasy-panel" style="width: 69%;">
<div id="FZJZchart01" style="height: 350px;width: 96%;margin: 10px auto;"></div>
</div>
</div>
</form>
<script type="text/javascript" src="${ctx}/webview/eqkDemo/statisticAnalysis/script/jeasy.statisticAnalysis.js" charset="UTF-8"></script>
<script type="text/javascript" src="${ctx}/resources/scripts/DateUtils.js" charset="UTF-8"></script>
<script type="text/javascript" src="${ctx}/resources/scripts/ECharts/echarts-all.min.js"></script>
<script type="text/javascript">
/**
* 系统页面加载后初始化处理.
*/
$(function() {
$("table[title=显示统计分析列表]").statisticAnalysis("findStatisticAnalysis");
//获取图表数据
var data = getEchartData("form[name=统计分析表单]","${ctx}/statis/findStatisChartCol");
var myEcharts = echarts.init(document.getElementById("FZJZchart01"));
playChartCol(myEcharts, "示范单位统计", '类别', '数量', data);
$("form[name=统计分析表单] a[title=查询]").on("click", function() {
$("table[title=显示统计分析列表]").statisticAnalysis("reload");
var data = getEchartData("form[name=统计分析表单]","${ctx}/statis/findStatisChartCol");
playChartCol(myEcharts, "防震减灾汇总", '类别', '数量', data);
});
$("form[name=统计分析表单] a[title=导出]").on("click", function() {
$("table[title=显示统计分析列表]").statisticAnalysis("deriveData",{myEcharts:myEcharts});
});
$("form[name=统计分析表单] a[title=清空]").on("click", function() {
$("form[name=统计分析表单]").core("clear");
});
});
</script>
JS页面:::
JEasy.namespace('com.gzzn.jeasy');
/**
* ! jeasy.statisticAnalysis.js
*
* @note: 防震减灾控制类.
* @author: guangwen zhou
* --------------------------------------------------------------------------------
*/
;jQuery(function($) {
/** --------------------------------构造类与方法---------------------------------- */
/**
* 系统基础工程构造方法类
*/
com.gzzn.jeasy.StatisticAnalysis = function(element, options) {
// 调用父类构造方法.
com.gzzn.jeasy.StatisticAnalysis.superclass.constructor.call(this, element, options);
};
/**
* 系统继承并重写基类方法.
*/
JEasy.extend(com.gzzn.jeasy.StatisticAnalysis, com.gzzn.jeasy.Core, {
init: function() {
// 类实例化只有继承方法,没有自身方法.
}
});
/**
* 初始化基础工程列表方法.
*/
com.gzzn.jeasy.StatisticAnalysis.prototype.findStatisticAnalysis = function(element, params) {
var $this=this;
$(element).datagrid({
singleSelect:false,
pageSize:6,
columns:[[
{field:'demoName',title:'防震减灾示范',width:'31%',align:"center"},
{field:'num',title:'统计数量',width:'18%',align:"center"},
{field:'createdTime',title:'统计时间',width:'18%',align:"center"},
// {field:'opt',title:'操作',width:200,align:"center",formatter:function(value,row){
// // button 定义
// var buttons=[{title:"查看",iconCls:"icon-find",data:{id:row.engrId}},
// {title:"修改",iconCls:"icon-edit",data:{id:row.engrId}},
// {title:"删除",iconCls:"icon-delete",data:{id:row.engrId}}];
// // 生成操作buttons
// return $this.datagridBtnAppend(element,{buttons:buttons});
// }}
]],
onLoadSuccess: function(data){
if(data.rows.length==0){
$.messager.error("错误信息", "数据查询失败,请联系管理员!");
}
},
});
};
/**
* 防震减灾统计分析查询方法.
* @param element
* @param params
*/
com.gzzn.jeasy.StatisticAnalysis.prototype.reload = function(element, params) {
$(element).datagrid('reload',{
areaId:$("form[name=统计分析表单]").find($('input[name=areaId]')).val(),
cmtyLevel:$("form[name=统计分析表单]").find($('input[name=cmtyLevel]')).val()
});
};
/*************************************接口监控数据导出方法**************************************************
* @author guangwen zhou
* */
com.gzzn.jeasy.StatisticAnalysis.prototype.deriveData = function(element, params) {
var $this=this;
var imgURL = params.myEcharts.getDataURL('png');//获取base64编码
var areaId=$("form[name=统计分析表单]").find($('input[name=areaId]')).val();
var cmtyLevel=$("form[name=统计分析表单]").find($('input[name=cmtyLevel]')).val();
var url=JEasy.context+"/statis/deriveData";
var html="<form action='"+ url +"' method='post' name='attachDonwForm' enctype='multipart/form-data' target='attachDonwForm'>" +
"<input type='hidden' name='areaId' />" +
"<input type='hidden' name='cmtyLevel' />" +
"<input type='hidden' type='text' name='files' class='jeasy-filebox filebox-long jeasy-validatebox' />" +
"</form><iframe name='attachDonwForm' style='display:none;' />";
$("body").append($(html));
$("form[name='attachDonwForm']").attr("action",url);
$("form[name='attachDonwForm'] input[name='areaId']").val(areaId);
$("form[name='attachDonwForm'] input[name='cmtyLevel']").val(cmtyLevel);
$("form[name='attachDonwForm'] input[name='files']").val(imgURL);
$("form[name='attachDonwForm']").form("submit");
$("form[name=attachDonwForm]").remove();
$("iframe[name=attachDonwForm]").remove();
};
/** --------------------------------对象初始化绑定-------------------------------- */
/**
* 系统基础工程组件
*/
$.fn.statisticAnalysis = function(method, options) {
// 系统处理之前显示进度条.
var window = $.messager.progress({title:"加载提示", msg:"正在处理中,请稍后..."});
try {
return this.each(function() {
// 初始化系统参数信息.
options = $.extend({}, $.fn.statisticAnalysis.defaults, options);
// 初始化绑定目标方法.
$.data(this, options.event, method);
// 初始化绑定目标对象.
var target = $.data(this, options.name);
if (!target) {
$.data(this, options.name, (target = new com.gzzn.jeasy.StatisticAnalysis(this, options)));
}
// 系统调用目标方法.
if (typeof method == 'string') {
target[method](this, options);
}
});
} finally {
// 系统处理之后关闭进度条.
window.panel('close');
}
};
/**
* 系统基础工程默认参数
*/
$.fn.statisticAnalysis.defaults = $.extend($.fn.core.defaults, {
name : 'jeasy.statisticAnalysis',
onBeforeLoad : function(target, args) { },
onLoadSuccess : function(target, args) { },
onLoadError : function(target, args) { }
});
});
function getEchartData(form, url){
var data = null;
$.ajax({
type:"POST",
url: url,
async:false,
data: {
areaId:$(form).find('input[name=areaId]').val(),
cmtyLevel:$(form).find('input[name=cmtyLevel]').val()
},
success:function(result){
data = result;
},
error:function(){
alert("系统响应异常!");
},
dataType:'json'
});
return data;
}
/**
* 展示柱状图
* playChartCol(myChart, "灾情汇总", '数量', '类别', eChartDto)
* @param myChart
* @param titleText 图表标题
* @param xAxisName 图表X轴名称
* @param yAxisName 图表Y轴名称
* @param eChartDto 图表数据
*/
function playChartCol(myChart, titleText, xAxisName, yAxisName, eChartDto){
myChart.setOption({
// backgroundColor: '#EEEED1',//背景色
title : {
text: titleText,
},
tooltip : {//鼠标悬浮提示文字
trigger: 'axis'
},
toolbox: {//右上角工具箱
show : true,
feature : {
restore : {show: true},
saveAsImage : {show: true}
}
},
//calculable : true,//可以拖拽
xAxis : [
{
name : xAxisName,
type : 'category',
data : ['地震安全示范社区数','地震减灾科普示范学校数','示范社区数']
}
],
yAxis : [
{
name : yAxisName,
type : 'value'
}
],
series : [
{
name : yAxisName,
type:'bar',
data:eChartDto,
barWidth : 60,//柱图宽度
itemStyle:{
normal:{
color:'#EE7621',
label:{show:true},
textStyle:{
color:"#ffffff",
fontSize:22
}
},//柱体上方数据显示
emphasis:{label:{show:true}}
},
}
]
});
}
导出到Excel的类方法(import sun.misc.BASE64Decoder; 这个包是解密包,Java自带的,不需要写依赖,不过要自己写这个引用包,拷贝放到类里就好!)
/***
* 导出数据、图片到Excel
* @param dto
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/deriveData", method = RequestMethod.POST)
public @ResponseBody List<StatisticAnalysisDto> deriveData(StatisticAnalysisDto dto,HttpServletRequest request,
HttpServletResponse response){
logger.info("进入->查询打印的防震减灾数据");
List<StatisticAnalysisDto> lists = new ArrayList<StatisticAnalysisDto>();
String message = "导出失败";
try {
/***
* 统计出地震安全示范社区、地震减灾科普示范学校、示范社区的数量,并导入Excel,
*/
StringBuilder hql = new StringBuilder();
StringBuilder hq2 = new StringBuilder();
StringBuilder hq3 = new StringBuilder();
//查询语句
hql.append("from DemoCommunityInfo where $1 and $2 ");
hq2.append("from DemoSchoolInfo where $1 and $2 ");
hq3.append("from DemonArea where $1 and $2 ");
//设置查询条件
String[] regulars1 = new String[]{"areaId = ?"," cmtyLevel = ?"};
String[] regulars2 = new String[]{"areaId = ?"," schlLevel = ?"};
String[] regulars3 = new String[]{"areaLevel = ?"," demonyLevel = ?"};
/**
* 设置查询参数
*/
List<Object> values = new ArrayList<Object>();
values.add(StringSupport.mkEqual(dto.getAreaId()));
values.add(StringSupport.mkEqual(dto.getCmtyLevel()));
List<StatisticAnalysisDto> dtoList1 = DBService.findEntities(hql.toString(), regulars1, values.toArray());
List<StatisticAnalysisDto> dtoList2 = DBService.findEntities(hq2.toString(), regulars2, values.toArray());
List<StatisticAnalysisDto> dtoList3 = DBService.findEntities(hq3.toString(), regulars3, values.toArray());
StatisticAnalysisDto newDto1 = new StatisticAnalysisDto();
StatisticAnalysisDto newDto2 = new StatisticAnalysisDto();
StatisticAnalysisDto newDto3 = new StatisticAnalysisDto();
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd ");
String dateString = formatter.format(currentTime);
newDto1.setDemoName("地震安全示范社区");
newDto1.setNum(dtoList1.size());
newDto1.setCreatedTimeOut(dateString);
newDto2.setDemoName("地震减灾科普示范学校");
newDto2.setNum(dtoList2.size());
newDto2.setCreatedTimeOut(dateString);
newDto3.setDemoName("示范社区");
newDto3.setNum(dtoList3.size());
newDto3.setCreatedTimeOut(dateString);
lists.add(newDto1);
lists.add(newDto2);
lists.add(newDto3);
/**
* 导出查找到的数据
*/
String headers1[]={"序号","示范单位统计","统计数量","统计时间"};
String columnIds[]={"number","demoName","num","createdTimeOut"};
List<Map> mapList=new ArrayList<Map>();
int num=1;
for(StatisticAnalysisDto info:lists){
Map map=new HashMap();
map.put("number", num);
map.put("demoName", info.getDemoName());
map.put("num", info.getNum());
map.put("createdTimeOut", info.getCreatedTimeOut());
// map.put("testResult", "D:/TestFile/1234fangwen.bmp");
mapList.add(map);
num++;
}
HSSFWorkbook workbook = peExcelSupport.exportExcel(mapList, headers1,columnIds, "防震减灾数据图表");
/**
* 创建临时文件
*/
String templatePath="exportFailureData\'grcfData.xls";
String tpFileRealPath = session.getServletContext().getRealPath("/")+"externals\'officeTemp\'"+templatePath;
FileOutputStream fout = new FileOutputStream(tpFileRealPath);
workbook.write(fout);
/***
* 通过echarts64位图片获得字节流,并将流生成图片,然后插入Excel中然后导出Excel
*/
if(null!=dto.getFiles()){
// BASE64Decoder decoder = new BASE64Decoder();
String[] url = dto.getFiles().split(",");
String u = url[1];
BufferedImage bufferImg = null;
FileOutputStream fileOut = null;
//Base64解码
try {
byte[] buffer = new BASE64Decoder().decodeBuffer(u);
//生成图片
String imgPath = session.getServletContext().getRealPath("/")+"externals\'officeTemp\'"+(new Date()).getTime()+".jpg";
FileOutputStream out = new FileOutputStream(imgPath);
out.write(buffer);
// HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet1 = workbook.getSheetAt(0);
HSSFPatriarch patriarch = sheet1.createDrawingPatriarch();
//anchor主要用于设置图片的属性 HSSFClientAnchor(dx1,dy1,dx2,dy2,col1,row1,col2,row2) col1:竖(开始位置),row1:行(开始位置)
HSSFClientAnchor anchor = new HSSFClientAnchor(0, 0, 255, 255,(short) 0, 5, (short) 4, 20);
anchor.setAnchorType(3);
//插入图片
patriarch.createPicture(anchor, workbook.addPicture(buffer, HSSFWorkbook.PICTURE_TYPE_JPEG));
fileOut = new FileOutputStream(tpFileRealPath);
// 写入excel文件
workbook.write(fileOut);
} catch (IOException e) {
e.printStackTrace();
}
}
fout.close();
File templateFile=new File(tpFileRealPath);
if(templateFile.exists()){
fileUpload.downloadFile(templateFile, "防震减灾示范统计表.xls", response, request);
}else{
response.setContentType("text/html;charset=utf-8");
String str = "<script type='text/javascript'>alert('"+message+"');</script>";
try {
response.setCharacterEncoding("UTF-8");
response.setHeader("pragma", "no-cache");
response.setHeader("cache-control", "no-cache");
PrintWriter pw = response.getWriter();
pw.write(str);
pw.flush();
pw.close();
} catch (IOException e) {
e.printStackTrace();
}
}
templateFile.delete();
} catch (Exception e) {
logger.error("001701:查询查询防震减灾信息异常,请联系管理员!" ,e);
dto.setMessage("001701:查询查询防震减灾异常,请联系管理员!");
}
logger.info("退出->查询防震减灾");
return lists;
}
其中需要引用的支持类PoiExportExcelSuport :
package com.gzzn.fzjz.client.support;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.util.List;
import java.util.Map;
import javax.imageio.ImageIO;
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.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 org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.util.CellRangeAddress;
import org.springframework.stereotype.Component;
@Component
public class PoiExportExcelSuport {
/**
*
* 创建人:lxb
* 创建时间:2013-5-29下午05:58:05
* 方法描述:
* @param dataList 列表数据List<Map>
* @param headers 表头
* @param columnId Map集合对应的列名
* @param sheetName
* @return
* @throws Exception
*/
public static HSSFWorkbook exportExcel(List dataList,String headers[],
Object[] columnId,String sheetName) throws Exception {
HSSFWorkbook workbook = null;
BufferedImage bufferImg=null;
try {
// 创建工作簿实例
workbook = new HSSFWorkbook();
// 创建工作表实例
HSSFSheet sheet = workbook.createSheet(sheetName);
HSSFPatriarch patriarch=sheet.createDrawingPatriarch();
// 设置列宽
PoiExportExcelSuport.setSheetColumnWidth(sheet,headers.length);
// 获取样式
HSSFCellStyle style = PoiExportExcelSuport.createTitleStyle(workbook);
// 生成并设置另一个样式
HSSFCellStyle style2 = PoiExportExcelSuport.createContentStyle(workbook);
if (dataList != null && dataList.size() > 0) {
// 创建第一行标题,标题名字的本地信息通过resources从资源文件中获取
HSSFRow row = sheet.createRow(0);// 建立新行
for(int i=0;i<headers.length;i++){
HSSFCell cell = row.createCell(i);
row.setHeight((short)(2*256));
cell.setCellStyle(style);
HSSFRichTextString text = new HSSFRichTextString(headers[i]);
cell.setCellValue(text);
}
// 给excel填充数据
for (int i = 0; i < dataList.size(); i++) {
row = sheet.createRow(i+1);
row.setHeight((short)(2*256));
HSSFCell cell = row.createCell(0);
cell.setCellStyle(style2);
Map map=(Map)dataList.get(i);
for(int j=0;j<columnId.length;j++){
Object value=map.get(columnId[j]);
String colValue="";
if(value!=null){
colValue=value.toString();
}
if(columnId[j].toString().indexOf("image")>=0){//图片的处理
PoiExportExcelSuport.createCell(row, j, style2, HSSFCell.CELL_TYPE_BLANK, "");
ByteArrayOutputStream byteArray=new ByteArrayOutputStream();
bufferImg = ImageIO.read(new File(colValue));
ImageIO.write(bufferImg, "jpg", byteArray);
HSSFClientAnchor anchor = new HSSFClientAnchor(5,5,0,0,(short)5,i+1,(short)6,i+2);
anchor.setAnchorType(2);
patriarch.createPicture(anchor ,
workbook.addPicture(byteArray.toByteArray(),
HSSFWorkbook.PICTURE_TYPE_JPEG));
}else{
PoiExportExcelSuport.createCell(row, j, style2,
HSSFCell.CELL_TYPE_STRING, colValue);
}
}
}
} else {
PoiExportExcelSuport.createCell(sheet.createRow(0), 0, style,
HSSFCell.CELL_TYPE_STRING, "查无资料");
}
} catch (Exception e) {
e.printStackTrace();
}
return workbook;
}
public static HSSFWorkbook exportExcel(List dataList,String headers1[],String headers2[],
Object[] columnId,String sheetName) throws Exception {
HSSFWorkbook workbook = null;
BufferedImage bufferImg=null;
try {
// 创建工作簿实例
workbook = new HSSFWorkbook();
// 创建工作表实例
HSSFSheet sheet = workbook.createSheet(sheetName);
HSSFPatriarch patriarch=sheet.createDrawingPatriarch();
// 设置列宽
PoiExportExcelSuport.setSheetColumnWidth(sheet,6);
// 获取样式
HSSFCellStyle style = PoiExportExcelSuport.createTitleStyle(workbook);
// 生成并设置另一个样式
HSSFCellStyle style2 = PoiExportExcelSuport.createContentStyle(workbook);
if (dataList != null && dataList.size() > 0) {
// 创建第一行标题,标题名字的本地信息通过resources从资源文件中获取
HSSFRow row = sheet.createRow(0);// 建立新行
sheet.addMergedRegion(new CellRangeAddress(0, (short)1, 0, 0));
sheet.addMergedRegion(new CellRangeAddress(0, 0, (short)1, (short)2));
sheet.addMergedRegion(new CellRangeAddress(0, 0, (short)3, (short)4));
sheet.addMergedRegion(new CellRangeAddress(0, (short)1, (short)5, (short)5));
for(int i=0;i<headers1.length;i++){
HSSFCell cell = null;
if(i==0){
cell = row.createCell(0);
}
if(i==1){
cell = row.createCell(1);
}
if(i==2){
cell = row.createCell(3);
}
if(i==3){
cell = row.createCell(5);
}
row.setHeight((short)(2*256));
cell.setCellStyle(style);
HSSFRichTextString text = new HSSFRichTextString(headers1[i]);
cell.setCellValue(text);
}
HSSFRow row2 = sheet.createRow(1);// 建立新行
for(int i=0;i<headers2.length;i++){
HSSFCell cell = row2.createCell(i+1);
row2.setHeight((short)(2*256));
cell.setCellStyle(style);
HSSFRichTextString text = new HSSFRichTextString(headers2[i]);
cell.setCellValue(text);
}
// 给excel填充数据
for (int i = 0; i < dataList.size(); i++) {
row = sheet.createRow(i+2);
row.setHeight((short)(2*256));
HSSFCell cell = row.createCell(0);
cell.setCellStyle(style2);
Map map=(Map)dataList.get(i);
for(int j=0;j<columnId.length;j++){
Object value=map.get(columnId[j]);
String colValue="";
if(value!=null){
colValue=value.toString();
}
if(columnId[j].toString().indexOf("image")>=0){//图片的处理
PoiExportExcelSuport.createCell(row, j, style2, HSSFCell.CELL_TYPE_BLANK, "");
ByteArrayOutputStream byteArray=new ByteArrayOutputStream();
bufferImg = ImageIO.read(new File(colValue));
ImageIO.write(bufferImg, "jpg", byteArray);
HSSFClientAnchor anchor = new HSSFClientAnchor(5,5,0,0,(short)5,i+2,(short)6,i+3);
anchor.setAnchorType(2);
patriarch.createPicture(anchor ,
workbook.addPicture(byteArray.toByteArray(),
HSSFWorkbook.PICTURE_TYPE_JPEG));
}else{
PoiExportExcelSuport.createCell(row, j, style2,
HSSFCell.CELL_TYPE_STRING, colValue);
}
}
}
} else {
PoiExportExcelSuport.createCell(sheet.createRow(0), 0, style,
HSSFCell.CELL_TYPE_STRING, "查无资料");
}
} catch (Exception e) {
e.printStackTrace();
}
return workbook;
}
private static void setSheetColumnWidth(HSSFSheet sheet,int cellNumber) {
// 根据你数据里面的记录有多少列,就设置多少列
for(int i=0;i<cellNumber;i++){
sheet.setColumnWidth(i, 6000);
}
}
// 设置excel的title样式
private static HSSFCellStyle createTitleStyle(HSSFWorkbook wb) {
// HSSFFont boldFont = wb.createFont();
// boldFont.setFontHeight((short) 200);
HSSFCellStyle style = wb.createCellStyle();
style.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
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);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
// 生成一个字体
HSSFFont font = wb.createFont();
font.setColor(HSSFColor.VIOLET.index);
font.setFontHeightInPoints((short) 12);
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
// 把字体应用到当前的样式
style.setFont(font);
return style;
}
//创建内容样式
private static HSSFCellStyle createContentStyle(HSSFWorkbook wb) {
HSSFFont boldFont = wb.createFont();
boldFont.setFontHeight((short) 200);
HSSFCellStyle style = wb.createCellStyle();
style.setFillForegroundColor(HSSFColor.WHITE.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);
style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
// 生成另一个字体
HSSFFont font2 = wb.createFont();
font2.setBoldweight(HSSFFont.BOLDWEIGHT_NORMAL);
// 把字体应用到当前的样式
style.setFont(font2);
return style;
}
// 创建Excel单元格
private static void createCell(HSSFRow row, int column, HSSFCellStyle style,
int cellType, Object value) {
HSSFCell cell = row.createCell(column);
if (style != null) {
cell.setCellStyle(style);
}
switch (cellType) {
case HSSFCell.CELL_TYPE_BLANK: {
}
break;
case HSSFCell.CELL_TYPE_STRING: {
cell.setCellValue(value.toString());
}
break;
case HSSFCell.CELL_TYPE_NUMERIC: {
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
cell.setCellValue(Double.parseDouble(value.toString()));
}
break;
default:
break;
}
}
public static void main(String[] args) {
/*context=new ClassPathXmlApplicationContext("applicationContext-*.xml");
entHiddenDangerRecImpl=(IEntHiddenDangerRec)context.getBean("entHiddenDangerRecImpl");
List<EntHiddenDangerRec> lists=entHiddenDangerRecImpl.queryByQyid(9461, null);
String headers1[]={"序号","重大隐患","一般隐患","隐患图片"};
String headers2[]={"经营场地","隐患类别","隐患级别","上报时间"};
String columnIds[]={"number","proAddr","yhlb","yhjb","scsj","hdmimage"};
List<Map> mapList=new ArrayList<Map>();
int num=1;
for(EntHiddenDangerRec info:lists){
Map map=new HashMap();
map.put("number", num);
map.put("proAddr", info.getEntProAddress().getScjydzmc());
map.put("yhlb", info.getSysSelfExaClassField().getZcbzlbmc());
map.put("yhjb", info.getYhfj()==0?"一般隐患":"重大隐患");
map.put("scsj", DateFormatUtil.convertDateToY_M_D(info.getScsj()));
map.put("hdmimage", "D:/TestFile/1234fangwen.bmp");
mapList.add(map);
num++;
}
System.out.println();
try {
HSSFWorkbook workbook = PoiExportExcelTest.exportExcel(mapList, headers1,headers2, columnIds, "隐患信息");
FileOutputStream fout = new FileOutputStream("D:/TestFile/hdinfoList.xls");
workbook.write(fout);
fout.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/
}
}