导出Excel
package com.krkj.util; import java.beans.BeanInfo; import java.beans.Introspector; import java.beans.PropertyDescriptor; import java.io.FileOutputStream; import java.lang.reflect.Method; import java.text.SimpleDateFormat; import java.util.List; import javax.persistence.Entity; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; @Entity public class GenerateExcel<T> { public GenerateExcel() { } public void exportExcel(List<T> users, Class<?> clazz, String string) throws Exception { Workbook wb = new HSSFWorkbook(); Sheet sheet = wb.createSheet("导出用户数据"); for (int i = 0; i < users.size(); i++) { Row row = sheet.createRow(i); BeanInfo beanInfo = Introspector.getBeanInfo(clazz); PropertyDescriptor[] propertyDescriptors = beanInfo .getPropertyDescriptors(); int realCellNum = 0; for (int j = 0; j < propertyDescriptors.length; j++) { PropertyDescriptor propertyDescriptor = propertyDescriptors[j]; Class<?> propertyType = propertyDescriptor.getPropertyType(); String simpleName = propertyType.getSimpleName(); Method readMethod = propertyDescriptor.getReadMethod(); if (!"getClass".equals(readMethod.getName())) { Object object = readMethod.invoke(users.get(i), new Object[] {}); String value = object.toString(); Cell cell = row.createCell(realCellNum++); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); switch (simpleName) { case "int": cell.setCellValue(Integer.valueOf(value)); break; case "Integer": cell.setCellValue(Integer.valueOf(value)); break; case "float": cell.setCellValue(Double.valueOf(value)); break; case "Float": cell.setCellValue(Double.valueOf(value)); break; case "double": cell.setCellValue(Double.valueOf(value)); break; case "Double": cell.setCellValue(Double.valueOf(value)); break; case "String": cell.setCellValue(value); break; case "Date": cell.setCellValue(sdf.format(object)); break; default: } } } } FileOutputStream fileOut = new FileOutputStream(string); wb.write(fileOut); wb.close(); fileOut.close(); } }