原理:把所有数据放到javaBean中,每个javaBean一行生成Excel文件 主程序 package com.test; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.excel.bean.UserBean; import com.excel.util.ExcelUtil; import jxl.Workbook; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; public class ExcelTest { public static void main(String args[]){ try { List<UserBean> userlist = initData(); ExcelUtil.createExcel(userlist, "", getAttrList(), getAttrList(), "yyyy-MM-dd"); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } private static List<UserBean> initData(){ List<UserBean> userlist =new ArrayList(); UserBean user1 = new UserBean(); user1.setUserName("user1"); user1.setUserId(100001); user1.setUserTel("56487525"); user1.setBirthDate(new Date(System.currentTimeMillis())); UserBean user2 = new UserBean(); user2.setUserName("user2"); user2.setUserId(100002); user2.setUserTel("56487525"); user2.setBirthDate(new Date(System.currentTimeMillis())); UserBean user3 = new UserBean(); user3.setUserName("user3"); user3.setUserId(100003); user3.setUserTel("56487525"); user3.setBirthDate(new Date(System.currentTimeMillis())); userlist.add(user1); userlist.add(user2); userlist.add(user3); return userlist; } private static String[] getAttrList(){ return new String[]{UserBean.ATTR_userName,UserBean.ATTR_usserId,UserBean.ATTR_userTel,UserBean.ATTR_birthDate}; } } javeBean package com.excel.bean; import java.util.Date; public class UserBean { private String userName; private String userTel; private Date birthDate; private int userId; public static final String ATTR_userName = "userName"; public static final String ATTR_userTel = "userTel"; public static final String ATTR_birthDate = "birthDate"; public static final String ATTR_usserId = "userId"; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserTel() { return userTel; } public void setUserTel(String userTel) { this.userTel = userTel; } public Date getBirthDate() { return birthDate; } public void setBirthDate(Date birthDate) { this.birthDate = birthDate; } public int getUserId() { return userId; } public void setUserId(int userId) { this.userId = userId; } } 生成工具 excelUtil package com.excel.util; import java.beans.PropertyDescriptor; import java.io.File; import java.io.FileOutputStream; import java.io.OutputStream; import java.lang.reflect.Method; import java.util.Date; import java.util.List; import jxl.Workbook; import jxl.write.DateTime; import jxl.write.Label; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; public class ExcelUtil { public static void createExcel(List dataList, String title, String[] attrNameList, String[] titleText, String dateFormat)throws Exception{ String targetfile = "c:/out.xls"; String worksheet = "List"; WritableWorkbook workbook; OutputStream os=new FileOutputStream(targetfile); workbook=Workbook.createWorkbook(os); WritableSheet sheet = workbook.createSheet(worksheet, 0); if (StringUtil.isEmpty(dataList) || dataList.size() < 1 || StringUtil.isEmpty(attrNameList)) { return ; } if (StringUtil.isEmpty(titleText)) { titleText = attrNameList; } Method[] methods = getMethods(attrNameList, dataList.get(0).getClass()); for(int i=0;i<dataList.size();i++){ Object data = dataList.get(i); for(int j=0;j<methods.length;j++){ Method method = methods[j]; Object value = method.invoke(data); if (StringUtil.isNonEmpty(value)) { if (Date.class.equals(value.getClass())) { Date date = (Date)value; DateTime labelDT = new DateTime(j,i,date); sheet.addCell(labelDT); }else{ Label label =new Label(j,i,value.toString()); sheet.addCell(label); } } } } workbook.write(); workbook.close(); os.close(); } /** * getMethods * @param attrNameList * @param objClass * @return * @throws Exception */ @SuppressWarnings("unchecked") private static Method[] getMethods(String[] attrNameList, Class objClass) throws Exception { Method[] methods = new Method[attrNameList.length]; for (int i = 0; i < attrNameList.length; i++) { PropertyDescriptor pd = new PropertyDescriptor(attrNameList[i], objClass); methods[i] = pd.getReadMethod(); } return methods; } }