package com.guanglan.wxmp.mobile.common;
import java.io.OutputStream;
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
/**
* @Title: PoiUtils.java
* @Package com.guanglan.wxmp.mobile.common
* @Description: TODO
* @author guanglan
* @date 2016年7月23日 下午5:50:14
* @version V1.0
*/
public class PoiUtils {
/**
* @param obj
* @return
* @throws Exception
*/
public static List<String> getValue(Object obj) throws Exception{
List<String> strs = new ArrayList<String>();
Field[] files = obj.getClass().getDeclaredFields();
for(Field f:files){
f.setAccessible(true);
System.out.println(f.get(obj));
if (!f.getType().getName().equals(java.lang.String.class.getName())) {
strs.add(String.valueOf(f.get(obj)));
}else{
strs.add(f.get(obj).toString());
}
}
return strs;
}
/**
*
* @param obj
* @return
* @throws Exception
*/
public static String[] getFieldNames(Object obj) throws Exception{
Field[] files = obj.getClass().getDeclaredFields();
String[] strs = new String[files.length];
int index = 0;
for(Field f:files){
f.setAccessible(true);
String fieldName = f.getName();
strs[index] = fieldName;
index ++;
}
return strs;
}
/**
* 导出Excel
* @param response
* @param objs
* @param Headers
* @param name
* @throws Exception
*/
public static void exportExcel(HttpServletResponse response,List<?> objs,String Headers[],String name) throws Exception{
Workbook wb=new HSSFWorkbook();
fillExcel(objs,wb,Headers);
export(response, wb, name+".xls");
}
public static void fillExcel(List<?> objs,Workbook wb,String[] headers)throws Exception{
int rowIndex=0;
Sheet sheet=wb.createSheet();
Row row=sheet.createRow(rowIndex++);
for(int i=0;i<headers.length;i++){
row.createCell(i).setCellValue(headers[i]);
sheet.setColumnWidth(i, 5500);
}
for(int i = 0 ; i < objs.size() ; i++){
List<String> sts = getValue(objs.get(i));
row=sheet.createRow(rowIndex++);
for(int j = 0 ; j < headers.length ; j++){
row.createCell(j).setCellValue(sts.get(j).toString());
}
}
}
public static void export(HttpServletResponse response,Workbook wb,String fileName)throws Exception{
response.setHeader("Content-Disposition", "attachment;filename="+new String(fileName.getBytes("utf-8"),"iso8859-1"));
response.setContentType("application/ynd.ms-excel;charset=UTF-8");
OutputStream out=response.getOutputStream();
wb.write(out);
out.flush();
out.close();
}
}
java POI导出Excel
最新推荐文章于 2023-06-10 18:02:19 发布