导出excel 利用xml文件

controller中

@RequestMapping("/exportExcel1.jhtml")
    public String exportExcel1(HttpServletRequest req, HttpServletResponse resp,
            HttpSession session, DataArea dataArea, ModelMap modelMap) {
        try {
            List<DataArea> list = dataAreaService.list(dataArea);
            modelMap.put("list", list);            
            // 使用xml模板导出
            String exlName = "地域投放表.xls";
            resp.addHeader("Content-Disposition", "attachment; filename="
                    + new String(exlName.getBytes("GBK"), "ISO8859-1"));
            resp.setContentType("application/vnd.ms-excel;charset=UTF-8");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }        
        return "data/dataArea/export1.xml";

    }


*.xml.jsp

<%@page contentType="text/html;charset=utf-8" language="java"%>
<%@page isELIgnored="false"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@taglib prefix="afocus" uri="http://www.afocus.com.cn/jsp/core"%>
<?xml version="1.0"?>
<ss:Workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet">
    <ss:Worksheet ss:Name="Sheet1">
        <ss:Table>
            <ss:Column ss:Width="50"/>
            <ss:Column ss:Width="80"/>
            <ss:Column ss:Width="80"/>
            <ss:Column ss:Width="80"/>
            <ss:Column ss:Width="50"/>
            <ss:Column ss:Width="100"/>
            <ss:Row>
                <ss:Cell>
                    <ss:Data ss:Type="String">序号</ss:Data>
                </ss:Cell>
                <ss:Cell>
                    <ss:Data ss:Type="String">投放渠道</ss:Data>
                </ss:Cell>
                <ss:Cell>
                    <ss:Data ss:Type="String">类别</ss:Data>
                </ss:Cell>
                <ss:Cell>
                    <ss:Data ss:Type="String">省份</ss:Data>
                </ss:Cell>
                <ss:Cell>
                    <ss:Data ss:Type="String">指数</ss:Data>
                </ss:Cell>
                <ss:Cell>
                    <ss:Data ss:Type="String">时间</ss:Data>
                </ss:Cell>
            </ss:Row>
            <c:forEach items="${list}" var="dataArea" varStatus="s">
                <ss:Row>
                    <ss:Cell>
                        <ss:Data ss:Type="Number">${s.index+1}</ss:Data>
                    </ss:Cell>
                    <ss:Cell>
                        <ss:Data ss:Type="String">${dataArea.platformName}</ss:Data>
                    </ss:Cell>
                    <ss:Cell>
                        <ss:Data ss:Type="String">${dataArea.categoryName}</ss:Data>
                    </ss:Cell>
                    <ss:Cell>
                        <ss:Data ss:Type="String">${dataArea.province}</ss:Data>
                    </ss:Cell>
                    <ss:Cell>
                        <ss:Data ss:Type="Number">${dataArea.indexNum}</ss:Data>
                    </ss:Cell>
                    <ss:Cell>
                        <ss:Data ss:Type="String"><fmt:formatDate type="date" value="${dataArea.date}"
                                pattern="yyyy-MM-dd" /></ss:Data>
                    </ss:Cell>
                </ss:Row>
            </c:forEach>
        </ss:Table>
    </ss:Worksheet>
</ss:Workbook>

若是应用了tiles 或sitematch等模板 要过滤掉

<excludes>

        <pattern>/*/*dataArea/exportExcel1.jhtml*</pattern>    
        <pattern>/*/*/*dataArea/exportExcel1.jhtml*</pattern>

</excludes>

注意此处jhtml后要加* ,否则不能正常导出



你可能感兴趣的:(xml,导出Excel)