Xpages 将视图日期范围导出到excel

Xpages 将视图日期范围导出到excel,xpages,xpages-ssjs,Xpages,Xpages Ssjs,我正在尝试将视图日期范围导出到excel,但notesviewentry似乎总是空的。 我的代码: var vDateRange = session.createDateRange(sessionScope.selectedStartDate, sessionScope.selectedEndDate); var exCon = facesContext.getExternalContext(); var writer = facesContext.getResponseWriter(); va

我正在尝试将视图日期范围导出到excel,但notesviewentry似乎总是空的。 我的代码:

var vDateRange = session.createDateRange(sessionScope.selectedStartDate, sessionScope.selectedEndDate);
var exCon = facesContext.getExternalContext();
var writer = facesContext.getResponseWriter();
var response = exCon.getResponse();
var projects:NotesView = database.getView('visits_by_date_VB')
var viewNav:NotesViewNavigator = projects.createViewNav();
var viewEnt:NotesViewEntry = viewNav.getEntryByKey([vDateRange]);
var output:string = "";
while (viewEnt != null) {
 output += "<tr>";
 output += "<td>" + viewEnt.getColumnValues()[0]; + "</td>";
 output += "<td>" + viewEnt.getColumnValues()[1] + "</td>";
 output += "<td>" + viewEnt.getColumnValues()[2] + "</td>";
 output += "<td>" + viewEnt.getColumnValues()[3] + "</td>";
 output += "<td>" + viewEnt.getColumnValues()[4] + "</td>";
 output += "</tr>";
viewEnt = viewNav.getNext(viewEnt);
}
response.setContentType("application/vnd.ms-excel");
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Content-Disposition","attachment; filename=export.xls");
writer.write("<table>");
writer.write("<thead><tr>");
writer.write("<td><b>Branch Id</b></td>");
writer.write("<td><b>Company Name</b></td>");
writer.write("<td><b>Share value</b></td>");
writer.write("<td><b>City</b></td>");
writer.write("<td><b>Country</b></td>");
writer.write("</tr></thead>");
writer.write(output);
writer.write("</table>");
writer.endDocument();
var vDateRange=session.createDateRange(sessionScope.selectedStartDate,sessionScope.selectedEndDate);
var exCon=facesContext.getExternalContext();
var writer=facesContext.getResponseWriter();
var response=exCon.getResponse();
var项目:NotesView=database.getView('按日期访问')
var viewNav:NotesViewNavigator=projects.createViewNav();
var viewEnt:NotesViewEntry=viewNav.getEntryByKey([vDateRange]);
var输出:string=“”;
while(viewEnt!=null){
输出+=“”;
输出+=“”+viewEnt.getColumnValues()[0];+“”;
输出+=“”+viewEnt.getColumnValues()[1]+“”;
输出+=“”+viewEnt.getColumnValues()[2]+“”;
输出+=“”+viewEnt.getColumnValues()[3]+“”;
输出+=“”+viewEnt.getColumnValues()[4]+“”;
输出+=“”;
viewEnt=viewNav.getNext(viewEnt);
}
response.setContentType(“application/vnd.ms excel”);
setHeader(“缓存控制”、“无缓存”);
setHeader(“内容处置”、“附件;文件名=export.xls”);
作者:写(“”);
作者:写(“”);
writer.write(“分支Id”);
作者:填写(“公司名称”);
写入(“股份价值”);
作家。写(“城市”);
作者:写(“国家”);
作者:写(“”);
writer.write(输出);
作者:写(“”);
writer.endDocument();

sessionScope不是空的。

您试图获取基于范围的条目,而不是获取范围之间的所有条目。尝试:

var viewEntryCollection:NotesViewEntryCollection = projects.getAllEntriesByKey([vDateRange]);
var viewEnt:NotesViewEntry = viewEntryCollection.getFirstEntry();

保罗,谢谢,成功了。我还必须删除VDateRange周围的[]是否可以在单元格中添加excel公式?不确定。如果你想要一些基本的东西,我推荐ApachePOI。文档非常好,如果您已经通过LotusScript或其他脚本语言与Excel或Word进行了集成,那么很容易理解。