JAVA POI 应用系列(1)--生成Excel

POI简介(官网:http://poi.apache.org/


    Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能。自2009-09-28后,推出了3.5版本,提供了对Office2007的支持;

 

关于Apache POI一些重要的地方:


1)Apache POI 包含适合Excel97-2007(.xls文件)的HSSF实现.
2)Apache POI XSSF实现用来处理Excel2007文件(.xlsx).
3)Apache POI HSSF和XSSF提供了读/写/修改Excel表格的机制.
4)Apache POI 提供了XSSF的一个扩展SXSSF用来处理非常大的Excel工作单元.SXSSF API需要更少的内存,因此当处理非常大的电子表格同时堆内存又有限时,很合适使用.
5)有两种模式可供选择--事件模式和用户模式.事件模式要求更少的内存,因为用tokens来读取Excel并处理.用户模式更加面向对象并且容易使用,因此在我们的示例中使用用户   模式.
6)Apache POI为额外的Excel特性提供了强大支持,例如处理公式,创建单元格样式--颜色,边框,字体,头部,脚部,数据验证,图像,超链接等.  

 

 

 

 添加maven依赖:

 

 1 <!--  操作excel,doc... -->
 2     <dependency>  
 3     <groupId>org.apache.poi</groupId>  
 4     <artifactId>poi</artifactId>  
 5     <version>3.10-FINAL</version>  
 6 </dependency>  
 7     <dependency>  
 8     <groupId>org.apache.poi</groupId>  
 9     <artifactId>poi-ooxml</artifactId>  
10     <version>3.10-FINAL</version>  
11 </dependency>

 

代码如下:

 

 1 package com.yanwu.www.spring_hibernate.util;
 2 
 3 import java.io.FileOutputStream;
 4 import java.io.IOException;
 5 
 6 import org.apache.poi.hssf.usermodel.HSSFCell;
 7 import org.apache.poi.hssf.usermodel.HSSFCellStyle;
 8 import org.apache.poi.hssf.usermodel.HSSFRow;
 9 import org.apache.poi.hssf.usermodel.HSSFSheet;
10 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
11 
12 public class SimpleExcelWrite{
13     
14     public static void main(String[] args) {
15         
16         //第一步创建workbook  
17         HSSFWorkbook wb = new HSSFWorkbook();  
18           
19         //第二步创建sheet  
20         HSSFSheet sheet = wb.createSheet("测试");  
21           
22         //第三步创建行row:添加表头0行  
23         HSSFRow row = sheet.createRow(0);  
24         HSSFCellStyle  style = wb.createCellStyle();      
25         //style.setAlignment(HSSFCellStyle.ALIGN_CENTER);  //居中  
26           
27           
28         //第四步创建单元格  
29         HSSFCell cell = row.createCell(0); //第一个单元格  
30         cell.setCellValue("姓名");  
31         cell.setCellStyle(style);  
32         
33         
34         
35         cell = row.createCell(1);         //第二个单元格     
36         cell.setCellValue("年龄");  
37         cell.setCellStyle(style);  
38           
39        
40         //第五步插入数据  
41        
42         for (int i = 0; i < 5; i++) {  
43             //创建行  
44             row = sheet.createRow(i+1);  
45             //创建单元格并且添加数据  
46             row.createCell(0).setCellValue("aa"+i);  
47             row.createCell(1).setCellValue(i);  
48             
49         }  
50           
51         //第六步将生成excel文件保存到指定路径下  
52         try {  
53             FileOutputStream fout = new FileOutputStream("C:\\Users\\IBM_ADMIN\\Desktop\\promotion\\a.xls");  
54             wb.write(fout);  
55             fout.close();  
56         } catch (IOException e) {  
57             e.printStackTrace();  
58         }  
59           
60         System.out.println("Excel文件生成成功...");  
61     }  
62       
63 
64         
65     }
66     
67     
68     
69     

 

效果:

 

 

posted @ 2017-05-27 11:47  Harvey2017  阅读(10103)  评论(2编辑  收藏  举报