如题
用控件或者别的方法都行
备注:不要用poi或者jxl,因为客户给我的那一堆excel用poi和jsl都打不开也不能操作。我在我机器上打开一份,然后另存一份新的,用poi或者jxl就可以了。
先谢谢了。

解决方案 »

  1.   

    你说在什么环境下捏?
    dos? copy命令
    linux? cp命令
    开发语言下? IO读取,IO输出...
      

  2.   

    最好是在action中调用dos命令进行另存,有这种方法吗大哥
      

  3.   

    Runtime.exec("copy " + 源文件全路径 + " " + 目标文件全路径);
    这样子可以用java调用dos方法拷贝文件.
    但是服务器段你还得考虑是linux还是windows系统.
    linux系统的话copy命令要换成linux系统的文件拷贝命令.
      

  4.   

    有个jacob里面有方法的,你找找吧。我以前另存PPT都是用的这个。
      

  5.   

    action里,可以调用dos的copy方法,或者用java的io流重新生成一个文件:private static boolean move(File soureFile,File distFile) throws Exception{
            FileInputStream in = new FileInputStream(soureFile);
            FileOutputStream out = new FileOutputStream(distFile);
            FileChannel inC = in.getChannel();
            FileChannel outC = out.getChannel();
            ByteBuffer b = null;
            int length = 2097152;
            while (true) {
                if (inC.position() == inC.size()) {
                    inC.close();
                    outC.close();
                    soureFile.delete();
                    return true;
                }
                if ((inC.size() - inC.position()) < length) {
                    length = (int) (inC.size() - inC.position());
                } else {
                    length = 2097152;
                    b = ByteBuffer.allocateDirect(length);
                    inC.read(b);
                    b.flip();
                    outC.write(b);
                    outC.force(false);
                }
            }
        }
      

  6.   

    上面的删除了源文件,不要删除就算拷贝了:private static boolean copy(File soureFile,File distFile) throws Exception{
        FileInputStream in = new FileInputStream(soureFile);
        FileOutputStream out = new FileOutputStream(distFile);
        FileChannel inC = in.getChannel();
        FileChannel outC = out.getChannel();
        ByteBuffer b = null;
        int length = 2097152;
        while (true) {
            if (inC.position() == inC.size()) {
                inC.close();
                outC.close();
                return true;
            }
            if ((inC.size() - inC.position()) < length) {
                length = (int) (inC.size() - inC.position());
            } else {
                length = 2097152;
                b = ByteBuffer.allocateDirect(length);
                inC.read(b);
                b.flip();
                outC.write(b);
                outC.force(false);
            }
        }
    }
      

  7.   

    直接用acpache common的FileUtils中的方法copy就可以了,一句代码搞定
      

  8.   

    各位大侠是不是理解错了,不是拷贝,而是打开后,另存为一份新的,客户给我的那些excel是他们用一个软件生成的,好像是跟在电脑上直接新建的excel有些不同,直接拷贝的话还是跟在电脑上直接新建的excel不一样啊。
    有没有打开excel另存为的功能,用JS实现也行啊 
      

  9.   

    你这种另存为还是需要打开excel的呀,顶下你吧,我原来也遇到过这个问题,是因为那个导出的工具有错误所以最后形成的excel文件不能直接读也是需要另存为的,所以我能帮助你的也只是从源头找
      

  10.   

    这个,说明生成的excel文件有问题么,.............