1.配置controller

public void export(){
        Map<String, String[]> searchMap = new HashMap<String,String[]>(getParaMap());
        String sql = "select b.name,b.sex,b.card_number,b.address,b.lxdh,b.check_flag,b.sjly,d.value jflx,c.name jfdd,o.je,o.jfnf,o.lrr,o.create_time,e.value yhlx from zklt_sjjl o,zklt_id_card_info b,zklt_area c,sys_dct d,sys_dct e,sys_user f where o.sfzh=b.card_number and o.jfdd=c.id and o.jflx=d.key and b.yhlx=e.key and o.creater=f.id and d.group_id='82088c59e3584c27830c8a831d355150' and e.group_id='93bfd0284e0e47ddaf4f08f429b691d1' and f.status=1 and o.yxbs='1' and b.yxbs='1' and c.yxbs='1' ";
        String[] colCode =new String[] {"name","sex","card_number","address","jflx","jfdd","je","lrr","create_time","yhlx","lxdh","sjly"};
        String[] colName = new String[] {"姓名","性别", "身份证号", "地址", "缴费类型", "缴费地点", "金额", "填报人", "填报日期", "备注","联系电话","数据来源","说明"};
        File file = new File(ExcelExportUtil.getTitle());
        file = ExcelExportUtil.saveFile(colCode,colName, sql, file);
        renderFile(file);
    }

2.controller中使用的工具类:

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.util.HSSFColor;
import org.apache.poi.ss.usermodel.IndexedColors;

import com.jfinal.kit.PathKit;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;

public class ExcelExportUtil {
     private static final String FILEPATH = PathKit.getWebRootPath() + File.separator + "upload" + File.separator ;
        
        public static String getTitle(){
            Date date = new Date();
            SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");  
             String title=FILEPATH+dateFormat.format(date)+"_统计报表.xls";  
             return title;
        }
        
        public static File saveFile(String[] colCode,String[] codName, String sql, File file) {
            // 创建工作薄
            HSSFWorkbook hssfWorkbook = new HSSFWorkbook();
            // sheet:一张表的简称
            // row:表里的行
            // 创建工作薄中的工作表
            HSSFSheet hssfSheet = hssfWorkbook.createSheet();
            // 创建行
            HSSFRow row = hssfSheet.createRow(0);
            // 创建单元格,设置表头 创建列
            HSSFCell cell = null;
            // 初始化索引
            int rowIndex = 0;
            int cellIndex = 0;
            // 创建标题行
            row = hssfSheet.createRow(rowIndex);
            rowIndex++;
            HSSFCellStyle cellStyle1 = hssfWorkbook.createCellStyle();
            cellStyle1.setFillForegroundColor(HSSFColor.PALE_BLUE.index);
            cellStyle1.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
            cellStyle1.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
            cellStyle1.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
            cellStyle1.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
            cellStyle1.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
            cellStyle1.setAlignment(HSSFCellStyle.ALIGN_CENTER); //水平布局:居中
            HSSFFont font = hssfWorkbook.createFont();
            font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
            cellStyle1.setFont(font);
            // 遍历标题
            for (String h : codName) {
                //创建列
                cell = row.createCell(cellIndex);
                //索引递增
                cellIndex++;
                //逐列插入标题
                cell.setCellValue(h);
                cell.setCellStyle(cellStyle1);
            }
            // 得到所有记录 行:列
            List<Record> list = Db.find(sql);
            Record record = null;
            HSSFCellStyle cellStyle2 = hssfWorkbook.createCellStyle();
            cellStyle2.setBorderBottom(HSSFCellStyle.BORDER_THIN); //下边框
            cellStyle2.setBorderLeft(HSSFCellStyle.BORDER_THIN);//左边框
            cellStyle2.setBorderTop(HSSFCellStyle.BORDER_THIN);//上边框
            cellStyle2.setBorderRight(HSSFCellStyle.BORDER_THIN);//右边框
            cellStyle2.setAlignment(HSSFCellStyle.ALIGN_CENTER); //水平布局:居中
            if (list != null) {
                // 获取所有的记录 有多少条记录就创建多少行
                for (int i = 0; i < list.size(); i++) {
                    row = hssfSheet.createRow(rowIndex);
                    // 得到所有的行 一个record就代表 一行
                    record = list.get(i);
                    //下一行索引
                    rowIndex++;
                    //刷新新行索引
                    cellIndex = 0;
                    // 在有所有的记录基础之上,便利传入进来的表头,再创建N行
                    for (String h : colCode) {
                        cell = row.createCell(cellIndex);
                        cellIndex++;
                        //按照每条记录匹配数据
                        cell.setCellValue(record.get(h) == null ? "" : record.get(h).toString());
                        cell.setCellStyle(cellStyle2);
                    }
                }

//设置第2行第13列单元格的内容
                hssfSheet.getRow(1).createCell(12).setCellValue("数据来源:1-读卡器采集; 2-手工录入;3-底册;4-ocr");
            }
            //自动调整每一列宽度
            for(int i=0;i<colCode.length;i++) {
                hssfSheet.autoSizeColumn(i);
                hssfSheet.setColumnWidth(i, hssfSheet.getColumnWidth(i) * 17 / 10);
            }
            hssfSheet.autoSizeColumn(12);
            hssfSheet.setColumnWidth(12, hssfSheet.getColumnWidth(12) * 17 / 10);
            try {
                FileOutputStream fileOutputStreane = new FileOutputStream(file);
                hssfWorkbook.write(fileOutputStreane);
                fileOutputStreane.flush();
                fileOutputStreane.close();
                
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return file;
        }
}

3.页面HTML按钮

<form action="#(ctx)/admin/zklt/payInfo/export" method="post">
                        <div class="form-group">
                            <div class="col-md-3">
                                <label class="col-sm-5 control-label">缴费年份</label>
                                <div class="col-sm-7">
                                    <input type="text" id="ssnf" name="ssnf" value="#(ssnf?ssnf:'')" class="form-control" readonly="readonly"
                                            onFocus="WdatePicker({isShowClear:false,dateFmt:'yyyy',startDate:'%y'})"> 
                                </div>
                            </div>
                        </div>
                        <div class="form-group">
                            <div class="col-md-3">
                                <label class="col-sm-5 control-label">身份证号</label>
                                <div class="col-sm-7">
                                    <input id="sfzh" name="sfzh" class="form-control" type="text">
                                </div>
                            </div>
                        </div>
                        <div class="form-group">
                            <div class="col-md-9 text-right">
                                <button class="btn btn-mint" type="button" οnclick="refreshTable();"><i class="glyphicon glyphicon-search"></i> 搜索</button>&nbsp;
                                <button class="btn btn-mint" type="submit"><i class="glyphicon glyphicon-arrow-up"></i> 导出</button>
                            </div>
                        </div>
                    </form>

jfinal框架批量导出数据到Excel相关推荐

  1. c#使用NPOI批量导出数据到excel表格里

    背景 我之前是做的Java开发的相关工作,c#开发还是第一次. 公司有这个需求,只好研究一下了. 我接手的是别人开发过两个报表的小玩意,万事开头难,刚开始为了搞清楚这些代码的意思走了不少弯路,下面说说 ...

  2. 百度指数常见php框架,怎么导出数据到excel表格-如何将百度指数数据导出到Excel表格...

    如何将百度指数数据导出到Excel表格 第一步:打开CAD.CAD命令行输入"Li"."选择对象"选需要提取坐标的多段线.回车. 第二步:将CAD文本框中的数据 ...

  3. php批量导出excel表格,PHP批量导出数据为excel表格

    之前用插件phoexcel写过批量导入数据,现在用到了批量导出,就记录一下,这次批量导出没用插件,是写出一个表格,直接输出 //$teacherList 是从数据库查出来的二维数组 $execlnam ...

  4. CATIA批量导入导出数据到EXCEL

    CATIA批量导入导出数据到EXCEL 序言 一.EXCEL数据点批量导入到CATIA 二.CATIA数据点批量导入到EXCEL 三.VB批量输出点到EXCEL 序言 工作中,由于测量基准和建模基准不 ...

  5. html中文本信息导出表格中,大量word填写的表格资料,如何批量提取数据到Excel表里?...

    大量word填写的表格资料,要批量提取数据到Excel表里,一页对应一行,首先看一下这个word本身是什么来源的,大致可以分以下2种情况来处理. 一.网上直接生成的带html标记的word文件 如一些 ...

  6. JS 打印 data数据_小程序导出数据到excel表

    小程序导出数据到excel表,借助云开发后台实现excel数据的保存 我们在开发小程序的过程中,可能会有这样的需求:如何将云数据库里的数据批量导出到excel表里? 这个需求可以用强大的云开发轻松实现 ...

  7. php上传和导出excel文件,(进阶篇)使用PHP导入Excel和导出数据为Excel文件

    有时需要将Excel表格的数据导入到mysql数据库中,我们使用PHP的一个开源项目PHP-ExcelReader可以轻松实现Excel的导入. 1.导入XLS PHP-ExcelReader这是一个 ...

  8. java导出数据到excel表格的最简单实现

    导出excel整理 开发中难免会遇到要导出数据到excel的,网上有很多方法,但是看起来都很复杂的样子,写得又非常多代码,让人望而止步.我做一个简单的导出excel表格功能.这是我在工作上用到的. 1 ...

  9. PHP导出数据为excel文件

    在项目中开发后台时经常会遇到导出数据为excel文件的需求,这里以Thinkphp5框架作为基础封装了一个导出excel文件的函数,其他框架可以在此基础上做对应修改.适用于PHP5.6+. /*** ...

最新文章

  1. 每位开发人员都应铭记的10句编程谚语 (我超喜欢,转载了)
  2. Ubuntu下apt-get命令详解
  3. 机器学习中的算法(2)-支持向量机(SVM)基础
  4. 回顾线程的竞争机制-偏向锁
  5. 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波8 - 直方图处理 - 直方图均衡化(全局直方图均衡化)
  6. java is a like a_JAVA基础——is-a 、have-a、和 like-a的区别
  7. Hibernate常见面试题
  8. 自学python考哪些证书-Python自学难吗?有哪些课程内容?
  9. 几万字的博文,你自己会看吗
  10. 网络七层及四层协议通俗详解
  11. 华为android手机root,华为手机怎么root
  12. java compile_java中compile函数用法
  13. html勾选标签,html怎么勾选框
  14. Excel将多行带空格的数据插入到表格中
  15. 2020-1-31赛
  16. micro python 语音识别_语音识别
  17. 3.7V锂电池充满电时是多少伏?
  18. Rock pi E 初始化 + 安装 tensorflow
  19. 北京大学软件工程课程听课笔记---软件工程课程介绍第二讲
  20. oracle导入表无反应,EZDML无法导入oracle数据表的解决方法

热门文章

  1. ASP.NET根路径的获取和将Web站点下的绝对路径转换为虚拟路径的两种方案
  2. 深圳.NET俱乐部 Windows 7 社区发布会总结及资源下载
  3. MATLAB中cif用于清除什么,cifti-matlab-master 能够对MRI数据进行功能成像 - 下载 - 搜珍网...
  4. lodop打印不显示页码_Lodop插件实现打印功能
  5. PHP判断标量,php中is_scalar如何判断变量是否是一个标量
  6. 2.控制反转 spring_ioc
  7. 第一批鸿蒙系统手机型号,鸿蒙2.0第一批机型名单正式披露!花粉却感叹:华为不够厚道!...
  8. 高端计算机教室,又一所高端学校来了,能住校师资力量强大
  9. 创建水印文字_推荐免费物业现场品质管理新工具—马克水印相机
  10. 五十八、如何对一个数进行分解质因数