controller配置
<request-map uri="ProductInventoryInAndOutDetail.xls"> <security https="true" auth="true"/> <response name="success" type="view" value="ProductInventoryInAndOutDetailExport"/> </request-map>
<view-map name="ProductInventoryInAndOutDetailExport" type="screenxls" page="component://product/widget/query/QueryScreens.xml#ProductInventoryInAndOutDetailExport" content-type="application/vnd.ms-excel"/>
这里URI以.xls结尾导出的文件才会带有xls的文件格式。type="screenxls"和content-type="application/vnd.ms-excel"是固定的格式;
Screen配置
<screen name="ProductInventoryInAndOutDetailExport">
<section>
<actions>
.....
</actions>
<widgets>
<screenlet>
....
</screenlet>
</widgets>
</section>
</screen>
注意:如果<widgets>里面引用了<decorator-screen>,那么导出的excel也会把这个装饰器的内容打印出来。表格可以引用form或者ftl文件。这里只介绍form的
form配置
<form name="ProductInventoryInAndOutDetailListForExport" type="list" target="" title="" list-name="inventoryItemOutAndInDetail" odd-row-style="k-alt" header-row-style="header-row-2" default-table-style="basic-table hover-bar" paginate-target="${productInventoryInAndOutDetail}" override-list-size="${overrideListSize}"> <field name="num" title="序号"><display/></field> <field name="facilityId" title="场所" > <display-entity entity-name="Facility" key-field-name="facilityId" description="${facilityName}[${facilityId}]"/> </field> <field name="productId" > <display description="'${productId}"/> </field>
</form>
list-name="需要展示的list" paginate-target="查询的url" override-list-size="list的size"
值得注意的是当field字段有use-when时,导出可能会非常慢