用jxl把excel表格里第1页的东西复制到第2页的时候,发现有些地方的边框线没有一起复制过去,而且原来合并单元格的地方复制过去边框线只会出来没合并时的那部分,不知道是什么原因,怎么解决

解决方案 »

  1.   

    可能是EXCEL表的问题,因为有些表用copySheet边框线能正常显示的,但有些表不能,就是会少掉一点,有谁碰到过这种问题吗?
      

  2.   

    我也遇到过这个问题。这个你的程序可能没错。要把模板内的分散的各个单元格的全选上,然后对边框设置加上边框就可以
    打出来了。这个是jxl的的一个bug。
      

  3.   

    如果不行,你可以尝试使用WritableWorkbook 的import 方法。见
     try{
                     //老方法,但是它的拷贝函数有问题,在得到拷贝的时候,文字的样式会丢失,因为它不支持分散对齐的格式
                   Workbook wb  =  Workbook.getWorkbook( new  File(webPath+"/WEB-INF/季度考核记录表模板.xls"));
                   WorkbookSettings worksetting = new WorkbookSettings() ;
                   
                   //如果出现乱码,请使用下面的任一代码
    //               worksetting.setEncoding("ISO-8859-1");
    //               worksetting.setLocale(Locale.getDefault());
                   //打开一个文件的副本,并且指定数据写回到原文件 
                   WritableWorkbook book = Workbook.createWorkbook(new  File(webPath+"/WEB-INF/季度考核记录表.xml"),wb);                                       
                     //  往工作表填入数据               
                   for (int i=0;i<length;i++) 
           {
          
                    QuarterPerformance temp = (QuarterPerformance)resultSet.get(i);
                    String name="无名氏";
                    //命名以姓名,年月来区分相同的人不同的季度的记录
                    
                    if ((temp.getYear()!=null)&(temp.getQuarterStart()!=null)&(temp.getQuarterEnd()!=null))
                    name = temp.getName()+(new SimpleDateFormat("yyyy年")).format(temp.getYear()) + (new SimpleDateFormat("MM月")).format(temp.getQuarterStart()) +" 至 "+ (new SimpleDateFormat("MM月")).format(temp.getQuarterEnd());
                    if("无名氏".equals(name)!=true)
                    {
                    /*
                         * 此方法的效果不佳,粗黑边框有一半失效
                         */
                    //book.copySheet(0,name, i+1);
                    book.importSheet(name,i+1,wb.getSheet(0));
                    } else
                    {
                    //book.copySheet(0,name+i, i+1);
                    book.importSheet(name+i,i+1,wb.getSheet(0));
                    }                      
                    jxl.write.WritableSheet ws = book.getSheet(i+1);
                    this.getOneEleContent(temp,ws);
           }
           book.write();
                   book.close();        
        } catch(Exception e)
        {
         e.printStackTrace();
         String errMSG = "导出季度报表的时候Exception[com.neusoft."
    +"procuratorate.performance.action.assistant."
    +"getReportContent] --- "+e.getMessage();
    String userinfo ="温馨提示:在你导出季度报表的时候出现了异常,请联系管理员检查季度报表模板是否是空文件.";
    quarter.addError(ExceptionTool.getExceptionMessage(errMSG,userinfo));
        }