本帖最后由 a2068879 于 2010-04-21 09:17:38 编辑

解决方案 »

  1.   

    应该没有问题。
    exp.exportTable(table,table1, new File( "C:\\results"+i+".xls"));
    table1是哪来的
      

  2.   

    因为你的i定义在action里面,当第二次点击时,他还是从0开始,并不是你+1的值。所以打开的一直是result0.xls这个文件
      

  3.   

    代码有的忘删了  没有i 和table1在excel打开的情况下怎么再次打开这个文件还有个就是兼容问题   我用2007打开的时候提示文件已被损坏让我选择 是 还是 否 但是里面数据是一样的
      

  4.   

    2007下个03的补丁包就可以了。
    excel已经打开了,你自然不能再打开往里面写东西了
      

  5.   

    我用这种方法转换一下字符串  可是还乱码 有谁知道怎么弄?
    public   static  String toUtf8String(String s){ 
            StringBuffer sb  =   new  StringBuffer(); 
             for  ( int  i = 0 ;i < s.length();i ++ ){ 
                 char  c  =  s.charAt(i); 
                 if  (c  >=   0   &&  c  <=   255 ){sb.append(c);} 
                 else { 
                     byte [] b; 
                     try  { b  =  Character.toString(c).getBytes("ansi");} 
                     catch  (Exception ex) { 
                        System.out.println(ex); 
                        b  =   new   byte [ 0 ]; 
                    } 
                     for  ( int  j  =   0 ; j  <  b.length; j ++ ) { 
                         int  k  =  b[j]; 
                         if  (k  <   0 ) k  +=   256 ; 
                        sb.append("%"+  Integer.toHexString(k).toUpperCase());                
                        } 
                } 
            } 
             return  sb.toString(); 
             } 
      

  6.   

     try  { b  =  Character.toString(c).getBytes("ansi");} 
    这个地方贴错了 应该是   try  { b  =  Character.toString(c).getBytes("utf-8");}