关于JXL操作Excel的问题!

woainilxt 2011-01-06 02:33:21
1.Workbook wb = Workbook.getWorkbook(new File(path));//加载模板数据
2.String loadpath = ........;
File targetFile = new File(loadpath);// 创建 targetFile
3.WritableWorkbook wwb = Workbook.createWorkbook(targetFile, wb);//将模板考入targetFile中
4..............//将数据库的数据考入到targetFile中。
5.docStream = new FileInputStream(loadpath);//把数据流返回给用户
我现在是分这几步来实现EXCEL的导出功能的,但是现在有个问题,用户比较多的时候会直接把系统拖死。现在看看 有可能是在本地生成了targetFile这个问题造成的,但是也不知道应该怎么改。
...全文
130 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
安心逍遥 2011-06-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 magong 的回复:]
如果不想生成targetFile,你可以跳过中间文件生成步骤,直接输出字节流给用户的。

OutputStream os = response.getOutputStream();//取得输出流
response.reset();//清空输出流
response.setHeader("Content-disposition", "attachment; filename=" +……
[/Quote]

顶一楼的,祝楼主好运
arsen1222 2011-06-13
  • 打赏
  • 举报
回复
WritableWorkbook wwb = Workbook.createWorkbook(fos, rwb);
其中:Workbook rwb = Workbook.getWorkbook(templateFile);FileOutputStream fos = new FileOutputStream(file);在加载模板文件的时候导致其它用户无法使用
只要一运行,系统就进入死机状态,导出后方能用。哪位大侠支支招,非常感谢!
UPC_思念 2011-06-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 magong 的回复:]

如果不想生成targetFile,你可以跳过中间文件生成步骤,直接输出字节流给用户的。

OutputStream os = response.getOutputStream();//取得输出流
response.reset();//清空输出流
response.setHeader("Content-disposition", "attachment;……
[/Quote]

1楼方法可行
magong 2011-01-06
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 woainilxt 的回复:]

2楼这样写的话 WritableWorkbook wwb = Workbook.createWorkbook(targetFile, wb);//将模板考入targetFile中 这一步怎么做啊?
[/Quote]
你问我(1楼)?

WritableWorkbook wwb = Workbook.createWorkbook(os, wb);//创建可写工作薄

其实第一个参数可以是文件流,也可以是网络字节流,文件流你会用,网络字节流是一样的。
kurama_mail 2011-01-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 woainilxt 的回复:]
还有一个问题就是Workbook wb = Workbook.getWorkbook(new File(path)) 这个 加载模板数据的话 会不会对系统的性能 有很大的影响?
[/Quote]
理论上没影响,检查下你是否多用户操作了同一本地文件或存在内存泄露问题吧。
你先跑去读取Excel获取模版信息,再建立一个Excel输出?
检查下是否你所有的操作都跑去对同一个模版(同一文件)建立I/O流,如果是就是你们设计上存在问题。
woainilxt 2011-01-06
  • 打赏
  • 举报
回复
2楼这样写的话 WritableWorkbook wwb = Workbook.createWorkbook(targetFile, wb);//将模板考入targetFile中 这一步怎么做啊?
haixiang710 2011-01-06
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 woainilxt 的回复:]
还有一个问题就是Workbook wb = Workbook.getWorkbook(new File(path)) 这个 加载模板数据的话 会不会对系统的性能 有很大的影响?
[/Quote]
如果多个用户进行相关操作.肯定会影响性能...
最好处理一下,比如:相同的模板只加载一次之类的.
woainilxt 2011-01-06
  • 打赏
  • 举报
回复
还有一个问题就是Workbook wb = Workbook.getWorkbook(new File(path)) 这个 加载模板数据的话 会不会对系统的性能 有很大的影响?
magong 2011-01-06
  • 打赏
  • 举报
回复
如果不想生成targetFile,你可以跳过中间文件生成步骤,直接输出字节流给用户的。

OutputStream os = response.getOutputStream();//取得输出流
response.reset();//清空输出流
response.setHeader("Content-disposition", "attachment; filename=" + fname + ".xls"); response.setContentType("application/msexcel");//定义输出类型
WritableWorkbook wwb = Workbook.createWorkbook(os);//创建可写工作薄
...

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧