ec标签多表关联查询结果导出excel表为空解决方法

当查询数据需要两表或多表关联查询结果的时候,可以使用如下方式进行查询:
getSession().createQuery("select new map(pm.name as name1,pm.sex as sex1,pmm.oldOrgName as oldOrgName1,pmm.id as id1) from PartyMemberMove pmm,PartyMember pm where pmm.status=0 and pmm.partyMemberId=pm.id and pm.valid=1 order by pmm.id desc").list();

该方式查询结果集合里存放的是hashMap类型对象,里面有数据对:('name',对应值),('sex',对应值),('oldOrgName',对应值);

当使用ec table遍历该集合时方式如下即可实现excel表的正确导出:
<ec:table items="all" var="item" rowsDisplayed="10" action="${ctx}/partyMember/partyMember.do" >
<ec:exportXls fileName="UserList.xls" tooltip="Export Excel"/>
<ec:row>
<ec:column property="rowcount" cell="rowCount" sortable="false" title="序号"/>
<ec:column property="name1" title="姓名"/>
<ec:column property="sex1" title="性别"/>
<ec:column property="oldOrgName1" title="原所属组织"/>
<ec:column property="null" title="操作"  sortable="false" viewsAllowed="html">
<a href="#" onclick="del('${ctx }/partyMember/partyMember.do?method=updateMoveStatus&partyMemberMoveId=${item.id1 }&status=1','确定审批通过吗?');">审批通过</a>
<a href="#" onclick="del('${ctx }/partyMember/partyMember.do?method=updateMoveStatus&partyMemberMoveId=${item.id1 }&status=0','确定审批否决吗?');">审批否决</a>
</ec:column>
</ec:row>
</ec:table>

注意:查询的时候要起别名,否则如果不起别名
getSession().createQuery("select new map(pm.name,pm.sex,pmm.oldOrgName,pmm.id) from PartyMemberMove pmm,PartyMember pm where pmm.status=0 and pmm.partyMemberId=pm.id and pm.valid=1 order by pmm.id desc").list();
显示的时候用以下方式:

<ec:table items="all" var="item" rowsDisplayed="10" action="${ctx}/partyMember/partyMember.do" >
<ec:exportXls fileName="UserList.xls" tooltip="Export Excel"/>
<ec:row>
<ec:column property="rowcount" cell="rowCount" sortable="false" title="序号"/>
<ec:column property="0" title="姓名"/>
<ec:column property="1" title="性别"/>
<ec:column property="2" title="原所属组织"/>
<ec:column property="null" title="操作"  sortable="false" viewsAllowed="html">
<a href="#" onclick="del('${ctx }/partyMember/partyMember.do?method=updateMoveStatus&partyMemberMoveId=${item['3'] }&status=1','确定审批通过吗?');">审批通过</a>
<a href="#" onclick="del('${ctx }/partyMember/partyMember.do?method=updateMoveStatus&partyMemberMoveId=${item['3'] }&status=0','确定审批否决吗?');">审批否决</a>
</ec:column>
</ec:row>
</ec:table>

你可能感兴趣的:(Excel)