KG21 发表于 2013-2-5 08:49:46

Java生成excel文件 JXL

要使用的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 staticString[] 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;      Stringexportpath=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, 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;      }    }    }  
 
 
页: [1]
查看完整版本: Java生成excel文件 JXL