jsp怎样去关闭特定的excel进程,并删除磁盘上的该excel文件?

解决方案 »

  1.   

    关服务器上的Excel进程、删除文件都是可以做到的,
    关进程的方法:
    用java.lang.Runtime执行Windows命令tskill或taskkill或ntsd如果想要用JSP动客户端机器,那就没有办法了。
      

  2.   

    我就是做一个,从excel批量导入数据库的功能,导入完毕后,关闭进程,删除上传的临时excel文件,
    就差最后两步了!望详细点。
      

  3.   

    我最近也在看相关的文档,Excl的导入
      

  4.   

    进程执行完了,自然关闭。或者你可以完全用Java来做,用POI这些库直接读取Excel文件,写数据库。
      

  5.   

    我用JXL实现过··当客户端把EXCEL表格传上来之后··我用JXL去读写里面的数据··最后这个文件占用了存储空间,要手动的去删除··这个很烦·我也想让程序删除··但一直没好办法··
      

  6.   


    我就是通过一个java包jxl.jar来读取,插数据库,插入完毕后,也关闭了相应的连接,后缀还附加了一句java.io.File myDelFile = new java.io.File(filePath); 
    myDelFile.delete(); 但似乎还是不管用。望详解!
      

  7.   

    这和excel进程有神马关系呢,你用poi直接读excel不就行了,读完了删除excel文件。
      

  8.   

    /**
     * @(#)CreateXL.java
     *
     *
     * @author 
     * @version 1.00 2010/11/28
     */package plsc;
    import lj.*;
    import java.sql.*;
    import java.io.*;
    import java.util.Random;
    import java.util.Date;
    import jxl.*;
    import jxl.format.UnderlineStyle;
    import jxl.write.*;
    import jxl.write.Number;
    import jxl.write.Boolean;
    public class CreateXL
    {
        public CreateXL()
        {
            
        }    private  static  String fileurl;
        private  static int row;
        private   static int col;
        private static PreparedStatement prepar = null ;
        private static  ResultSet res; 
        
        public static void readExcel(String filePath)
        {
            /**filePath上传后的Excel文件地址
             *
             **/
            try
            {
                InputStream is=new FileInputStream(filePath);//调用jxl包中的类
                //声名一个工作薄
                Workbook rwb = Workbook.getWorkbook(is);
                
                //获得工作薄的个数
                //rwb.getNumberOfSheets();
                    
                //在Excel文档中,第一张工作表的缺省索引是0
                Sheet st = rwb.getSheet("Sheet1");
                
                //通用的获取cell值的方式,getCell(int column, int row) 行和列
                row=st.getRows();
                col=st.getColumns();
              /*  System.out.println("当前工作表的名字:"+st.getName());
                System.out.println("总行数:"+row);
                System.out.println("总列数:"+col);*/
            
               // Cell c;
               Lj test = new Lj();
               String sql = "insert into course_contain_tb values(?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
               prepar = test.getConn().prepareStatement(sql);
                for(int i=1;i<=row;i++){
      //           for(int j=1;j<=col;j++)
          //      {
                   //System.out.print((st.getCell(i,j)).getContents()+"\t");
    //   prepar.setString(j,(st.getCell(i,j)).getContents());
       prepar.setString(1,(st.getCell(0,i)).getContents());
       prepar.setString(2,(st.getCell(1,i)).getContents());
       prepar.setString(3,(st.getCell(2,i)).getContents());
       prepar.setString(4,(st.getCell(3,i)).getContents());
       prepar.setString(5,(st.getCell(4,i)).getContents());
       prepar.setString(1,(st.getCell(5,i)).getContents());
       prepar.setString(2,(st.getCell(6,i)).getContents());
       prepar.setString(3,(st.getCell(7,i)).getContents());
       prepar.setString(4,(st.getCell(8,i)).getContents());
       prepar.setString(5,(st.getCell(9,i)).getContents());
       prepar.setString(2,(st.getCell(10,i)).getContents());
       prepar.setString(3,(st.getCell(11,i)).getContents());
       prepar.setString(4,(st.getCell(12,i)).getContents());
       prepar.setString(5,(st.getCell(13,i)).getContents());               //System.out.print((st.getCell(1,i)).getContents()+"\t");
                   //System.out.println((st.getCell(2,i)).getContents()); 
                   prepar.executeUpdate();     
     /* System.out.println((st.getCell(i,1)).getContents());
       System.out.println((st.getCell(i,2)).getContents());
        System.out.println((st.getCell(i,3)).getContents());
         System.out.println((st.getCell(i,4)).getContents());
          System.out.println((st.getCell(i,5)).getContents());*/
               // }
    // prepar.executeUpdate();
                       //getCell(Col,Row)获得单元格的值
                }   
          //  System.out.print((st.getCell(i,j)).getContents()+"\t");
                   // }
                    //System.out.print("\n");
                //}
                //操作完成时,关闭对象,释放占用的内存空间
                rwb.close();
    test.getConn().close();
               java.io.File myDelFile = new java.io.File(filePath); 
    myDelFile.delete();           
            }
            catch(Exception e)
            {
                e.printStackTrace();
            }
        }
       } 
    读excel数据插入数据均没问题,就是最终的数据插入完毕,删除临时上传到服务器端的EXCEL文件不行呀!望详解!
      

  9.   

    楼主服务器的操作系统是什么?其实你这个功能不一定要用java来实现啊。
    java实现文件上传功能,批量导入用其他语言实现,这样程序更加可控,而且实现起来也更容易,只是要在服务器端多运行一个常驻程序罢了。
    如果是oracle,批量导入最好还是调用sqlloader。