java 下载excel 在jsp中写一个表格,然后我想把这个表格下载到本地.就是单击按钮提示是否保存..求详解.. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 怎么个详解法?你后台把要下载的excel,其实不管什么准备好,或者直接给超链接,前台点了就下了 我知道点击按钮跳到action, 但我想说跳到action之后代码怎么写... http://www.cnblogs.com/raymond19840709/archive/2008/06/26/1230289.html可以看下这个 用jxl 三楼能讲解一下,这个下载的原理吗...为什么要创建文件,读取文件,修改文件...还有如果是ssh我应该代码写在哪里... 你直接在网上搜索下poi 我个人感觉ssh框架下用非常简单方便。 简单循环打印 OutputStream os = response.getOutputStream();// 取得输出流 response.reset();// 清空输出流 String urlName = "专家编码"; response.setHeader("Content-disposition", "attachment; filename=" + new String(urlName.getBytes("gbk"), "ISO-8859-1") + ".xls");// 设定输出文件头 response.setContentType("application/msexcel");// 定义输出类型 try { String worksheet = "专家编码"; // 输出的excel文件工作表名 String[] title = { "学校名称", "专家帐号", "专家编码" }; // excel工作表的标题 WritableWorkbook workbook = Workbook.createWorkbook(os); // 建立excel文件 WritableSheet sheet = workbook.createSheet(worksheet, 0); // 添加第一个工作表 // 设置列宽 sheet.setColumnView(0, 20); sheet.setColumnView(1, 40); jxl.write.Label label; // 单元格值居中显示 WritableCellFormat cellFormat = new WritableCellFormat(); cellFormat.setAlignment(jxl.format.Alignment.CENTRE); for (int i = 0; i < title.length; i++) { // Label(列号,行号 ,内容 ) label = new jxl.write.Label(i, 0, title[i], cellFormat); sheet.addCell(label); } List<Object[]> list = stjDao.getAllZj(); // i 行数 for (int i = 0; i < list.size(); i++) { Object[] object = list.get(i); String schoolName = (String) object[0]; String zjName = (String) object[1]; String zjbm = (String) object[2]; if (zjbm == null || "".equals(zjbm)) { zjbm = "学校自评"; } //向execl表中填充值 label = new Label(0, i + 1, schoolName, cellFormat); sheet.addCell(label); label = new Label(1, i + 1, zjName, cellFormat); sheet.addCell(label); label = new Label(2, i + 1, zjbm, cellFormat); sheet.addCell(label); } // 关闭 workbook.write(); workbook.close(); } catch (Exception e) { e.printStackTrace(); } 用poi或者jxl都可以。个人比较推荐jxl,比较轻量级。你google看看。网上很多教程的。 public String excel() throws Exception { String con = buildCon(startDate, endDate); List<Index> index = indexService.getExcel(con); HttpServletResponse response = ServletActionContext.getResponse(); String fileName = "首页访问信息.xls"; fileName = new String(fileName.getBytes("GBK"),"ISO-8859-1"); response.reset(); response.setContentType("application/vnd.ms-excel"); response.setHeader("Content-Disposition","attachment;filename=" + fileName); OutputStream os = response.getOutputStream(); WritableWorkbook book = Workbook.createWorkbook(os); int maxSize = 60000; //一页最多条数 int size = index.size(); int a = size/maxSize; //页数 int b = (size-a*maxSize)%maxSize; //最后一页条数 if(b !=0 ) { a++; } for(int m=0; m<a; m++) { int k = m+1; WritableSheet sheet = book.createSheet("第" + k + "页",m); Label label1=new Label(0,0,"用户名"); Label label2=new Label(1,0,"访问时间"); sheet.addCell(label1); sheet.addCell(label2); Label label = null; int n = 0; if(k == a) { n = m*maxSize+b; }else { n = k*maxSize; } for(int i=m*maxSize,j=0; i<n; i++,j++) { label = new Label(0,j+1,index.get(i).getUsername()); sheet.addCell(label); label = new Label(1,j+1,index.get(i).getDate()); sheet.addCell(label); } } book.write(); book.close(); os.flush(); os.close(); return null; }我是写在action里的大概这样就可以 我是加了分页的 你可以根据需求改改 100分请教问题,在线等,要详细,谢谢谢谢, 我能否当一个JAVA程序员 寻找开源的基于HTTP的批量图片上传组件 请教关于select的问题 关于 java 发送 Calendar 类型的 Mail 小鸟雪地跪求大神帮助,SpringMVC页面跳转问题! 关于BEAN文件存在路径的困惑 JSP设计里提到的包"com.ora.jsp.util"哪里有? ireport图标报表html显示问题 jsp上传文件后为什么在Eclipse中看不到新增的文件 日历控件默认显示时间 500页面模板
OutputStream os = response.getOutputStream();// 取得输出流
response.reset();// 清空输出流
String urlName = "专家编码";
response.setHeader("Content-disposition", "attachment; filename="
+ new String(urlName.getBytes("gbk"), "ISO-8859-1") + ".xls");// 设定输出文件头
response.setContentType("application/msexcel");// 定义输出类型
try {
String worksheet = "专家编码"; // 输出的excel文件工作表名
String[] title = { "学校名称", "专家帐号", "专家编码" }; // excel工作表的标题
WritableWorkbook workbook = Workbook.createWorkbook(os); // 建立excel文件
WritableSheet sheet = workbook.createSheet(worksheet, 0); // 添加第一个工作表
// 设置列宽
sheet.setColumnView(0, 20);
sheet.setColumnView(1, 40);
jxl.write.Label label;
// 单元格值居中显示
WritableCellFormat cellFormat = new WritableCellFormat();
cellFormat.setAlignment(jxl.format.Alignment.CENTRE);
for (int i = 0; i < title.length; i++) {
// Label(列号,行号 ,内容 )
label = new jxl.write.Label(i, 0, title[i], cellFormat);
sheet.addCell(label);
}
List<Object[]> list = stjDao.getAllZj();
// i 行数
for (int i = 0; i < list.size(); i++) {
Object[] object = list.get(i);
String schoolName = (String) object[0];
String zjName = (String) object[1];
String zjbm = (String) object[2];
if (zjbm == null || "".equals(zjbm)) {
zjbm = "学校自评";
}
//向execl表中填充值
label = new Label(0, i + 1, schoolName, cellFormat);
sheet.addCell(label);
label = new Label(1, i + 1, zjName, cellFormat);
sheet.addCell(label);
label = new Label(2, i + 1, zjbm, cellFormat);
sheet.addCell(label);
}
// 关闭
workbook.write();
workbook.close();
} catch (Exception e) {
e.printStackTrace();
}
public String excel() throws Exception {
String con = buildCon(startDate, endDate);
List<Index> index = indexService.getExcel(con);
HttpServletResponse response = ServletActionContext.getResponse();
String fileName = "首页访问信息.xls";
fileName = new String(fileName.getBytes("GBK"),"ISO-8859-1");
response.reset();
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition","attachment;filename=" + fileName);
OutputStream os = response.getOutputStream();
WritableWorkbook book = Workbook.createWorkbook(os);
int maxSize = 60000; //一页最多条数
int size = index.size();
int a = size/maxSize; //页数
int b = (size-a*maxSize)%maxSize; //最后一页条数
if(b !=0 ) {
a++;
}
for(int m=0; m<a; m++) {
int k = m+1;
WritableSheet sheet = book.createSheet("第" + k + "页",m);
Label label1=new Label(0,0,"用户名");
Label label2=new Label(1,0,"访问时间");
sheet.addCell(label1);
sheet.addCell(label2);
Label label = null;
int n = 0;
if(k == a) {
n = m*maxSize+b;
}else {
n = k*maxSize;
}
for(int i=m*maxSize,j=0; i<n; i++,j++) {
label = new Label(0,j+1,index.get(i).getUsername());
sheet.addCell(label);
label = new Label(1,j+1,index.get(i).getDate());
sheet.addCell(label);
}
}
book.write();
book.close();
os.flush();
os.close();
return null;
}我是写在action里的
大概这样就可以
我是加了分页的 你可以根据需求改改