poi导出excel

来源:互联网 发布:淘宝身份认证复核 编辑:程序博客网 时间:2024/06/06 12:37
1、
package com.csst.ebtMall.web.common.util;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.util.Date;import java.util.Iterator;import java.util.List;import org.apache.poi.hssf.usermodel.HSSFRow;import org.apache.poi.hssf.usermodel.HSSFSheet;import org.apache.poi.hssf.usermodel.HSSFWorkbook;public class ExportExcel {/** * 导出excel工具类 * */public static HSSFWorkbook exportExcel4Object(String title, String[] headers, List dataSet) {//声明一个工作薄HSSFWorkbook workbook = new HSSFWorkbook();Iterator it = dataSet.iterator();for (short n=0; n<=dataSet.size()/10000; n++){//生成一个表格HSSFSheet sheet = workbook.createSheet(title + "(" + n + ")");//产生表格标题行HSSFRow row = sheet.createRow(0);for (short i=0; i<headers.length; i++){row.createCell(i).setCellValue(headers[i]);}// 遍历集合数据,产生数据行int index = 0;//for (int i=n*10000; i<dataSet.size() && i<(n+1)*10000; i++){for (int i=0; it.hasNext() && i<10000; i++){index++;row = sheet.createRow(index);Object t = it.next();//利用反射,根据javabean属性的先后顺序,动态调用getXxx()方法得到属性值Field[] fields = t.getClass().getDeclaredFields();  for (short j=0; j<fields.length; j++) {Field field = fields[j];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[] {});// 判断值的类型后进行强制类型转换if (value == null || "".equals(value)) {row.createCell(j).setCellValue("");} else if (value instanceof Integer) {row.createCell(j).setCellValue((Integer) value);} else if (value instanceof Float) {row.createCell(j).setCellValue((Float) value);} else if (value instanceof Double) {row.createCell(j).setCellValue((Double) value);} else if (value instanceof Long) {row.createCell(j).setCellValue((Long) value);} else if (value instanceof Boolean) {row.createCell(j).setCellValue((Long) value);//boolean bValue = (Boolean) value;//textValue = "真";//if (!bValue) {//textValue = "假";//}} else if (value instanceof Date) {row.createCell(j).setCellValue((Date) value);//row.createCell(j).setCellValue(TimeUtil.toString((Date) value));} else {//其它数据类型都当作字符串简单处理  row.createCell(j).setCellValue(value.toString());}} catch (Exception e) {e.printStackTrace();} finally {// 清理资源}}}}return workbook;}}



2、

/** * 导出excel * @return */@RequestMapping(value="/exportOrder")public void export(HttpServletRequest request, HttpServletResponse response){try{//访问请求ResponseEntity<String> results = restTemplate.exchange(Constants.SERVER_URL+"/creditCard/list", HttpMethod.GET, null, String.class, new HashMap<String, Object>());//获取数据ObjectMapper mapper = new ObjectMapper();mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);PageInfo<CreditCardOrerVO> page = mapper.readValue(results.getBody(), new TypeReference<PageInfo<CreditCardOrerVO>>() { });List<CreditCardOrerVO> orderList=null;if(page.getRows().size()>0){orderList=page.getRows();}//输出excelString[] headers={"产品名称","订单编号","申请日期","客户姓名","客户电话"};HSSFWorkbook wb=ExportExcel.exportExcel4Object("信用卡订单表", headers, orderList);//String path=request.getRealPath("/")+"excel/信用卡订单表.xls";////输出路径//File file=new File(request.getRealPath("/")+"excel");////if(!file.exists() && !file.isDirectory()){//file.mkdir();//}//FileOutputStream out = new FileOutputStream(path);//wb.write(out);  //out.close(); //下载excelString filename=new String("信用卡订单表".getBytes("gb2312"),"ISO-8859-1");response.setContentType("application/vnd.ms-excel");response.setHeader("Content-disposition", "attachment;filename="+filename+".xls");OutputStream os=response.getOutputStream();wb.write(os);os.flush();os.close();}catch(Exception ex){Logger.debug("导出excel失败");}}


0 0
原创粉丝点击