少林

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
import java.io.OutputStream;
import java.util.Date;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletResponse;
import jxl.Workbook;
import jxl.format.UnderlineStyle;
import jxl.write.Label;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;

public class ExportExcel {
    /**
     * 导出
     */
    public static void exportExcel(HttpServletResponse response, List<Map<String, Object>> list) {
        OutputStream os;
        try {
            os = response.getOutputStream();
            response.reset();// 清空输出流 
            response.setHeader("Content-disposition", "attachment; filename="+new Date().getTime()+".xls");// 设定输出文件头   
            response.setContentType("application/msexcel");// 定义输出类型 
            
            WritableWorkbook book = Workbook.createWorkbook(os); // 建立excel文件   
            WritableSheet sheet = book.createSheet("Sheet1", 0);        // 创建一个工作表
            
            jxl.write.WritableFont wfc = new jxl.write.WritableFont(  
                     WritableFont.ARIAL, 13, WritableFont.BOLD, false,
                     UnderlineStyle.NO_UNDERLINE);
            jxl.write.WritableCellFormat wcfFC = new jxl.write.WritableCellFormat(wfc); 
            
            
            sheet.setColumnView(0, 15);//设置列宽度
            sheet.setColumnView(1, 15);
            sheet.setColumnView(2, 20);
            sheet.setColumnView(3, 20);
            sheet.setColumnView(4, 20);
            sheet.setColumnView(5, 15);
            
            
            Label label_0 = new Label(0, 0, "请假类型", wcfFC);// 在Label对象的构造子中指名单元格位置是第一列第一行(0,0)  
            sheet.addCell(label_0);
            
            Label label_1 = new Label(1, 0, "姓名", wcfFC);
            sheet.addCell(label_1);
            
            Label label_2 = new Label(2, 0, "部门", wcfFC);
            sheet.addCell(label_2);
            
            Label label_3 = new Label(3, 0, "请假开始时间", wcfFC);
            sheet.addCell(label_3);
            
            Label label_4 = new Label(4, 0, "请假结束时间", wcfFC);
            sheet.addCell(label_4);
            
            Label label_5 = new Label(5, 0, "请假天数", wcfFC);
            sheet.addCell(label_5);
        
            
            if(list != null && list.size() > 0) {
                wfc = new jxl.write.WritableFont(  
                         WritableFont.ARIAL, 13, WritableFont.NO_BOLD, false,
                         UnderlineStyle.NO_UNDERLINE);
                wcfFC = new jxl.write.WritableCellFormat(wfc); 
                int i = 1;
                List<Dictionary> leaveTypeList = DictinaryCache.getDictionarysByType("LeaveType");
                for(Map<String, Object> dataMap : list) {
                    
                    label_0 = new Label(0, i, dataMap.get("type")+"", wcfFC);// 在Label对象的构造子中指名单元格位置是第一列第一行(0,0)  
                    
                    sheet.addCell(label_0);
                    
                    label_1 = new Label(1, i, dataMap.get("creator_name")+"", wcfFC);
                    sheet.addCell(label_1);
                    
                    label_2 = new Label(2, i, dataMap.get("dept_name")+"", wcfFC);
                    sheet.addCell(label_2);
                    
                    label_3 = new Label(3, i, dataMap.get("begin_time")+"", wcfFC);
                    sheet.addCell(label_3);
                    
                    label_4 = new Label(4, i, dataMap.get("end_time")+"", wcfFC);
                    sheet.addCell(label_4);
                    
                    label_5 = new Label(5, i, dataMap.get("day")+"", wcfFC);
                    sheet.addCell(label_5);
                    
                    i++;
                }
            }
            
            
            // 写入数据并关闭文件  
           book.write();  
           book.close();  
           System.out.println("Excel创建成功");  
            
            
        } catch (Exception e) {
            e.printStackTrace();
        }
       
    }
}

 

posted on 2015-12-10 17:20  Stanley_yu  阅读(223)  评论(0编辑  收藏  举报