我想将一个搜索报告保存到一个excel文件中,但它保存的.xsp扩展名不是excel.
我使用以下代码:
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core" rendered="false">
<xp:this.afterRenderResponse><![CDATA[#{javascript:
var exCon = facesContext.getExternalContext();
var writer = facesContext.getResponseWriter();
var response = exCon.getResponse();
var myView:NotesView = database.getView('vwSearch');
var viewNav:NotesViewNavigator = myView.createViewNav();
var viewEnt:NotesViewEntry = viewNav.getFirst();
print("2")
response.setContentType("application/vnd.ms-excel");
response.setHeader("Cache-Control", "no-cache");
writer.write("<table>");
writer.write("<thead><tr>");
writer.write("<td><b>Column1Header</b></td>");
writer.write("<td><b>Column2Header</b></td>");
writer.write("<td><b>Column3Header</b></td>");
writer.write("<td><b>Column4Header</b></td>");
writer.write("<td><b>Column5Header</b></td>");
writer.write("</tr></thead>");
while (viewEnt != null) {
writer.write("<tr>");
writer.write("<td>" + viewEnt.getColumnValues()[0] + "</td>");
writer.write("<td>" + viewEnt.getColumnValues()[1] + "</td>");
writer.write("<td>" + viewEnt.getColumnValues()[2] + "</td>");
writer.write("<td>" + viewEnt.getColumnValues()[3] + "</td>");
writer.write("<td>" + viewEnt.getColumnValues()[4] + "</td>");
writer.write("</tr>");
viewEnt = viewNav.getNext(viewEnt);
}
writer.write("</table>");
writer.endDocument()}]]></xp:this.afterRenderResponse>
</xp:view>
Run Code Online (Sandbox Code Playgroud)
我从pdf中使用这段代码......这不是我自己的创作,也许是错误的.
谢谢,
弗洛林
添加一行
response.setHeader("Content-Disposition", "attachment; filename=yourfile.xls");
Run Code Online (Sandbox Code Playgroud)
要么
response.setHeader("Content-Disposition", "inline; filename=yourfile.xls");
Run Code Online (Sandbox Code Playgroud)
使用"内联",浏览器将尝试在浏览器中打开文件,而"附件"将强制下载.
| 归档时间: |
|
| 查看次数: |
955 次 |
| 最近记录: |