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. iOS多线程的初步研究1

    iOS多线程的初步研究(一) 对于多线程的开发,iOS系统提供了多种不同的接口,先谈谈iOS多线程最基础方面的使用.产生线程的方式姑且分两类,一类是显式调用,另一类是隐式调用. 一.显示调用的类为NS ...

  2. 第一章 引言--《设计模式-可复用面向对象软件的基础》Erich Gamma

    第一章 引言 本章主要是让我们大致明白设计模式是干嘛用的,模式分类,设计模式如何解决设计问题以及几种常见的面向对象设计中软件的复用方法. 1.什么是设计模式? 个人理解概括,设计模式是对一类问题的抽象 ...

  3. Hadoop完全分布式搭建过程中遇到的问题小结

    前一段时间,终于抽出了点时间,在自己本地机器上尝试搭建完全分布式Hadoop集群环境,也是借助网络上虾皮的Hadoop开发指南系列书籍一步步搭建起来的,在这里仅代表hadoop初学者向虾皮表示衷心的感 ...

  4. C++11多线程std::thread的简单使用

    在cocos2dx 2.0时代,我们使用的是pthread库,是一套用户级线程库,被广泛地使用在跨平台应用上.但在cocos2dx 3.0中并未发现有pthread的支持文件,原来c++11中已经拥有 ...

  5. ruby web性能响应时间

    可以统计单个web页面加载时间. require 'watir-webdriver' require 'watir-webdriver-performance' b = Watir::Browser. ...

  6. Windows server 2008 r2上安装MySQL

    用MSI安装包安装 根据自己的操作系统下载对应的32位或64位安装包.按如下步骤操作: MySQL数据库官网的下载地址http://dev.mysql.com/downloads/mysql,第一步: ...

  7. windows系统下快捷命令

    mstsc 远程计算机 regedit 注册表

  8. CodeForces 718C Sasha and Array

    线段树. 线段树维护区间矩阵和,操作都是最简单的线段树.$lazy$标记不要记录乘了几次,直接记录乘了几次之后的矩阵就可以了,不然每次下传的时候再算一遍时间复杂度会提高. #pragma commen ...

  9. [HMLY]14.对iOS开发中使用MVVM的理解和使用(初级)

    前言 MVVMDemo 之前几个月一直在学习react-native,它的组件化开发真的是很棒,控件和页面的组件化在开发中可以很好的复用,节省开发时间.在那个时候还不知道react-native开发用 ...

  10. 《Hexo+github搭建个人博客》

    <Hexo+github搭建个人博客> 文/冯皓林 完稿:2016.4.22-2016.4.23 注意:本节教程只针对Windows用户.本教程由无人赞助,赞助写出. <Hexo+g ...