问题:在jsp页面中,如何将数据导出为doc、xls格式的文件。描述:在jsp页面中,我只是让它负责显示数据,比如 <c:forEach items="${requestScope.newsList.result}" var="list">
<tr>
<td width="5%" style="text-align:center;"><span>${list.id}</span></td>
<td width="35%" style="text-align:left; text-indent:2em;">
<a href="#" title="${list.newsContent}"><span>${list.newsTitle}</span></a>
</td>
<td width="15%" style="text-align:center;"><span>${list.newsCol }</span></td>
<td width="15%" style="text-align:center;"><span>${list.newsAuthor }</span></td>
<td width="20%" style="text-align:center;"><span>${list.newsDate }</span></td>
<td width="10%" style="text-align:center;">
<div style="float:left;width:50px;height:17px;background:url(../images/IcoBtn.gif)no-repeat;border: 0;background-position: -222px 0px;">
<a href="NewsAction?id=${list.id}&action=editnews">
<img width="50" height="17" style="border:0;" src="../images/Empty.gif" /></a>
</div><input type="checkbox" name="chk" value="${list.id}" />
</td>
</tr>
</c:forEach>
预期想实现的效果:当我点击某一个超链接的时候,跳转到一个servlet中,在里面进行相应的处理,处理完成后返回原页面。提问:1、如何实现上面所说的效果。
2、点击超链接的时候,那个超链接应该注意些什么。因为在同一在页面中,可能存在多个<c:forEach></c:forEach>.
3、在servlet里面,调用相应的处理方法的时候应该注意什么.因为在这个项目中,我是基于MVC模式开发的(dao层与数据库层交互、domain层封装javaBean、service层与dao层、web层交互、web层主要负责接收数据、调用处理方法、跳转)
<tr>
<td width="5%" style="text-align:center;"><span>${list.id}</span></td>
<td width="35%" style="text-align:left; text-indent:2em;">
<a href="#" title="${list.newsContent}"><span>${list.newsTitle}</span></a>
</td>
<td width="15%" style="text-align:center;"><span>${list.newsCol }</span></td>
<td width="15%" style="text-align:center;"><span>${list.newsAuthor }</span></td>
<td width="20%" style="text-align:center;"><span>${list.newsDate }</span></td>
<td width="10%" style="text-align:center;">
<div style="float:left;width:50px;height:17px;background:url(../images/IcoBtn.gif)no-repeat;border: 0;background-position: -222px 0px;">
<a href="NewsAction?id=${list.id}&action=editnews">
<img width="50" height="17" style="border:0;" src="../images/Empty.gif" /></a>
</div><input type="checkbox" name="chk" value="${list.id}" />
</td>
</tr>
</c:forEach>
预期想实现的效果:当我点击某一个超链接的时候,跳转到一个servlet中,在里面进行相应的处理,处理完成后返回原页面。提问:1、如何实现上面所说的效果。
2、点击超链接的时候,那个超链接应该注意些什么。因为在同一在页面中,可能存在多个<c:forEach></c:forEach>.
3、在servlet里面,调用相应的处理方法的时候应该注意什么.因为在这个项目中,我是基于MVC模式开发的(dao层与数据库层交互、domain层封装javaBean、service层与dao层、web层交互、web层主要负责接收数据、调用处理方法、跳转)
解决方案 »
- 求java打印数据库中的数据,从打印机中打印出来是表格形式的
- 可能是老题目,模型是购物车模式的,怎么去掉重复选择的物品??
- servlet中的参数问题servlet中的参数response据说是用来返回结果的,那么传近来的response是什么东西呢?
- 怎么把内容保存为图片?
- jsp生成的下载文档在unix下文件名的中文问题
- 请问,在哪里可下载VSS和Project
- Servlet版本间(忘了问的是哪两个版本了)的不同是什么?
- 现在一般的B/S系统大家还用APPLET吗?
- 谁知道k线图的画法。
- 如何维护大数据量的表
- 写junit的时候MYSQL中文显示乱码
- 怎样连续多次读取access中同一字段的数据
下面是代码例子File file = new File("成功发送量报表.xls");
WritableWorkbook wwb = Workbook.createWorkbook(file);
WritableSheet ws = wwb.createSheet("Test Sheet 1", 0);
jxl.write.Label labelDate = new jxl.write.Label(0, 0, "日期");
jxl.write.Label labelEmail = new jxl.write.Label(1, 0, "邮件地址");
ws.addCell(labelDate);
ws.addCell(labelEmail);
for(int i = 0; i < ciList.size(); i++) {
CustomerInfo ci = ciList.get(i);
Label labelCustomerDate = new Label(0, i+1, Tool.formatDate(ci.getInputDate()));
Label labelCustomerEmail = new Label(1, i+1, ci.getCustomer().getEmail());
ws.addCell(labelCustomerDate);
ws.addCell(labelCustomerEmail);
}
wwb.write();
wwb.close();
FileInputStream f = new FileInputStream(file);
byte[] fb = new byte[f.available()];
f.read(fb);
response.setHeader("Content-disposition", "attachment; filename="+new String("成功发送量报表.xls".getBytes("gb2312"),"iso8859-1"));
ByteArrayInputStream bais = new ByteArrayInputStream(fb);
int b;
while ((b = bais.read()) != -1 ) {
response.getOutputStream().write(b);
}
response.getOutputStream().flush();
<tr>
<td width="5%" style="text-align:center;"><span>${list.id}</span></td>
<td width="35%" style="text-align:left; text-indent:2em;">
<a href="#" title="${list.newsContent}"><span>${list.newsTitle}</span></a>
</td>
<input type="button" id="export" name="export" value="导出Excel" onClick="exportexcel()" class="button">
<form name="exportform" action ="../../exportexcel" method="post" style=" display:inline;">
<input type="hidden" id="title" name="title" value="访问情况">
<input type="hidden" id="reporttablevalue" name="reporttablevalue">
</form>
function exportexcel(){
这里先把上面你输出的数据赋值给reporttablevalue。
exportform.submit();
}
大致这样就可以了。
<%
response.setHeader("Content-disposition","attachment;filename=employeePersonal.doc");%>