搞定了这个问题 就此纪念一下 呵呵!源代码呈上 请高手多多指点
主要实现功能是 按照条件一次性生成多个EXCEL 然后打包成一个ZIP文件 让用户直接下载ZIP文件 
功能很简单 但中文问题困扰了我1小时左右 郁闷!!问题的关键在于实例化ZipOutputStream对象和ZipEntry对象时一定要用org.apache.tools.zip的 别用JAVA的
就这么简单  希望可以给需要的朋友有所帮助!!import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Calendar;
import java.util.Random;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;public class ExExcel{
/**
 * 实现多文件压缩(通用)
 * @author JohnnyJu
 * @since 2008-04-08
 * @return 压缩文件名称
 */
private static String zipExcel(String mkdirPath,long timeA){ final int BUFFER = 2048;

        String zipname = null;
   
        String filename = null;
     try {
    
            BufferedInputStream origin = null;
          
            String rarPath = AWFConfig._iworkConf.getDocumentPath();
     if(!new File(rarPath+"tmp/group_/file_"+timeA+"/").isDirectory()){
     new File(rarPath+"tmp/group_/file_"+timeA+"/").mkdir();
     new File(rarPath+"tmp/group_/file_"+timeA+"/").mkdirs();
     }
     else{
     new File(rarPath+"tmp/group_/file_"+timeA+"/").mkdirs();
     }
            zipname = rarPath+"tmp/group_/file_"+timeA+"/"+timeA+".zip";
            filename = timeA+".zip";
       
            FileOutputStream dest = new FileOutputStream(zipname);
            //调用org.apache.tools.zip包实例化一个ZIP输出流并实例化缓冲区
            org.apache.tools.zip.ZipOutputStream out = new org.apache.tools.zip.ZipOutputStream(new BufferedOutputStream(dest));
       
            byte data[] = new byte[BUFFER];
       
            File f  = new File(mkdirPath);            File files[] = f.listFiles();
   
            for (int i = 0; i < files.length; i++) {
            
                FileInputStream fi = new FileInputStream(files[i]);
               
                origin = new BufferedInputStream(fi, BUFFER);
            
                //ZipEntry entry = new ZipEntry(files[i].getName());
                //调用org.apache.tools.zip包输出ZIP文件
                org.apache.tools.zip.ZipEntry entry = new org.apache.tools.zip.ZipEntry(files[i].getName());
                out.putNextEntry(entry);
                int count;
              
                while ((count = origin.read(data, 0, BUFFER)) != -1) 
                {
                
                    out.write(data, 0, count);
                }
                //关闭输入流
                origin.close();
            }
            //关闭ZIP输出流
            out.close();
            //System.out.println("压缩文件生成至:"+zipname);
            //对生成的压缩文件进行加密
            int zipMdFive = EncryptFileUtil.encryptFile(zipname);
        } catch (Exception e) {
         System.out.println("错误:"+e);
        }
        //return zipname;
        return filename;
}