Purely JSP without any addtional excel API. Simple but lack of funtional excel control.
Look below codes
<%
String fileName=(String)request.getAttribute("fileName");
fileName = new String(fileName.getBytes("GBK"), "iso-8859-1");
response.reset();
response.setContentType("application/vnd.ms-excel;charset=GBK");
response.addHeader("Content-Disposition","attachment; filename=" + fileName);
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk"/>
</head>
<body>
<table width="100%" border="1" align="right" cellpadding="0" cellspacing="1">
<thead>
<tr>
<th>序号</th>
<th>编码</th>
<th>时间</th>
</tr>
</thead>
<tbody>
<c:forEach var="entity" items="${pageBean.dataList}" varStatus="s">
<tr>
<td><c:out value="${s.index+1}"/></td>
<td><c:out value="${entity.code}"/></td>
<td><fmt:formatDate value="${entity.returnDate}" pattern="yyyy-MM-dd HH:mm:ss" /></td>
</tr>
</c:forEach>
</tbody>
</table>
</body>
</html>
问题:
1. 如果输出为 1000000001,浏览器导出时会转换为科学计数法,变为:1E+10。不好看。
解决办法: <td style='vnd.ms-excel.numberformat:@'><c:out value="${orderDetail.purchaseOrder.outsideNo}"/></td>
特殊数字格式:<fmt:formatNumber value="${businessOrderDetail.quantity*businessOrderDetail.goodsSalesPrice}" type="number" pattern="#,##0.00" />
有comma不会有此问题