jsp关闭excel进程 jsp怎样去关闭特定的excel进程,并删除磁盘上的该excel文件? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 关服务器上的Excel进程、删除文件都是可以做到的,关进程的方法:用java.lang.Runtime执行Windows命令tskill或taskkill或ntsd如果想要用JSP动客户端机器,那就没有办法了。 我就是做一个,从excel批量导入数据库的功能,导入完毕后,关闭进程,删除上传的临时excel文件,就差最后两步了!望详细点。 我最近也在看相关的文档,Excl的导入 进程执行完了,自然关闭。或者你可以完全用Java来做,用POI这些库直接读取Excel文件,写数据库。 我用JXL实现过··当客户端把EXCEL表格传上来之后··我用JXL去读写里面的数据··最后这个文件占用了存储空间,要手动的去删除··这个很烦·我也想让程序删除··但一直没好办法·· 我就是通过一个java包jxl.jar来读取,插数据库,插入完毕后,也关闭了相应的连接,后缀还附加了一句java.io.File myDelFile = new java.io.File(filePath); myDelFile.delete(); 但似乎还是不管用。望详解! 这和excel进程有神马关系呢,你用poi直接读excel不就行了,读完了删除excel文件。 /** * @(#)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文件不行呀!望详解! 楼主服务器的操作系统是什么?其实你这个功能不一定要用java来实现啊。java实现文件上传功能,批量导入用其他语言实现,这样程序更加可控,而且实现起来也更容易,只是要在服务器端多运行一个常驻程序罢了。如果是oracle,批量导入最好还是调用sqlloader。 文件下载问题 HTML标签问题 jsp移型之后无法编译 [求一Sql语句!] ②又一套北京JAVA开发公司面试题(留给后人) 绿化工程见成效 打一红楼梦人物 在eclipse中开发jsp程序的中文问题!! jsp中有类似asp中Server.HTMLEncode()的东西吗?函数,方法,类? web问题 关于第三方支付接口问题 搜索 求助,java.sql.SQLException:流已被关闭
关进程的方法:
用java.lang.Runtime执行Windows命令tskill或taskkill或ntsd如果想要用JSP动客户端机器,那就没有办法了。
就差最后两步了!望详细点。
我就是通过一个java包jxl.jar来读取,插数据库,插入完毕后,也关闭了相应的连接,后缀还附加了一句java.io.File myDelFile = new java.io.File(filePath);
myDelFile.delete(); 但似乎还是不管用。望详解!
* @(#)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文件不行呀!望详解!
java实现文件上传功能,批量导入用其他语言实现,这样程序更加可控,而且实现起来也更容易,只是要在服务器端多运行一个常驻程序罢了。
如果是oracle,批量导入最好还是调用sqlloader。