文档章节

通过Controller导出数据库表到Excel

落落酱
 落落酱
发布于 2016/09/19 14:54
字数 580
阅读 104
收藏 1

初步步骤: 源代码来自> @abcijkxyz以此感谢长期以来的帮助~~~ abcijkxyz

此代码目前为止不太完善,原因如下: 1.有些数据是不需要显示的,但是我所做的是显示所有 2.时间格式目前为止有问题,还需要改进 3.此为单表内容显示,部分内容需要连接多表查询再显示 4.目前就是这些,还有其他的没想到,欢迎补充~~

@RequestMapping(value = "exportAll",method = {RequestMethod.GET})
    public void exportAll(Map query, HttpServletResponse response) {
//        Pagination page = getPagination(b);
//        Pagination page = new Pagination();
        String[] title = new String[]{"id","type","createtime","buyer", "proname",
                "status","price","creator","appid","seller","orderno","total_count",
                "total_money","proid","protype","orderimage","agentname","parentid",
                "supplier","deliver","goodstype","refereesid","ticketgiftnum","pickorder"};
        HSSFWorkbook wb = new HSSFWorkbook();
        HSSFSheet sheet = wb.createSheet("订单表");
        sheet.setDefaultColumnWidth(15);
        HSSFRow row = sheet.createRow(0);
        HSSFCellStyle style = wb.createCellStyle();
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        HSSFCell cell = null;
        for (int i = 0; i < title.length; i++) {
            cell = row.createCell(i);
            cell.setCellValue(title[i]);
            cell.setCellStyle(style);
        }
        try {
//            orderService.queryPageList(page);
//            orderChargeService.reportTotal(page);
//            List<CostObject> list = page.getDatas();
            List<Order> list = orderService.queryListByMap(query);
            if (list != null && list.size() > 0) {
                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                for (int i = 0, len = list.size(); i < len; i++) {
                    Order o = list.get(i);
                    row = sheet.createRow(i + 1);
                    //setCellValue不能为空,进行判断
                    row.createCell(0).setCellValue(o.getId());
                    if (o.getType()==null){
                        row.createCell(1).setCellValue(0);
                    }else {
                        row.createCell(1).setCellValue(o.getType());
                    }
                    if (o.getCreatetime()==null){
                        row.createCell(2).setCellValue(0);
                    }else {
                        row.createCell(2).setCellValue(o.getCreatetime().toString());
                    }
//                    row.createCell(2).setCellValue(o.getCreatetime());
                    if (o.getBuyer()==null){
                        row.createCell(3).setCellValue((long)0);
                    }else {
                        row.createCell(3).setCellValue(o.getBuyer());
                    }
                    if (o.getProname()==null){
                        row.createCell(4).setCellValue("(null)");
                    }else {
                        row.createCell(4).setCellValue(o.getProname());
                    }
                    if (o.getStatus()==null){
                        row.createCell(5).setCellValue(0);
                    }else {
                        row.createCell(5).setCellValue(o.getStatus());
                    }
                    if (o.getPrice()==null){
                        row.createCell(6).setCellValue("(null)");
                    }else {
                        row.createCell(6).setCellValue(o.getPrice());
                    }
                    if (o.getCreator()==null){
                        row.createCell(7).setCellValue((long)0);
                    }else {
                        row.createCell(7).setCellValue(o.getCreator());
                    }
                    if (o.getAppid()==null){
                        row.createCell(8).setCellValue("(null)");
                    }else {
                        row.createCell(8).setCellValue(o.getAppid());
                    }
                    if (o.getSeller()==null){
                        row.createCell(9).setCellValue((long)0);
                    }else {
                        row.createCell(9).setCellValue(o.getSeller());
                    }
                    if (o.getOrderno()==null){
                        row.createCell(10).setCellValue("(null)");
                    }else {
                        row.createCell(10).setCellValue(o.getOrderno());
                    }
                    if (o.getTotal_count()==null){
                        row.createCell(11).setCellValue((long)0);
                    }else {
                        row.createCell(11).setCellValue(o.getTotal_count());
                    }
                    if (o.getTotal_money()==null){
                        row.createCell(12).setCellValue("(null)");
                    }else {
                        row.createCell(12).setCellValue(o.getTotal_money());
                    }
                    if (o.getProid()==null){
                        row.createCell(13).setCellValue((long)0);
                    }else {
                        row.createCell(13).setCellValue(o.getProid());
                    }
                    if (o.getProtype()==null){
                        row.createCell(14).setCellValue(0);
                    }else {
                        row.createCell(14).setCellValue(o.getProtype());
                    }
                    if (o.getOrderimage()==null){
                        row.createCell(15).setCellValue("(null)");
                    }else {
                        row.createCell(15).setCellValue(o.getOrderimage());
                    }
                    if (o.getAgentname()==null){
                        row.createCell(16).setCellValue("(null)");
                    }else {
                        row.createCell(16).setCellValue(o.getAgentname());
                    }
                    if (o.getParentid()==null){
                        row.createCell(17).setCellValue((long)0);
                    }else {
                        row.createCell(17).setCellValue(o.getParentid());
                    }
                    if (o.getSupplier()==null){
                        row.createCell(18).setCellValue((long)0);
                    }else {
                        row.createCell(18).setCellValue(o.getSupplier());
                    }
                    if (o.getDeliver()==null){
                        row.createCell(19).setCellValue((long)0);
                    }else {
                        row.createCell(19).setCellValue(o.getDeliver());
                    }
                    if (o.getGoodstype()==null){
                        row.createCell(20).setCellValue(0);
                    }else {
                        row.createCell(20).setCellValue(o.getGoodstype());
                    }
                    if (o.getRefereesid()==null){
                        row.createCell(21).setCellValue((long)0);
                    }else {
                        row.createCell(21).setCellValue(o.getRefereesid());
                    }
                    if (o.getTicketgiftnum()==null){
                        row.createCell(22).setCellValue(0);
                    }else {
                        row.createCell(22).setCellValue(o.getTicketgiftnum());
                    }
                        row.createCell(23).setCellValue("(null)");
                }
            }
            OutputStream out = response.getOutputStream();
            response.setHeader("content-disposition", "attachment; filename=exportAll.xls");
            response.setContentType("application/vnd.ms-excel");
            response.setCharacterEncoding("UTF-8");
            wb.write(out);
            out.close();
        } catch (Exception e) {
            log.error("导出失败,{}", e);
        }
    }

© 著作权归作者所有

落落酱

落落酱

粉丝 317
博文 15
码字总数 11024
作品 0
武汉
程序员
私信 提问
加载中

评论(5)

落落酱
落落酱 博主

引用来自“久歌”的评论

我一般用 Object.get() == null ? Object.set() : Object.set() 看起来清晰一些,最近在试着用JAVA8的新特性Optional ,感觉会优雅好多

嗯嗯
Danger
Danger
我一般用 Object.get() == null ? Object.set() : Object.set() 看起来清晰一些,最近在试着用JAVA8的新特性Optional ,感觉会优雅好多
落落酱
落落酱 博主

引用来自“abcijkxyz”的评论

😳
😁
abcijkxyz
abcijkxyz
😳
落落酱
落落酱 博主
时间改进:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH🇲🇲ss");
if (o.getCreatetime()==null){
row.createCell(2).setCellValue(0);
}else {
row.createCell(2).setCellValue(sdf.format(o.getCreatetime()));
}
python django框架 渲染和ajax表单提交周报表

一. 实际需求 之前这篇文章kettle-自动生成周报 是使用java开源ETL工具kettle实现,正常情况下是每天写工作完成情况到Excel表,每周五定时任务启动读取Excel日志写入数据库,再读取数据库内容按...

程程同学
2017/11/01
0
0
SQL Server2016导出数据表数据

SQL Server2016导出数据表数据 我们前面已经介绍了很多关于SQL Server的相关文章,今天我们主要介绍的是,如何导出数据库下表中数据。 我们所有的操作都是通过SSMS进行操作的。 我们右击需要...

高文龙
2017/09/22
0
0
CI 3X 使用xlsxwriter.class.php导出数据到Excel文件

CI 3.1.9 使用xlsxwriter.class.php导出数据到Excel文件 使用PHPExcel类库导出数据库数据,当数据大于50000条记录时,导出效率较低。网上github有xlsxwriter.class.php类,能较好解决此问题。...

康师傅
07/08
19
2
Excel导出为Lua table工具 - XlsxToLua

Excel表格数据导出为Lua table形式的工具,兼带数据检查功能 希望这个工具能为今后ulua手机游戏项目带来便利,使得策划可以用Excel进行配表,从而享受Excel各种强大的功能,而程序可以直接读...

zhangqi91
2016/03/30
3.1K
0
一个支持 DbFirst、ModelFirst 和 CodeFirst 的数据库小工具DbTool

DbTool 一个支持 DbFirst、ModelFirst 和 CodeFirst 的数据库工具。 简介 这是一个针对 和 的数据库的小工具,可以利用这个小工具生成数据库表对应的 Model,并且会判断数据表列是否可以为空...

天天向上卡索
2018/01/24
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。

Springboot框架搭建相关 Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。 什么是 Spring Boo...

AndLong
19分钟前
3
0
好程序员云计算学习路线分享软件包管理

好程序员云计算学习路线分享软件包管理,安装/查询/卸载 一、软件的类型 A. 源码包 需要编译 nginx-1.12.1.tar.gz B. 二进制包 已编译 mysql-community-common-5.7.12-1.el7.x86_64.rpm 常见...

好程序员官方
21分钟前
1
0
阿里巴巴小程序繁星计划 9月27日有话要说

2019年9月27日,阿里巴巴小程序繁星计划峰会将于杭州云栖小镇召开。这是自今年3月阿里巴巴正式对外宣布全面开启小程序发展战略,阿里云携手支付宝、淘宝、钉钉、高德联合发布“阿里巴巴小程序...

Mr_zebra
24分钟前
4
0
centos下搭建Jenkins持续集成环境(安装jenkins)

centos下搭建Jenkins持续集成环境(安装jenkins) 1、安装JDK yum install -y java 2、安装jenkins 添加Jenkins库到yum库,Jenkins将从这里下载安装。 1 wget -O /etc/yum.repos.d/jenkins.rep...

linjin200
26分钟前
4
0
JDK1.8.0_181的无限制强度加密策略文件变动

JDK1.8.0_151后的版本无需去官网下载 local_policy.jar US_export_policy.jar这个jar包,只需要修改Java\jdk1.8.0_181\jre\lib\security这目录下的java.security文件配置即可。 随着越来越多...

葉者
27分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部