要使用的jar包 jxl-2.5.7.jar
import java.io.File; import java.io.IOException; import java.net.URL; import java.util.List; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import jxl.Workbook; import jxl.format.UnderlineStyle; import jxl.write.DateFormat; import jxl.write.Label; import jxl.write.NumberFormat; import jxl.write.WritableCellFormat; import jxl.write.WritableFont; import jxl.write.WritableSheet; import jxl.write.WritableWorkbook; import jxl.write.WriteException; public class JXLUtil { private final static Logger log = Logger.getLogger(JXLUtil.class); public final static String[] proptitles = new String[]{"酒店ID","中文名称","所属品牌","中文地址","英文名称 ","英文地址","星级","钻级","省份","城市","邮编","纬度","经度","电话","传真","开业时间","装修时间","房间总数","总楼层","电梯数","激活状态","网站","是否接受外宾","酒店简介","商圈"}; private static String path = null; static { URL url = Thread.currentThread().getContextClassLoader().getResource(""); path = url.getPath(); int index = path.lastIndexOf("WEB-INF/classes/"); if(index>0){ path = path.substring(0, index); } File file = new File(path +"props"); if(!file.exists()){ file.mkdirs(); } } /** * 酒店基础信息生成excel文件 * @param filename 文件名 * @param sheetName 工作表名称 * @param titles 列名 * @param cards 数据 * @return */ public static String export2TaPropExcel(String filename,String sheetName,String[] titles,List<TaProp> props){ WritableWorkbook workbook = null; filename = filename+".xls"; String pathfilename = path + filename; String exportpath=FogTaskConfig.getProperty("FogTask.TaPropsRoomTask.path"); if(StringUtils.isNotEmpty(exportpath)){ pathfilename=exportpath; }else{ pathfilename=path; } try{ File tempFile= new File(pathfilename); workbook = Workbook.createWorkbook(tempFile); WritableSheet sheet = workbook.createSheet(sheetName, 0); // Label lable=null; jxl.write.Number number=null; jxl.write.DateTime date=null; //format WritableFont titleFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.getInternalColour(9)); WritableCellFormat titleFormat = new WritableCellFormat (titleFont); titleFormat.setAlignment(jxl.format.Alignment.CENTRE); titleFormat.setBackground(jxl.format.Colour.getInternalColour(56)); WritableFont detFont = new WritableFont(WritableFont.ARIAL, 10, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, jxl.format.Colour.BLACK); WritableCellFormat contentFormat = new WritableCellFormat (detFont); contentFormat.setAlignment(jxl.format.Alignment.CENTRE); DateFormat df=new DateFormat("yyyy-MM-dd");//用于日期的 WritableCellFormat dateFormat = new WritableCellFormat (detFont, df); dateFormat.setAlignment(jxl.format.Alignment.CENTRE); NumberFormat nm = new NumberFormat("0"); WritableCellFormat numberFormat = new WritableCellFormat (detFont, nm); numberFormat.setAlignment(jxl.format.Alignment.CENTRE); //add Title for (int i = 0; i < titles.length; i++) { lable=new Label(i, 0, titles[i], titleFormat); sheet.addCell(lable); sheet.setColumnView(i, 20); } //add detail for (int i = 0; i < props.size(); i++) { int column=0; TaProp prop = props.get(i); lable=new Label(column++, i+1, prop.getProp(), contentFormat); sheet.addCell(lable); lable=new Label(column++, i+1, prop.getProp_name_zh(), contentFormat); sheet.addCell(lable); lable = new Label(column++, i+1, prop.getOrgid(),contentFormat); sheet.addCell(lable); lable = new Label(column++, i+1, prop.getAddress1_zh(),contentFormat); sheet.addCell(lable); lable = new Label(column++, i+1, prop.getProp_name_en(),contentFormat); sheet.addCell(lable); lable = new Label(column++, i+1, prop.getAddress1_en(),contentFormat); sheet.addCell(lable); lable=new Label(column++, i+1, prop.getStar_rating(), contentFormat); sheet.addCell(lable); lable=new Label(column++, i+1, prop.getDiamond_rating(), contentFormat); sheet.addCell(lable); lable=new Label(column++, i+1, prop.getLname(), contentFormat); sheet.addCell(lable); lable=new Label(column++, i+1, prop.getName_zh(), contentFormat); sheet.addCell(lable); lable=new Label(column++, i+1, prop.getZip(), contentFormat); sheet.addCell(lable); lable=new Label(column++, i+1, prop.getLatitude(), contentFormat); sheet.addCell(lable); lable=new Label(column++, i+1, prop.getLongitude(), contentFormat); sheet.addCell(lable); lable=new Label(column++, i+1, prop.getPhone(), contentFormat); sheet.addCell(lable); lable=new Label(column++, i+1, prop.getFax(), contentFormat); sheet.addCell(lable); lable=new Label(column++, i+1, prop.getOpening_date(), contentFormat); sheet.addCell(lable); lable=new Label(column++, i+1, prop.getRenovated_date(), contentFormat); sheet.addCell(lable); lable=new Label(column++, i+1, prop.getTotal_rooms(), contentFormat); sheet.addCell(lable); lable=new Label(column++, i+1, prop.getTotal_floors(), contentFormat); sheet.addCell(lable); lable=new Label(column++, i+1, prop.getTotal_elevators(), contentFormat); sheet.addCell(lable); lable=new Label(column++, i+1, prop.getStatus(), contentFormat); sheet.addCell(lable); lable=new Label(column++, i+1, prop.getWebsite(), contentFormat); sheet.addCell(lable); lable=new Label(column++, i+1, prop.getIs_welcome_foreign(), contentFormat); sheet.addCell(lable); lable=new Label(column++, i+1, prop.getSimple_desc_zh(), contentFormat); sheet.addCell(lable); lable=new Label(column++, i+1, prop.getTradearea_zh(), contentFormat); sheet.addCell(lable); } }catch (Exception e) { filename = null; log.error("writeCard error :"+e); }finally{ if(workbook!=null){ try { workbook.write(); workbook.close(); }catch (WriteException e) { }catch (IOException e) { } } return filename; } } }