各位好:
我现在遇到一个麻烦事,请大家帮忙我想一下哪里出问题了,就是我要导出excel表,首先先把数据库的数据写到excel表放到服务器上,然后再读取服务器的excel表到客户端,现在一个问题就是当把数据库写到excel文件到服务器产生一个excel的随机文件,然后再客户端读取服务器的excel文件时,在服务器里又出现一个不同文件名但内容相同的excel文件,不知道是什么回事,也就是说整个过程产生了两个文件,我只要产生一个文件供客户端读取就行了的。请大家帮忙哈,谢谢了。。
String filename=path+"/gasGas"+Util.genRandomNum(8)+"Info.xls";
OutputStream os = new FileOutputStream(filename);
WritableWorkbook wwb = Workbook.createWorkbook(os);
Workbook ws = wwb.createSheet("Sheet1", 0);
for (int i = 0; i < split.length; i++){
jxl.write.Label wlabel0;
wlabel0 = new jxl.write.Label(i, 0, split[i],wcf);
ws.addCell(wlabel0);
}
wwb.write();
wwb.close();
os.close();
然后再读取服务器的excel又产生了一个随机文件在服务器
java.io.OutputStream o = response.getOutputStream();
File fileLoad=new File(filename);//这里的filename文件名就是上面要写到excel表的文件名
byte b[] = new byte[(int)fileLoad.length()];
response.reset();
FileInputStream fileInputStream =
new java.io.FileInputStream(filename);
int i;
while ((i=fileInputStream.read(b)) != -1) {
o.write(b, 0, i);
}
o.flush();
o.close();
}
我现在遇到一个麻烦事,请大家帮忙我想一下哪里出问题了,就是我要导出excel表,首先先把数据库的数据写到excel表放到服务器上,然后再读取服务器的excel表到客户端,现在一个问题就是当把数据库写到excel文件到服务器产生一个excel的随机文件,然后再客户端读取服务器的excel文件时,在服务器里又出现一个不同文件名但内容相同的excel文件,不知道是什么回事,也就是说整个过程产生了两个文件,我只要产生一个文件供客户端读取就行了的。请大家帮忙哈,谢谢了。。
String filename=path+"/gasGas"+Util.genRandomNum(8)+"Info.xls";
OutputStream os = new FileOutputStream(filename);
WritableWorkbook wwb = Workbook.createWorkbook(os);
Workbook ws = wwb.createSheet("Sheet1", 0);
for (int i = 0; i < split.length; i++){
jxl.write.Label wlabel0;
wlabel0 = new jxl.write.Label(i, 0, split[i],wcf);
ws.addCell(wlabel0);
}
wwb.write();
wwb.close();
os.close();
然后再读取服务器的excel又产生了一个随机文件在服务器
java.io.OutputStream o = response.getOutputStream();
File fileLoad=new File(filename);//这里的filename文件名就是上面要写到excel表的文件名
byte b[] = new byte[(int)fileLoad.length()];
response.reset();
FileInputStream fileInputStream =
new java.io.FileInputStream(filename);
int i;
while ((i=fileInputStream.read(b)) != -1) {
o.write(b, 0, i);
}
o.flush();
o.close();
}
解决方案 »
- 提问几个JSP的菜鸟问题
- 在hibernate 多对多表删除
- 怎么用JSF的<h:selectOneMenu> 做联动?
- 各位大侠,有谁熟悉EasyJF开源项目啊,,
- 我在webapps/root/目录下建了一个index.html,当我再启动tomcat时,欢迎主页就是index.html而不是默认的index.jsp了,为什么?
- 我的jb为什么突然不能用了!
- 通过castor生成的java类怎样在最终xml中加入href属性?
- 那位能提供jsp+sessionBean+entityBean,对主从表进行添加删除修改的的例子,高分重谢。
- 哪里有JBUILDER7.0
- hibernate多对一映射查询不了关联对象的问题
- 在线等,雪地跪求
- JAVA如何动态的创建表
这个os不就是个输出流么。你直接指向ServletOutStream就应该可以了。
对于lz出现的问题,我觉得可能是多次测试产生的文件吧(要在确认),lz也可以在下载完成后把文件删除试试
恩,谢谢哈。
然后向补充下问题的描述哈,我现在就是发现如果客户端机器没有安装迅雷的话,直接用IE自带的下载,就不会产生第二个文件了,现在就是说当用户点击导出,IE弹出保存对话框,产生一个excel。我点击保存,然后就弹出迅雷的下载对话框,我点击下载按钮,又产生一个excel文件。。如果没有弹出迅雷下载,就不会产生第二个文件了。