Java导出Excel表

2014-11-24 08:20:01 · 作者: · 浏览: 0



最近写的一个小程序:

需求:遍历数据库的数据,然后生成Excel表 ,导出数据(利用jxl.jar包)

有兴趣的同学可以参考一下(其他同事介绍使用poi.jar,但没试过,听说比jxl.jar好)

    ////生成excel表
    @RequestMapping(value="/xixi/xuan/createExcel",method={RequestMethod.GET,RequestMethod.POST})
    public String createExcel(HttpServletRequest request,HttpServletResponse response) throws IOException, RowsExceededException, WriteException{
        OutputStream os = response.getOutputStream();
        ParamUtil pu = new ParamUtil(request);
        String qid=pu.getString("qid");
        String fileName="VisitorData";
        response.setContentType("application/vnd.ms-excel");
        response.addHeader("Content-Disposition", "attachment;filename=\"" + fileName + ".xls" + "\"");
        List
  
    list=quserInfoRecordService.findQuserInfoRecord(qid);
        
        if(list.size()>0){
        /*    String excelPath = "D:\\data.xls";
            File excelFile = new File(excelPath);
            if (!excelFile.exists()) {
                excelFile.createNewFile();
            }*/
            System.out.println("=====kaisi");
            ///打开文件
            WritableWorkbook book = Workbook.createWorkbook(os);
            ///生成一个名为"用户信息"的工作表
            WritableSheet  ws= book.createSheet(fileName, 0); //新建一个sheet
            
          //在Label对象的构造子中指名单元格位置是第一列第一行(0,0)
          //以及单元格内容为test
          //Label label=new Label(0,0,"test");
          
            //往表中添加内容
          //将定义好的单元格添加到工作表中
            JSONArray jsonArray=JSONArray.fromObject(list.get(0).getExt());
            int lenght=jsonArray.size();
            
            WritableCellFormat wcf = null; 
            //字体样式   
            WritableFont wf = new WritableFont(WritableFont.TIMES,12, WritableFont.BOLD,false);//最后一个为是否italic   
            wf.setColour(Colour.BLACK);   
            wcf = new WritableCellFormat(wf);   
            //对齐方式   
            wcf.setAlignment(Alignment.CENTRE);   
            wcf.setVerticalAlignment(VerticalAlignment.CENTRE);   
            //边框   
            wcf.setBorder(Border.ALL,BorderLineStyle.THIN);   
           
            
            
          for(int i=0;i