摘抄:java查询数据导出excel并返回给浏览器下载

maven地址为:

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.17</version>
</dependency>

好了,废话不多少,上代码

jsp前端代码(根据自己的业务来)

<span style="font-size:18px;"><div style="height:30px;">  
    <a>时间:</a>  
        <input id="startDateConsume" type="text" class="easyui-datebox"> <a>-</a>  
        <input id="endDateConsume" type="text" class="easyui-datebox">  
        <a>消费类型:</a>  
       <select id="consumesType" name="">  
    <option value="0" selected="selected">所有</option>  
    <option value="1">报名费</option>  
    <option value="2">酒水零食类</option>  
    </select>  
        <a>支付状态:</a>  
       <select id="conPaymentStatus" name="">  
    <option value="0" selected="selected">所有</option>  
    <option value="1">未支付</option>  
    <option value="2">已支付</option>  
    </select>  
        <a id="btnConsumesSearch" class="easyui-linkbutton"  
    data-options="iconCls:‘icon-search‘" style="margin-left:10px">查询</a><a>(查询出来的数据可统计)</a>  
    <a id="consumesOutExcel" class="easyui-linkbutton" style="" data-options="iconCls:‘icon-redo‘">导出表</a>  
</div></span>

<span style="font-size:18px;">$(function() {  
    //导出excel表  
    $(‘#consumesOutExcel‘).on(‘click‘,function(){                     
        exportExcel();  
    });  
});  
  
function exportExcel() {  
        $.messager.confirm(‘确认‘, ‘确认把该搜索结果导出Excel表格 ?‘, function(r) {  
        if (r) {  
            var startTime = $(‘#startDateConsume‘).val();  
            var endTime = $(‘#endDateConsume‘).val();  
            var consumesType = $(‘#consumesType‘).val();  
            var conPaymentStatus = $(‘#conPaymentStatus‘).val();  
            $.messager.progress({  
                title : ‘处理中‘,  
                msg : ‘请稍后‘,  
            });  
            $.messager.progress(‘close‘);  
            location.href="web/vip/exportExcel.xlsx?startTime="+startTime+"&endTime="+endTime+"&consumesType="+consumesType+"&conPaymentStatus="+conPaymentStatus;  
        }  
    });   
} </span>

java后端代码:

<span style="font-size:18px;">@Controller  
@RequestMapping("/vip")  
public class VipController {  
    //文件下载:导出excel表  
    @RequestMapping(value = "/exportExcel.xlsx",method = RequestMethod.GET)  
    @ResponseBody  
    public void exportExcel(HttpServletRequest request,HttpServletResponse response) throws UnsupportedEncodingException{  
        //一、从后台拿数据  
            if (null == request || null == response)  
            {  
                return;  
            }  
            List<VipConsumes> list = null;  
            String startTime = request.getParameter("startTime");  
            String endTime = request.getParameter("endTime");  
            int consumesType = Integer.parseInt(request.getParameter("consumesType"));  
            int conPaymentStatus =Integer.parseInt(request.getParameter("conPaymentStatus"));  
  
            VipConsumesExample example = new VipConsumesExample();  
            if(consumesType!=0 && conPaymentStatus!=0){  
                example.createCriteria().andTimeBetween(startTime, endTime).andConsumeTypeEqualTo(consumesType).andStatusEqualTo(conPaymentStatus);  
            }else if(consumesType ==0 && conPaymentStatus!=0) {  
                example.createCriteria().andTimeBetween(startTime, endTime).andStatusEqualTo(conPaymentStatus);  
            }else if(consumesType!=0 && conPaymentStatus==0){  
                example.createCriteria().andTimeBetween(startTime, endTime).andConsumeTypeEqualTo(consumesType);  
            }else {  
                example.createCriteria().andTimeBetween(startTime, endTime);  
            }  
            list = this.vipConsumesDao.selectByExample(example);  
            //二、 数据转成excel  
            request.setCharacterEncoding("UTF-8");  
            response.setCharacterEncoding("UTF-8");  
            response.setContentType("application/x-download");  
  
            String fileName = "消费记录.xlsx";  
            fileName = URLEncoder.encode(fileName, "UTF-8");  
            response.addHeader("Content-Disposition", "attachment;filename=" + fileName);  
            // 第一步:定义一个新的工作簿  
            XSSFWorkbook wb = new XSSFWorkbook();  
            // 第二步:创建一个Sheet页  
            XSSFSheet sheet = wb.createSheet("startTimeendTime");  
            sheet.setDefaultRowHeight((short) (2 * 256));//设置行高  
            sheet.setColumnWidth(0, 4000);//设置列宽  
            sheet.setColumnWidth(1,5500);  
            sheet.setColumnWidth(2,5500);  
            sheet.setColumnWidth(3,5500);  
            sheet.setColumnWidth(11,3000);  
            sheet.setColumnWidth(12,3000);  
            sheet.setColumnWidth(13,3000);  
            XSSFFont font = wb.createFont();  
            font.setFontName("宋体");  
            font.setFontHeightInPoints((short) 16);  
              
            XSSFRow row = sheet.createRow(0);  
            XSSFCell cell = row.createCell(0);  
            cell.setCellValue("流水号 ");  
            cell = row.createCell(1);  
            cell.setCellValue("微信名 ");  
            cell = row.createCell(2);  
            cell.setCellValue("微信订单号");  
            cell = row.createCell(3);  
            cell.setCellValue("消费时间");  
            cell = row.createCell(4);  
            cell.setCellValue("消费类型");  
            cell = row.createCell(5);  
            cell.setCellValue("剩余积分 ");  
            cell = row.createCell(6);  
            cell.setCellValue("新增积分 ");  
            cell = row.createCell(7);  
            cell.setCellValue("扣除积分 ");  
            cell = row.createCell(8);  
            cell.setCellValue("消费金额");  
            cell = row.createCell(9);  
            cell.setCellValue("支付方式");  
            cell = row.createCell(10);  
            cell.setCellValue("支付状态 ");  
            cell = row.createCell(11);  
            cell.setCellValue("钱包原始金额");  
            cell = row.createCell(12);  
            cell.setCellValue("钱包扣除金额");  
            cell = row.createCell(13);  
            cell.setCellValue("钱包剩余金额");  
              
            XSSFRow rows;  
            XSSFCell cells;  
            for (int i = 0; i < list.size(); i++) {  
                // 第三步:在这个sheet页里创建一行  
                rows = sheet.createRow(i+1);  
                // 第四步:在该行创建一个单元格  
                cells = rows.createCell(0);  
                // 第五步:在该单元格里设置值  
                cells.setCellValue(list.get(i).getConsumeId());  
                  
                cells = rows.createCell(1);  
                cells.setCellValue(list.get(i).getName());  
                cells = rows.createCell(2);  
                cells.setCellValue(list.get(i).getOrderNumber());  
                cells = rows.createCell(3);  
                cells.setCellValue(list.get(i).getTime());  
                cells = rows.createCell(4);  
                if (list.get(i).getConsumeType() == 2) {  
                    cells.setCellValue("酒水零食费");  
  
                } else {  
                    cells.setCellValue("报名费");  
                }  
                cells = rows.createCell(5);  
                cells.setCellValue(list.get(i).getIntegral());  
                cells = rows.createCell(6);  
                cells.setCellValue(list.get(i).getIntegralIn());  
                cells = rows.createCell(7);  
                cells.setCellValue(list.get(i).getIntegralOut());  
                cells = rows.createCell(8);  
                cells.setCellValue(list.get(i).getMoney());  
                cells = rows.createCell(9);  
                if (list.get(i).getPayment() == 2) {  
                    cells.setCellValue("积分抵现");  
                } else if (list.get(i).getPayment() == 3) {  
                    cells.setCellValue("微信支付");  
                } else if (list.get(i).getPayment() == 4) {  
                    cells.setCellValue("现金");  
                } else if (list.get(i).getPayment() == 1) {  
                    cells.setCellValue("钱包");  
                }  
                cells = rows.createCell(10);  
                if (list.get(i).getStatus() == 2) {  
                    cells.setCellValue("已支付");  
                } else if (list.get(i).getStatus() == 1) {  
                    cells.setCellValue("未支付");  
                }  
                cells = rows.createCell(11);  
                cells.setCellValue(list.get(i).getWalletOriginal());  
                cells = rows.createCell(12);  
                cells.setCellValue(list.get(i).getWalletOut());  
                cells = rows.createCell(13);  
                cells.setCellValue(list.get(i).getWalletSurplus());  
            }  
                  
                try {  
                    OutputStream out = response.getOutputStream();  
                    wb.write(out);  
                    out.close();  
                    wb.close();  
                } catch (IOException e) {  
                    // TODO Auto-generated catch block  
                    e.printStackTrace();  
                }  
  
    }  
}</span>

摘抄原文:https://blog.csdn.net/xiaoyangsavvy/article/details/80239210

原文地址:https://www.cnblogs.com/ysySelf/p/10304377.html

时间: 2024-11-10 10:09:10

摘抄:java查询数据导出excel并返回给浏览器下载的相关文章

java分页数据导出excel

/** * 订单导出(用于统计利润) * @return */ public String orderExport() throws IOException{ if (queryOrderList_currentPage == null || queryOrderList_currentPage <= 0) { queryOrderList_currentPage = 1; } OrderInfo order = new OrderInfo(); if (!StringUtil.isNull(q

框架 day50 BOS项目 4 批量导入(ocupload插件,pinyin4J)/POI解析Excel/Combobox下拉框/分区组合条件分页查询(ajax)/分区数据导出(Excel)

知识点: 批量导入(ocupload插件,pinyin4J /POI解析Excel(apache POI) /区域分页查询 /Combobox下拉框 /分区组合条件分页查询(ajax) /分区数据导出(Excel下载) BOS项目笔记第4天 1.    区域批量导入功能 *Ajax不支持文件上传. *上传并且不刷新上传页面原理: Target到一个0,0,0的隐藏iframe里,造成一个没有刷新的假象 <form target="myIframe" action="ab

Java使用POI实现数据导出excel报表

在上篇文章中,我们简单介绍了java读取word,excel和pdf文档内容 ,但在实际开发中,我们用到最多的是把数据库中数据导出excel报表形式.不仅仅简单的读取office中的数据.尤其是在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作.而数据导出的格式一般是EXCEL或者PDF .所以今天我们来简单看一下利用Apache  POI实现数据库中数据导出excel报表.在java中有很多实现数据导出excel报表的第三方jar包.但在比较了一下感觉还是POI相对来

JAVA关于POI导出Excel内存溢出的解决方案

JAVA关于POI导出Excel内存溢出的解决方案 在我们使用JAVA开发过程中,经常要导出查询获得的数据,这些数据一般情况下都是以Excel存储的,因此我们在导出数据的时候要使用JAVA的POI库,其主要是对各种windows平台的数据格式进行操作,在这里,我们是对Excel操作. 生成Excel的过程原理是这样的,首先,我们对数据库进行查询,获取相应的结果集,一般是list集合,然后生成Workbook对象,根据生成的Workbook对象获取sheet对象,根据此sheet对象获取Row对象

Java中导入导出Excel -- POI技术

一.介绍: 当前B/S模式已成为应用开发的主流,而在企业办公系统中,常常有客户这样子要求:你要把我们的报表直接用Excel打开(电信系统.银行系统).或者是:我们已经习惯用Excel打印.这样在我们实际的开发中,很多时候需要实现导入.导出Excel的应用. 目前,比较常用的实现Java导入.导出Excel的技术有两种Jakarta POI和Java Excel 下面我就分别讲解一下如何使用这两个技术实现导入.导出Excel 二.使用Jakarta POI导入.导出Excel Jakarta PO

Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类

Java 通过Xml导出Excel文件,Java Excel 导出工具类,Java导出Excel工具类 ============================== ?Copyright 蕃薯耀 2017年9月13日 http://www.cnblogs.com/fanshuyao/ 直接上代码: import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.ref

百万级数据记录量优化查询以及导出EXCEL文件编程

通过对完整软件实例(工程设计流水管理系统)编程讲解,让学员熟悉完整软件布局架构及开发思路.比如从界面布局.登录验证.软件注册程序.到软件发布等知识点,贯穿知识点间联系,提升编程整合能力. 中文编程完整软件实例编程解析之工程设计流水管理系统(8课时) 第1课:整体布局.EXCEL表数据导入到软件数据库编程a.整体布局b.EXCEL表数据导入到软件数据库编程第2课:基本信息预先设置编程a.项目名称预设置 第3课:子项目工程日志流水编程解析a.工程日志流水编程 第4课:子项目设计费发放流水编程解析a.

Java实现导入导出Excel文件的方法

目前,比较常用的实现Java导入.导出Excel的技术有两种Jakarta POI和Java Excel 直接上代码: 一,POI POI是apache的项目,可对微软的Word,Excel,Ppt进行操作,包括office2003和2007,Excl2003和2007.poi现在一直有更新.所以现在主流使用POI. xls: pom: org.apache.poi poi-ooxml 3.9 commons-io commons-io 2.2 导出: public class PoiCreat

百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里?

好多人在问:如何将百度地图里面搜索到的公司商家电话导出表格?怎样将把百度地图里面搜索到的公司 电话 地址 等数据导出excel里? 现在,很多人都在网络上找商家,联系业务. 百度地图里有很多的商家联系方式地址等数据,这便成为很多人的便捷方式.但是一个个地复制出来商家的电话,地址是一件很痛苦的事情, 于是想到开发一个程序,模拟人的操作,将所有的数据提取保存到EXCEL里. 交流学习QQ:3125547039 主要代码思路: m_objConnection.Open();             b