废话不多说,直接上代码:

前端代码:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html xmlns:x="urn:schemas-microsoft-com:office:excel">

<script type="text/javascript">
function exportExcel(){
window.open('${ctx}/exportToExcel.jsp?exportToExcel=YES');
}
</script>
<style type="text/css"> 
body,table{ 
font-size:12px; 

table{ 
table-layout:fixed; 
empty-cells:show; 
border-collapse: collapse; 
margin:0 auto; 

td{ 
height:30px; 
/* mso-number-format:'\@';*/

h1,h2,h3{ 
font-size:12px; 
margin:0; 
padding:0; 

.table{ 
border:1px solid #cad9ea; 
color:#666; 

.table th { 
background-repeat:repeat-x; 
height:30px; 

.table td,.table th{ 
border:1px solid #cad9ea; 
padding:0 1em 0; 

.table tr.alter{ 
background-color:#f5fafe; 
}
</style>
<head>
<!-- 显示网格线 -->
<xml>
<x:ExcelWorkbook>
<x:ExcelWorksheets>
<x:ExcelWorksheet>
<x:Name>工作表标题</x:Name>
<x:WorksheetOptions>
<x:Print>
<x:ValidPrinterInfo />
</x:Print>
</x:WorksheetOptions>
</x:ExcelWorksheet>
</x:ExcelWorksheets>
</x:ExcelWorkbook>
</xml>  <br>
<!-- 显示网格线 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Export to Excel</title>
</head>
<body>
<%
String exportToExcel = request.getParameter("exportToExcel");
if (exportToExcel != null && exportToExcel.toString().equalsIgnoreCase("YES")) {
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "inline; filename=" + "excel.xls");
}
%>
<table width="90%" class="table">
<tr>
<th colspan="11" style="font-size:24px;">县级养殖场(户)养殖环节病死猪无害化处理情况登记表</th>
</tr>
<tr>
<th colspan="11" align="right">
<fmt:formatDate value="${create_time}" pattern="yyyy 年 MM 月"/>&nbsp;&nbsp;
</th>
</tr>
<tr>
<th>乡镇名称</th> 
<th>行政村名</th> 
<th>养殖场(户)名称</th> 
<th>身份证号</th> 
<th>联系电话</th> 
<th>一卡通</th> 
<th>生猪饲养量</th> 
<th>病死猪无害化处理量</th>
<th>处理方式</th>
<th>养殖场(户)负责人签名</th>
<th>监管人员签名</th>
</tr>
<c:forEach var="list" items="${list}">
<tr> 
<td>${list.town_name}</td>
<td>${list.village_name}</td>
<td>${list.name}</td>
<td style="mso-number-format:'\@';">${list.card_id}</td>
<td style="mso-number-format:'\@';">${list.tel}</td>
<td style="mso-number-format:'\@';">${list.onecard_id}</td>
<td>${list.feed_quantity}</td>
<td>${list.harmless_quantity}</td>
<td>高温处理</td>
<td></td>
<td></td>
</tr> 
</c:forEach>
<tr class="alter"> 
<td>县级合计</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>${total}</td>
<td></td>
<td></td>
<td></td>
</tr>
</table> 
    <br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>  
              
    <%  
        if (exportToExcel == null) {
    %>
    <a href="javascript:exportExcel();">导出为Excel</a>  
    <%  
        }
    %>
</body>
</html>

后端代码:

public void exportToExcel() {
String roleId = getSessionAttr("roleId");
String town_name = getPara("town_name");
String village_name = getPara("village_name");
String create_time = getPara("create_time");

try {
String sql = "";
List<Farmers> list = null;
if(!"".equals(create_time) && null!=create_time){
// sql+=" and a.create_time like '%"+create_time+"%'";
if("1".equals(roleId) || "18".equals(roleId)){
sql = " from t_farmers a where 1=1 ";
} else {
sql = " from t_farmers a where a.user_id='"+roleId+"' ";
}

if(!"".equals(town_name) && null!=town_name){
sql+=" and a.town_name like '%"+town_name+"%'";
}
if(!"".equals(village_name) && null!=village_name){
sql+=" and a.village_name like '%"+village_name+"%'";
}

list = Farmers.dao.find("SELECT a.*," +
"(SELECT SUM(death_number) death_number FROM t_farmers_details " +
"WHERE create_time LIKE '%"+create_time+"%' " +
"AND farmer_id =a.id ) harmless_quantity " + sql);
}
Date date = new SimpleDateFormat("yyyy-MM-dd").parse(create_time+"-01");
int total = 0;
if(list!=null && list.size()!=0){
for(int n=0;n<list.size();n++){
BigDecimal num = list.get(n).getBigDecimal("harmless_quantity");
if(!"".equals(num) && !"null".equals(num) && null!=num){
total += Integer.parseInt(num.toString());
}
}
}
setAttr("total", total);
setAttr("list", list);
setAttr("create_time", date);
} catch (Exception e) {
e.printStackTrace();
}
render("/exportToExcel.jsp?exportToExcel=YES");
}

小提示:excel看你数字列超过12位就会显示科学计数。解决办法:前端代码中加上: <td style="mso-number-format:'\@';">${list.card_id}</td>
<td style="mso-number-format:'\@';">${list.tel}</td>
<td style="mso-number-format:'\@';">${list.onecard_id}</td>

这句: style="mso-number-format:'\@';"很有用。

参考文章:

http://www.jb51.net/article/56861.htm

http://www.360doc.com/content/12/1017/21/7851074_242097668.shtml

http://blog.csdn.net/u011974797/article/details/50315147

重点文章:http://wltjack.iteye.com/blog/2251396

jsp导出excel教程及常见问题相关推荐

  1. JSP导出excel时中文乱码的问题

    Web应用导出Excel报表的简单实现(HTML) 在Web应用中,很多数据经常要导出成Excel文档.用专门的生成真正的Excel文档的方式比较复杂,不太好用.所以经常用一种简单的方式来实现,即将报 ...

  2. jsp导出excel

    很多时候,我们都知道在java项目里面采用poi来导出excel很方便,但是如果你的项目采用的是jsp你可以用更简单的方法来导出.首先你要在顶部引入:<jsp:directive.page im ...

  3. JSP导出excel格式

    jsp 页面导出excel时字符串数字变成科学计数法的解决方法 web导出excel数据格式化:原文地址:http://www.cnblogs.com/myaspnet/archive/2011/05 ...

  4. java 导出excel教程_Java导出Excel表格

    Java导出Excel表格 导出Excel表格需要一个poi-3.9.jar的包,该包在网上可以找到. 第一步,创建Excel对象. HSSFWorkbook workbook = new HSSFW ...

  5. vue-json-excel前端导出excel教程

    vue-json-excel是一个专门为解决前端导出Excel而开发的一个组件库. 个人认为,导出在前端做,不是特别合适,最好是后端提供导出下载文件接口,如果后端确实不想提供接口,要让你做前端导出,那 ...

  6. java 导出excel教程,[Java教程]导出大量数据到Excel的一种方式

    [Java教程]导出大量数据到Excel的一种方式 0 2012-07-09 17:00:11 在Java Web开发中,经常需要导出大量的数据到Excel,使用POI.JXL直接生成Excel,很容 ...

  7. jsp导出excel,可传动态参数

    1.jsp代码 <%String exportToExcel = request.getParameter("exportToExcel");if (exportToExce ...

  8. DolphinPHP(海豚PHP) 框架 Excel 插件 《导出 Excel 教程》

    1.添加一个顶部按钮,然后按钮的url的参数获取当前的参数,比如 下面展示一些 . //添加顶部到处按钮 ->addTopButton('export', [ 'title' => '导出 ...

  9. jfinal+poi导出excel

    要: 近两天一直再整这个文件下载,本来一个都整不出来,得知Jfinal有个renderFile()就解决了,又碰到dwz前台报Http status: 200 OK ajaxOptions: pars ...

最新文章

  1. 启明云端分享| 乐鑫刚发布的 ESP32-C2与今年五月份量产的ESP32-C3有哪些不同呢?作为两颗升级替代ESP8286的芯片,我们在应用时怎么去选择呢
  2. linux7 无法连接网络,CentOS7无法连接网络怎么办
  3. 数论六之计算几何干货——计算几何模板解释全集 及 模板检验训练场
  4. 如何阻止button默认的刷新页面操作
  5. 雅思阅读真经总纲_你们要的刘洪波《雅思阅读真经总纲》高清PDF扫描版来了!!...
  6. 单例设计模式之间的区别
  7. 使用 FFT 进行频谱分析
  8. 孙鑫VC学习笔记:第十二讲 (五) 往win.ini的文件中写入数据
  9. SpringSession
  10. 之前做设计收集的部分网站
  11. iNet Network Scanner Mac(网络扫描工具)
  12. 如何深入学习c语言,如何深入学习C语言?
  13. android 公式编辑器,公式编辑器
  14. 升级Win11后不喜欢怎么退回Win10系统?
  15. oeasy教您玩转vim - 52 - # 正则查找
  16. 北京口袋时尚科技公司-微店内推技术一面
  17. 10.12-长沙亚信面试内容
  18. 小伙的java之旅(4)
  19. ICC Scenario Difinition(什么是Scenario?)
  20. html5图片看不见,html5 绘制图片 drawImage

热门文章

  1. CH340驱动(含各平台)
  2. 10、kanzi入门——Hello World与Kanzi Engine API设置属性
  3. 推荐一个无版权图片网站
  4. Android 从底层实现让应用杀不死(1)
  5. 优思学院|六西格玛黑带的职责包括什么?
  6. PyQt5实战之二维码生成器(二):控件功能实现
  7. 多项式朴素贝叶斯分类器_多项式朴素贝叶斯分类器的主题预测
  8. matlab 计算变异系数,变异系数法求权重matlab 代码
  9. 抖音Vlog短视频达人必备2000+PR无缝转场过渡模板 全格式Premiere转场包
  10. 全新的红巨人粒子特效套装插件:TrapCode Suite Mac版