1,导包  poi-3.9-XXX.JAR

2, 创建一个实体对象

public class Student implements Serializable {

	/**
*
*/
private static final long serialVersionUID = 1L; private int id;
private String name;
private int age;
private Date borth; public Student(int id, String name, int age, Date borth){
this.id = id;
this.name = name;
this.age = age;
this.borth = borth;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public int getAge() {
return age;
} public void setAge(int age) {
this.age = age;
} public Date getBorth() {
return borth;
} public void setBorth(Date borth) {
this.borth = borth;
} public static long getSerialversionuid() {
return serialVersionUID;
}

3,创建实体数据,也可以获取数据库的信息

public class StuData  {

	public static List<Map<String, Object>> getStuInfo() throws ParseException {
List<Map<String, Object>> listStuInfo = new ArrayList<Map<String, Object>>();
List<Student> listStu = new ArrayList<Student>();
DateFormat format = new SimpleDateFormat("yyyy-mm-dd"); Student s1 = new Student(1, "zhangsan", 16, format.parse("1987-05-06"));
Student s2 = new Student(2, "li", 17, format.parse("1988-05-06"));
Student s3 = new Student(3, "wangwu", 18, format.parse("1989-05-06"));
Student s4 = new Student(4, "zhaoliu", 19, format.parse("1990-05-06"));
listStu.add(s1);
listStu.add(s2);
listStu.add(s3);
listStu.add(s4);
for (Student stu : listStu) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("id", stu.getId());
map.put("name", stu.getName());
map.put("age", stu.getAge());
map.put("borth", stu.getBorth());
listStuInfo.add(map);
}
return listStuInfo;
} }

4, 创建表头,以及单元格的样式等

private static Map<String, Object> createHeaderInfo(Workbook wb, Sheet sheet, int headerNumber) {
Row row = sheet.createRow(headerNumber);
Map<String, Object> header = createHeader();
for(String str : header.keySet()) {
int rowNumber = (int) header.get(str);
Cell cell = row.createCell(rowNumber);
CellStyle cellstyle = wb.createCellStyle();
cellstyle.setAlignment(CellStyle.ALIGN_CENTER);
Font font = wb.createFont();
font.setBoldweight(Font.BOLDWEIGHT_BOLD);
cellstyle.setFont(font);
cell.setCellStyle(cellstyle);
cell.setCellValue(str);
}
headerNumber++;
return header;
}

5,表头信息:

private static Map<String, Object> createHeader(){
Map<String, Object> header = new HashMap<String, Object>();
header.put("id", 0);
header.put("name", 1);
header.put("age", 2);
header.put("borth", 3);
return header;
}

6,创建Excel对象,创建sheet页签,创建行,创建每行的单元格

public static void main(String[] args) throws ParseException, IOException {
Workbook wb = new HSSFWorkbook();
Sheet sheet = wb.createSheet("StuInfo");
//创建表头
int rowNumber = 0 ;
Map<String, Object> header = createHeaderInfo(wb, sheet, rowNumber);
List<Map<String, Object>> listStuInfo = StuData.getStuInfo();
for(Map<String, Object> stuMap : listStuInfo) {
rowNumber++;
Row row = sheet.createRow(rowNumber);
Iterator<Entry<String, Object>> iterator = header.entrySet().iterator();
while(iterator.hasNext()){
Entry<String, Object> entry = iterator.next();
String headerCell = entry.getKey();
int cellNumber = (int) entry.getValue();
Cell cell = row.createCell(cellNumber);
CellStyle cellstyle = wb.createCellStyle();
cellstyle.setAlignment(CellStyle.ALIGN_CENTER);
cell.setCellStyle(cellstyle);
Object value = stuMap.get(headerCell);
if(value instanceof String) {
cell.setCellValue((String)value);
}else if(value instanceof Date){
cell.setCellValue(((Date) value).toLocaleString());
}else if(value instanceof Integer){
cell.setCellValue((Double.valueOf(value.toString())));
} }
} FileOutputStream fos = new FileOutputStream("E:/studentInfo.xlsx");
wb.write(fos);
fos.flush();
fos.close();
System.out.println("OK"); }

  

java poi 导出Excel文件的更多相关文章

  1. java POI导出Excel文件数据库的数据

    在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者财务系统中用的非常普遍,因为这些系统经常要做一些报表打印的工作.这里我简单实现导出Excel文件. POI jar ...

  2. 重构:以Java POI 导出EXCEL为例

    重构 开头先抛出几个问题吧,这几个问题也是<重构:改善既有代码的设计>这本书第2章的问题. 什么是重构? 为什么要重构? 什么时候要重构? 接下来就从这几个问题出发,通过这几个问题来系统的 ...

  3. Java POI导出Excel不弹框选择下载路径(下载文件不选择下载路径,默认) Chrome

    在Chrome浏览器中,Java导出Excel文件时,浏览器弹出提示框,需要选择下载路径 在Chrome中的高级设置中,把“下载前询问每个文件的保存位置”去掉就解决了 DEEPLOVE(LC)

  4. Java POI 导出EXCEL经典实现 Java导出Excel

    转自http://blog.csdn.net/evangel_z/article/details/7332535 在web开发中,有一个经典的功能,就是数据的导入导出.特别是数据的导出,在生产管理或者 ...

  5. 重构:以Java POI 导出EXCEL为例2

    前言 上一篇博文已经将一些对象抽象成成员变量以及将一些代码块提炼成函数.这一节将会继续重构原有的代码,将一些函数抽象成类,增加成员变量,将传入的参数合成类等等. 上一篇博文地址:http://www. ...

  6. java 实现导出Excel文件

    java 实现导出Excel(java生成 excel 并导出文件) 经常有有一些数据需要导出成   excel  格式 ,所以就需要实现啦 开始: 1.加入jar poi-3.6-20091214. ...

  7. JAVA POI导出EXCEL 动态表头、多级表头、动态数据

    导出Excel文件是业务中经常遇到的需求,以下是经常遇到的一些问题: 1,导出中文文件名乱码 String filename = "sheet1";response.setChar ...

  8. java poi导出EXCEL xls文件代码

    String _currentPage = request.getParameter("currentPage"); Integer currentPage = 0; if(_cu ...

  9. java:POI导出excel

    POI是一个开源项目,专用于java平台上操作MS OFFICE,企业应用开发中可用它方便导出Excel. 下面是使用示例: 1.maven中先添加依赖项 <dependency> < ...

随机推荐

  1. spring.net AOP初探

    AOP是什么? 面向切面编程,在OO中有一个开放关闭原则,及对修改关闭,对扩展开放.AOP可以说是设计模式的集合加强版,使用代理.工厂.策略等等模式,来实现方法的结合.这样说还比较模糊,我们先往下看. ...

  2. mysql 建表 AUTO_INCREMENT , 数据类型 VARCHAR

    建表: 原帖地址: http://blog.sina.com.cn/s/blog_5da3d5c50100bjh0.html MySQL AUTO_INCREMENT 简介 (2009-01-02 1 ...

  3. network重启失败原因

    /etc/sysconfig/network-scripts/ifcfg-eth0   DEVICE='eth0'  eth0后面千万不能加空格之类的  

  4. [置顶] MyElipse9.0 M1安装svn(测试100%通过)

    为什么标题要写100%通过呢?原因是以前的方法(直接复制到plugin里(MyEclipse 6.0可以,我试过),link安装)都不好用了,9.0M1不吃这一套,所以告诉大家这么做一定能够装上!! ...

  5. Linux centos7环境下安装JDK的步骤详解

    Linux centos7环境下安装JDK的步骤详解 测试root用户下JAVA版本 输入命令:   java –version 1.先到Oracle官网里下载好jdk,网址如下: http://ww ...

  6. Mybatis学习笔记(一) 之框架原理

    原生态JDBC编程中问题总结 1.单独使用jdbc连接数据库 maven依赖包: <!-- mysql --> <dependency> <groupId>mysq ...

  7. Node.js 使用gm处理图像

    现要对之前的文件服务器进行扩展,听网上说gm处理图像来一套一套的.so决定使用该工具去实现文件服务器的图片处理这块.目标有下现在通过参数去获得缩略图http://xxx.xxx.com/image/2 ...

  8. CodeForces 747E Comments

    栈,模拟. 手动写一个栈模拟一下过程即可. #include<cstdio> #include<cstring> #include<string> #include ...

  9. 为什么用Object.prototype.toString.call(obj)检测对象类型?

    最近做了做一些js面试25 Essential JavaScript Interview Questions*,其中第一道是:使用typeof bar === "object"检测 ...

  10. docker安装使用

    介绍 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间不会 ...