jfinal excel表导出

在自己的WEB项目中要用到导出Excel,所以结合网络上的资源写了一个自己的export 工具类。

说明:

  • JFinal 环境
  • WEB项目
  • JAVA后台生成非JS插件

好了,直接撸代码

1.设置文件保存路径

private static final String FILEPATH = PathKit.getWebRootPath() + File.separator + "upload" + File.separator ;//路径为webRoot/upload/

2.设置 文件名

public static String getTitle(){
    Date date = new Date();
    SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");  
    String title=FILEPATH+dateFormat.format(date)+"_统计报表.xls";  
    return title;
}

3.前台页面调用

<p Alignment="left"><a href="/admin/pay/export">导出数据</a>

4.contr oller处理并renderFile回去

public void export(){
    String sql = "select * from `order`";
        Map<String, String> titleData = new HashMap<String, String>();//标题,后面用到
        titleData.put("order_no", "账单号");
        titleData.put("good_code", "商品编码");
        titleData.put("size", "尺码");
        titleData.put("number", "数量");
        titleData.put("type", "类型");
        titleData.put("order_time", "时间");
        File file = new File(ExcelExportUtil.getTitle());
    file = ExcelExportUtil.saveFile(titleData, sql, file);
    this.renderFile(file);
}
 

5.工 具类所有代码

package com.feng.util;

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.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

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(Map<String, String> headData, 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++;
        // 遍历标题
        for (String h : headData.keySet()) {
            //创建列
            cell = row.createCell(cellIndex);
            //索引递增
            cellIndex++;
            //逐列插入标题
            cell.setCellValue(headData.get(h));
        }

        // 得到所有记录 行:列
        List<Record> list = Db.find(sql);
        Record record = null;

        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 : headData.keySet()) {
                    cell = row.createCell(cellIndex);
                    cellIndex++;
                    //按照每条记录匹配数据
                    cell.setCellValue(record.get(h) == null ? "" : record.get(h).toString());
                }
            }
        }
        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;
    }
}
 

5.最终效果

时间: 2025-01-31 06:15:57

jfinal excel表导出的相关文章

yii2 中excel表导出

首先下载phpexcel 在引入类文件(在web中index.php入口文件或者控制器中引入) require_once dirname(dirname(__FILE__)).'/excel/PHPExcel.php'; require_once dirname(dirname(__FILE__)).'/excel/PHPExcel/IOFactory.php';require_once dirname(dirname(__FILE__)).'/excel/PHPExcel/Reader/Exc

CI框架——excel表导出功能

public function export_list(){ //导入Excel类 $this->load->library('excel'); //制作Excel标题 $this->excel->filename = '订单表'; //制作Excel表头参数 $titles = array('姓名','日期','来源'); $pagesize = 10000;      //定义表量 $where = '1=1'; $start_time = empty($_REQUEST['s

Java后台Excel表导出

导出数据到Excel: 1. 将数据查询出来返回给导出jsp页面. //导出数据 @RequestMapping(value ="/chongLog_info_xls",produces="text/html;charset=UTF-8") public String consume_info_xls(String q_start_date,String q_end_date,Model map,HttpServletRequest request,String u

.Net中DataGridview数据如何导出到excel表

首先,这个问题在网上有很多答案,也有很多解决的方法.其次,很多人写过类似的博客 .我的这篇博客,主要是写给那些刚刚接触或接触不久.NET并使用其做程序的人,更是写个自己,记录一下方法,方便以后使用. 在窗体中添加一个DataGridView控件,DatagridView获得数据: DataGridView1.DataSource = crList(泛型)或DataGridView1.DataSource=DataSet.Table(0).{注意:通过查询数据库,将查询到的数据放入crList或D

Java导出Excel表(poi)名中文乱码问题处理

<pre name="code" class="java">String _filename = ValidateTools.date2Str(date, "yyyyMMddHHmmss"); String filename = f_name + _filename; HSSFSheet sheet; HSSFCell cell; response.setContentType("application/x-download

c#操作excel导入导出时同时向用户表插入账户与密码

<><><><>本代码源于师兄<><><><><><> 1:首先需要在前端显示界面View视图中添加导入Excel和导出Excel按钮: @using (Html.BeginForm()) { } 这里注意,导出Excel是通过获取当下的表单的方式来导出数据的. 2:然后为导入Excel添加导入方法function: js部分以图片存放 3:添加点击事件后弹出来的操作界面(importe

c# 导入导出excel表格式

c#使用代码导入excel时,当遇到纯数字且大于15位时会出现编码混乱(表现为科学计数法),要想呈现与excel表中纯数字格式和在数据库中呈现纯数字,操作如下: 完成即可. 导出取决于导入的内容排版.

利用ultraGridExporter导出EXCEL表的方法

SaveFileDialog saveFileDialogExcel = new SaveFileDialog();saveFileDialogExcel.Filter = "Excel 文件(*.xls)|*.xls|Excel 文件(*.xlsx)|*.xlsx|所有文件(*.*)|*.*";if (saveFileDialogExcel.ShowDialog() == DialogResult.OK){    this.ultraGridExcel.Export(grid, sa

thinkphp导入导出excel表单数据

在PHP项目经常要导入导出Excel表单. 先去下载PHPExcel类库文件,放到相应位置. 我在thinkphp框架中的位置为ThinkPHP/Library/Org/Util/ 导入 在页面上传excel文件提交到后台,利用form表单提单即可 <form method="post" enctype="multipart/form-data" action="" > <input type="submit"