最近在做一个文件导出功能,发现大部分博客上通过引用各种的util工具包,其实说白了还是利用apache的poi,在项目中直接导入poi包就可以。直面其原理,随个人喜好封装。
 
1、首先准备一些poi的jar包
 

2、准备好jar包之后就可以写代码了,接下来我就把代码写简单,让大家都能看懂。至于你后面想用多么牛逼的代码实现它,都可以,只要原理懂了,其它的都不是事,对吧。

首先我要建一个实体类:Student.class

package testExport;
 
/**
 *
 * @author lf
 *
 */
 
public class Student {
    private Integer id;
    private String name;
    private String sex;
     
    public Integer getId() {
        return id;
    }
    public void setId(Integer id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getSex() {
        return sex;
    }
    public void setSex(String sex) {
        this.sex = sex;
    }
}
还有一个导出类  ExportExcel.class
package testExport;
 
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
 
import javax.swing.JOptionPane;
 
//下面是和数据导出有关的包
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 
public class ExportExcel {
    public void Export(){
        // 声明一个工作薄
        HSSFWorkbook wb = new HSSFWorkbook();
        //声明一个单子并命名
        HSSFSheet sheet = wb.createSheet(学生表);
        //给单子名称一个长度
        sheet.setDefaultColumnWidth((short)15);
        // 生成一个样式 
        HSSFCellStyle style = wb.createCellStyle();
        //创建第一行(也可以称为表头)
        HSSFRow row = sheet.createRow(0);
        //样式字体居中
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        //给表头第一行一次创建单元格
        HSSFCell cell = row.createCell((short) 0);
        cell.setCellValue(学生编号);
        cell.setCellStyle(style);
        cell = row.createCell( (short) 1); 
                cell.setCellValue(学生姓名); 
                cell.setCellStyle(style); 
                cell = row.createCell((short) 2); 
                cell.setCellValue(学生性别); 
                cell.setCellStyle(style);
         
               //添加一些数据,这里先写死,大家可以换成自己的集合数据
               List<student> list = new ArrayList<student>();
               list.add(new Student(111,张三,男));
               list.add(new Student(111,李四,男));
               list.add(new Student(111,王五,女));
 
               //向单元格里填充数据
               for (short i = 0; i < list.size(); i++) {
                row = sheet.createRow(i + 1);
                row.createCell(0).setCellValue(list.get(i).getId());
                row.createCell(1).setCellValue(list.get(i).getName());
                row.createCell(2).setCellValue(list.get(i).getSex());
            }
         
               try {
            //默认导出到E盘下
            FileOutputStream out = new FileOutputStream(E://学生表.xls);
            wb.write(out);
            out.close();
            JOptionPane.showMessageDialog(null, 导出成功!);
        } catch (FileNotFoundException e) {
            JOptionPane.showMessageDialog(null, 导出失败!);
            e.printStackTrace();
        } catch (IOException e) {
            JOptionPane.showMessageDialog(null, 导出失败!);
            e.printStackTrace();
        }
    }
}
 下面看一下效果图:

最新文章

  1. android studio 和idea 导入library工程
  2. 【MySQL】MySQL 如何实现 唯一随机数ID
  3. careercup-递归和动态规划 9.5
  4. HDU 4405 Aeroplane chess(期望)
  5. B-树、B+树、B*树的区别
  6. php设计模式之:观察者模式
  7. T-SQL编程语句
  8. Linux服务器运维基本命令
  9. VS 2017 激活码
  10. Windows挂载NFS共享盘
  11. pytorch怎么抽取中间的特征或者梯度
  12. 安装Kali linux
  13. Oracle 批量修改字段长度
  14. python 数据可视化 -- 真实数据的噪声平滑处理
  15. salt-api配置安装 以及使用
  16. SQL2008:WITH MOVE 子句可用于重新定位一个或多个文件
  17. 在WPF中将图片转换成3D图像并可以旋转
  18. java实现超大整数加减乘除四则运算
  19. 《Programming iOS 7》读书笔记 - 窗体大小与状态栏
  20. Centos7网络配置(VMware)

热门文章

  1. Maintaining Your Signing Identities and Certificates 维护你的签名标识和证书
  2. App软件开发的10个常用技巧
  3. python的paramiko源码修改了一下,写了个操作命令的日志审计 bug修改
  4. [PointCloud] GICP
  5. [QGLViewer]First Demo
  6. 【转】ubuntu 重启命令,ubuntu 重启网卡方法
  7. SQL*Plus命令行工具连接Oracle数据库
  8. maven私有库配置
  9. dotfiles管理
  10. #添加图片,最多只能上传9张.md