MyException - 我的异常网
当前位置:我的异常网» J2EE » jsp导出excel有关问题。高分

jsp导出excel有关问题。高分

www.myexceptions.net  网友分享于:2015-08-26  浏览:92次
jsp导出excel问题。急,高分
目前我在jsp页面上使用了如下的代码:

 response.setHeader("Content-disposition", "attachment; filename=print_tmp.xls");


这样的话,当浏览器访问页面的时候。就会给出可以下载excel的提示框。
这个很容易做。

 但是由于现在从数据库查询出来的数据量太大了,用一个excel中一个sheet是存不了。
一个excel中的一个sheet只能存放65535条记录。如果超过的话,则无法打开的。

所以我想把超过65535的其他数据存到同一个excel中的第二个sheet。

如何处理数据量大时导入excel问题,我自己想了一些思路。如下:

第一种思路:
可不可以使用类似下面的代码:
response.setHeader("Content-disposition", "attachment; filename=print_tmp.xls");

在数据量超过65535的情况下,跳出的excel框中已经自动的增加了另一个sheet了。不用我做太多的处理。
只是使用类似的命令。

第二种思路:
  就是可以用多个excel来存的。不一定要使用同一个excel中的多个sheet。
  例如第一个excel存65535.第二个excel存另外的数据。
  这样的话,当在页面上点击导出excel按钮时,弹出两个提示框。其中在第一个提示框中点击保存按钮后
  可以把65535条记录存到excel。接着可以在第二个提示框中,点击保存按钮,把其他的数据保存到另外一个excel中
   
  备注:
  目前我是使用这种思路做的,但是还是只能弹出一个提示框,我是这样做的,
  当我访问projectExcel.jsp时,就会弹出一个提示框,提示可以下载excel。所以我在这个页面上嵌套了一段javascipt代码,目的是再次的访问projectExcel.jsp,好可以再弹出一个提示框,但是始终无法成功的。因为javascipt根本没有执行。

  请问高手该如何弹出两个提示框呢?

第三中思路:
  就是在页面上点击导出excel按钮后,使用后台的代码把数据存到某个excel上,此时可以使用一些jar包来生成多个sheet。
  这样的话,用一个excel就可以保存大量的数据了。
  但是这样的话,有一个缺点,就是用户无法自己指定要在哪个位置保存excel了。用户体验不是很好的。


关于导出excel时,由于数据量太大的情况,做好该如何处理呢?除了考虑技术,还得考虑用户体验。

如果我的第一种思路可以的话,当然是最好了。但估计希望渺茫。

不知道该怎么办。请高手指教一下。






------解决方案--------------------
用第3种吧。后台用poi或者jxl生成文件,前台让它下载去。点生成文件的时候给他个等待画面,这种效果感觉最好。生成好的文件,相当于让他下载你服务器上一个文件啊,跟你任意网站下载文件时另存为一样的,可以选择路径。

------解决方案--------------------
一般我做的都是结合分页来实现的。每次查询一次数据库。导出一次。
------解决方案--------------------
第一种,第二种均实现不了,第三种
参考
import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException
import java.io.IOException
import java.io.InputStream; 
import java.util.List; 
import java.util.Locale; 
import jxl.Cell; 
import jxl.Sheet; 
import jxl.Workbook; 
import jxl.WorkbookSettings; 
import jxl.format.Colour; 
import jxl.read.biff.BiffException; 
import jxl.write.Label; 
import jxl.write.WritableSheet; 
import jxl.write.WritableWorkbook; 
import jxl.write.WriteException; 
import jxl.write.biff.RowsExceededException; 
/* 
* java 操作EXCEL文件的类,需集合jxl.jar包 
* 读取并显示EXCEL数据 , 向EXCEL文件内写入数据 


*/ 
public class ExcelUtils { 

/* public static void main(String[] args) { 
System.out.println(":===="); 
File file = new File("E:\\Book1.xls"); 
ExcelUtils eu = new ExcelUtils(); 
eu.readExcel(file, 0); 

System.out.println(":===="); 
File file = new File("E:\\Book2.xls"); 

ExcelUtils eu = new ExcelUtils();
String[] title = {"xingming" , " nianling "}; 
eu.addDateToExcelFile(file, null, "jerry.gao", title); 

}*/ 

public ExcelUtils() { 
super(); 
// TODO Auto-generated constructor stub 



//读取EXCEL 文件 ,num 为第几张sheet , 将结果显示出来 
public void readExcel(File file, int num) { 

try { 
Workbook wb = Workbook.getWorkbook(file); 
Sheet sheet = wb.getSheet(num); //获取第几张SHEET表 
for (int r = 0; r < sheet.getRows(); r++) { 
for (int c = 0; c < sheet.getColumns(); c++) { 
System.out.print(sheet.getCell(c, r).getContents() + " | "); 

文章评论

看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
代码女神横空出世
代码女神横空出世
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
 程序员的样子
程序员的样子
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
我的丈夫是个程序员
我的丈夫是个程序员
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
10个调试和排错的小建议
10个调试和排错的小建议
老程序员的下场
老程序员的下场
我是如何打败拖延症的
我是如何打败拖延症的
编程语言是女人
编程语言是女人
程序员都该阅读的书
程序员都该阅读的书
程序员的鄙视链
程序员的鄙视链
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
漫画:程序员的工作
漫画:程序员的工作
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
那些争议最大的编程观点
那些争议最大的编程观点
鲜为人知的编程真相
鲜为人知的编程真相
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
每天工作4小时的程序员
每天工作4小时的程序员
为什么程序员都是夜猫子
为什么程序员都是夜猫子
如何成为一名黑客
如何成为一名黑客
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
旅行,写作,编程
旅行,写作,编程
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
程序员应该关注的一些事儿
程序员应该关注的一些事儿
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
程序员和编码员之间的区别
程序员和编码员之间的区别
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
总结2014中国互联网十大段子
总结2014中国互联网十大段子
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有