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. JAVA多线程经典问题 -- 生产者 消费者

    工作2年多来一直也没有计划写自己的技术博客,最近辞职在家翻看<thingking in JAVA>,偶尔看到了生产者与消费者的一个经典的多线程同步问题.本人在工作中很少使用到多线程以及高并 ...

  2. 关于ToolStrip设置Location无效的问题

    问题现象 当多个ToolStrip使用ToolStripContainer布局时,可以让用户自己拖动工具栏,所以在程序关闭时必须保存用户拖动工具栏的位置,但是在再次打开程序后,还原回来的工具栏位置会有 ...

  3. 最近学习了下BI(商业智能)做报表

    最近公司购买了Style intelligence 出的BI报表工具,接触新的东西不是很容易上手,这个东西是别的项目组用的,我们项目组由于进度比较快就让我先到他们项目组帮他们,为了使用这个东西,他们已 ...

  4. OpenRisc-34-ORPSoC跑eCos实验

    引言 ORPSoC目前支持好几种OS,除了前面一直介绍的linux,还支持eCos,eCos是RTOS,如果你的系统对时间的要求比较高,那eCos会是一个不错的选择. 本小节就简单介绍一下,在ORPS ...

  5. erlang集成开发环境搭配配置出现的问题

    问题:Unable to create the selected preference page.  com.avaya.exvantage.ui.interfaces.eclipse.plugin  ...

  6. Html 模态框操作

    <style> #modal-overlay { visibility: hidden; position: absolute; /* 使用绝对定位或固定定位 */ left: 0px; ...

  7. C语言之二维数组

    二维数组 还是一个数组,只不过数组中得每一个元素又是一个数组 1). 声明语法 类型 数组名[行][列]; 例:  int nums[2][3];//2行3列的二维数组,保存的数据类型是int类型 c ...

  8. C语言:json库使用学习

    Json基础 一.Json的概念 Json(Javascript Object Notation)全称为JavaScript对象表示法,是一种轻量级的数据交换格式,采用完全独立于语言的文本格式.JSO ...

  9. 【百科】CLEO 逐推縮寫命名法

    一. 適用場合 1. C# Windows Forms 等窗體開發技術的控件名稱縮寫: 2. 強行縮寫駝峰命名法(Camel-Case).帕斯卡命名法的英文的時候: 二. 命名規則 1. 首字母大寫: ...

  10. 第12章 MySQL高级管理

    1.手动更新权限后,需向服务器指出已对权限进行修改: (在MySQL提示符下)flush privileges; 2.查看用户所拥有的权限: 如: show grants for bookorama; ...