标签:poi导出excel poi下载excel java导出下载
/* 前面是列定义,后面是VO属性
* para :主管海关,自定义类型,内部清单号-customMasterLabel,entryTypeLabel,internalListNo
* list : 数据list<VO>
* */
public static String commonExport(String para,List list) throws IllegalAccessException, InvocationTargetException, NoSuchMethodException{
HttpServletResponse response = ServletActionContext.getResponse();
/*
* POI 操作Excel - 步骤:
* */
HSSFWorkbook workbook = new HSSFWorkbook();
ServletOutputStream out = null;
try {
out = response.getOutputStream();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
HSSFSheet sheet = workbook.createSheet("sheet1");
sheet.setColumnWidth(0, 1500); //设置序号列宽,其他列暂时一样宽
sheet.setDefaultColumnWidth ((short)12); // 设置工作表列宽
sheet.setDefaultRowHeight((short)250); // 设置工作表行高
/*
* sheet样式定义【getColumnTopStyle()/getStyle()均为自定义方法 - 在下面 - 可扩展】
* */
//HSSFCellStyle columnTopStyle = ExportExcelUtilsStyle.getColumnTopStyle(workbook);//获取列头样式对象
//HSSFCellStyle style = ExportExcelUtilsStyle.getStyle(workbook); //单元格样式对象
//列头数组定义
para = "序号,"+para;
String[] s = para.split("-");
String s0 = s[0];
String s1 = s[1];
List titleList = Arrays.asList(s0.split(","));
List colList = Arrays.asList(s1.split(","));
//String[] label = ExportExcelUtilsModel.getExportMoedel(modelFlag);
// 定义所需列数
int columnNum = titleList.size();
//设置列头
HSSFRow row1 = sheet.createRow((short)0); // 在索引0的位置创建行(最顶端的行)
HSSFCell cell1 = null; // 在索引0的位置创建单元格(左上端)
// 将列头设置到sheet的单元格中
for(int n=0;n<columnNum;n++){
cell1 = row1.createCell((short)(n)); //创建列头对应个数的单元格
cell1.setCellType(HSSFCell.CELL_TYPE_STRING); //设置列头单元格的数据类型
cell1.setCellValue(titleList.get(n).toString()); //设置列头单元格的值
//cell1.setCellStyle(columnTopStyle); //设置列头单元格样式
}
if(null==list||list.size()==0){
return "exportList size is zero";
}
int i=1;
for(int m=0;m<list.size();m++){
StringBuffer sb = new StringBuffer();
String result="";
for(int k=0;k<colList.size();k++){
result = BeanUtils.getProperty(list.get(m),colList.get(k).toString());
if(k==0){
sb.append(result);
}else{
sb.append(","+result);
}
}
//将属性转化成字符串数组的格式以便于写到sheet中
String contentStr = i+","+sb.toString();
List c = Arrays.asList(contentStr.split(","));
//创建行(从下面的i+1要注意,第0行是列头,因此创建新行要从下一行开始)
HSSFRow row = sheet.createRow(i); //创建所需的行数
for(short j=0;j<columnNum;j++){
HSSFCell cell = row.createCell(j,HSSFCell.CELL_TYPE_STRING);//设置单元格的数据类型
cell.setCellValue(c.get(j).toString()); //设置单元格的值
//cell.setCellStyle(style); //设置单元格样式
}
i++;
}
if(workbook !=null){
// 获取当前时间用作文件名
try {
String filename = "导出文件的名字" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
response.setContentType("application/ms-excel");
response.setHeader("Content-Disposition", "filename="+new String(filename.toString().concat(".xls").getBytes(),"UTF-8"));
workbook.write(out);
out.flush(); // 缓冲
out.close(); // 关闭流(养成好的习惯打开了就别忘记关闭)
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return "导出成功";
}版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:poi导出excel poi下载excel java导出下载
原文地址:http://blog.csdn.net/xlb744868186/article/details/47170053