Java 操作 Excel

  这次的任务是实现数据的导入/导出功能,就是用Java操作Excel,上网找了一下,就Java来说用Apache的POI库的比较多,功能也相对比较强大。其他Excel开发库: http://www.oschina.net/project/tag/258/excel-tools Apache POI 下载地址: http://poi.apache.org/download.html

  废话不多说,直接给几个例子就了解怎么用了。

  Excel 2003 (xls后缀)

 1 import java.io.FileInputStream;
 2
 3 import org.apache.poi.hssf.usermodel.HSSFRow;
 4 import org.apache.poi.hssf.usermodel.HSSFSheet;
 5 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 6
 7 public class ReadExcel2003 {
 8     public static void main(String[] args) {
 9         try {
10             FileInputStream file = new FileInputStream("C:\\dd.xls");
11
12             HSSFWorkbook workbook = new HSSFWorkbook(file);
13             HSSFSheet sheet = workbook.getSheetAt(0);
14             HSSFRow row = null;
15
16             for(int i=0;sheet.getRow(i)!=null;i++){
17                 row = sheet.getRow(i);
18                 for(int j=0;row.getCell(j)!=null;j++){
19                     System.out.print(row.getCell(j)+"");
20                 }
21                 System.out.println();
22             }
23         } catch (Exception e) {
24             e.printStackTrace();
25         }
26     }
27 }

  Excel 2007 (xlsx后缀)

 1 import java.io.FileInputStream;
 2
 3 import org.apache.poi.xssf.usermodel.XSSFRow;
 4 import org.apache.poi.xssf.usermodel.XSSFSheet;
 5 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 6
 7 public class ReadExcel2007 {
 8     public static void main(String[] args) {
 9         try {
10             FileInputStream file = new FileInputStream("C:\\bb.xlsx");
11             XSSFWorkbook workbook  = new XSSFWorkbook(file);
12             XSSFSheet sheet = workbook.getSheetAt(0);
13
14             XSSFRow row = null;
15
16             for(int i=0;sheet.getRow(i)!=null;i++){
17                 row = sheet.getRow(i);
18                 for(int j=0;row.getCell(j)!=null;j++){
19                     System.out.print(row.getCell(j)+" ");
20                 }
21                 System.out.println();
22             }
23         } catch (Exception e) {
24             e.printStackTrace();
25         }
26     }
27 }

  Excel 2003 (xls 后缀)

 1 import java.io.FileOutputStream;
 2
 3 import org.apache.poi.hssf.usermodel.HSSFCell;
 4 import org.apache.poi.hssf.usermodel.HSSFRow;
 5 import org.apache.poi.hssf.usermodel.HSSFSheet;
 6 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 7
 8 public class WriteExcel2003 {
 9     public static void main(String[] args) {
10         try {
11             HSSFWorkbook workbook = new HSSFWorkbook();
12             HSSFSheet sheet = workbook.createSheet("test"); //页签
13             HSSFRow row = sheet.createRow(1);
14             HSSFCell cell = row.createCell(2);
15             cell.setCellValue("test");
16             for (int i=0;i<100;i++){
17                 row = sheet.createRow(i);
18                 for(int j=0;j<100;j++){
19                     cell = row.createCell(j);
20                     cell.setCellValue("("+i+","+j+")");
21                 }
22             }
23             FileOutputStream os = null;
24             os = new FileOutputStream("C:\\dd.xls");
25             workbook.write(os);
26             os.flush();
27             os.close();
28         } catch (Exception e) {
29             e.printStackTrace();
30         }
31         System.out.println("Ok");
32     }
33 }

  Excel 2007 (xlsx 后缀)

 1 import java.io.FileOutputStream;
 2
 3 import org.apache.poi.xssf.usermodel.XSSFCell;
 4 import org.apache.poi.xssf.usermodel.XSSFRow;
 5 import org.apache.poi.xssf.usermodel.XSSFSheet;
 6 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 7
 8 public class WriteExcel2007 {
 9     public static void main(String[] args) {
10         try {
11             XSSFWorkbook workbook = new XSSFWorkbook();
12             XSSFSheet sheet = workbook.createSheet("test"); //页签
13             XSSFRow row = sheet.createRow(1);
14             XSSFCell cell = row.createCell(2);
15             cell.setCellValue("test");
16             for (int i=0;i<100;i++){
17                 row = sheet.createRow(i);
18                 for(int j=0;j<100;j++){
19                     cell = row.createCell(j);
20                     cell.setCellValue("("+i+","+j+")");
21                 }
22             }
23             FileOutputStream os = null;
24             os = new FileOutputStream("C:\\dd.xlsx");
25             workbook.write(os);
26             os.flush();
27             os.close();
28         } catch (Exception e) {
29             e.printStackTrace();
30         }
31         System.out.println("Ok");
32     }
33 }

  这里要说一下Excel的xls和xlsx两种后缀里面的数据存储方式区别太大,所以导致编写代码的时候要使用两个完全不同的库。这个只要把后缀改成zip,然后看压缩包里面有什么数据就大概知道为什么不一样了。xlsx是使用xml来保存的,这种格式应该是比较好的描述数据吧,所以才会使用完成不一样的格式来升级。

  从官网上下载POI包,里面有API,更多的操作可以查看API。

  下面介绍几个常用的API

1             HSSFSheet sheet = workbook.createSheet("test"); //页签
2             HSSFRow row = sheet.createRow(1);
3             HSSFCell cell = row.createCell(1);
4             cell.setCellValue("test");
5             cell = row.createCell(3);
6             cell.setCellFormula("B2"); //使用公式
7             sheet.setColumnWidth(2, 300); //设置列宽
8             row.setHeight((short) 1000); //设置行高

  效果

  字体属性

 1             HSSFRow row = sheet.createRow(1);
 2             HSSFCell cell = row.createCell(1);
 3             cell.setCellValue("TEST"); //设置文字
 4             HSSFFont font = workbook.createFont();
 5             font.setFontHeightInPoints((short)13); //设置字体大小
 6             font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); //设置字体加粗
 7             font.setFontName("黑体"); //设置字体为黑体
 8             HSSFColor color=new HSSFColor.BLUE();
 9             font.setColor(color.getIndex()); //设置设置颜色
10             HSSFCellStyle style = workbook.createCellStyle();
11             style.setFont(font); //封装成一个样式
12             cell.setCellStyle(style); //设置样式

  效果

  其实常用的也就是对文字的导入和导出功能,其他的样式描述功能,没有什么大的用处,实际用的比较少。

  参考资料:  http://my.oschina.net/zimingforever/blog/101142

         http://www.cnblogs.com/hongten/archive/2012/02/22/java2poi.html

        http://my.oschina.net/baochanghong/blog/351592

  本文地址:  http://www.cnblogs.com/wunaozai/p/4179270.html

时间: 2024-12-22 20:14:45

Java 操作 Excel的相关文章

java 操作 Excel,java导出excel

WritableWorkbook out = null; try { response.getServletResponse().reset(); ((HttpServletResponse) response.getServletResponse()).setHeader("Content-Disposition", "attachment;filename=export.xls"); response.getServletResponse().setConten

java操作Excel

一.POI简介 Jakarta POI 是apache的子项目,目标是处理ole2对象.它提供了一组操纵Windows文档的Java API 目前比较成熟的是HSSF接口,处理MS Excel(97-2002)对象.它不象我们仅仅是用csv生成的没有格式的可以由Excel转换的东西,而是真正的Excel对象,你可以控制一些属性如sheet,cell等等. 二.HSSF概况 HSSF 是Horrible SpreadSheet Format的缩写,也即“讨厌的电子表格格式”.也许HSSF的名字有点

Java 操作 Excel (读取Excel2007,Poi实现)

关于Java读取Excel2007的文章在Google.百度上搜索一下,没有太好的例子,实现的也不算太好.查看了一下Poi,最新的 POI 3.5 beta 4 支持读写 Excel2007和PPT2007(XLSX and PPTX),自己来实现Java读取Excel2007了. 1,下载 POI 3.5 beta 4 解压,把其中的jar包导入项目文件.以我的读取为例,导入了以下jar包.  没有配置 log4j,测试时报告警报信息,应该为加载顺序导致的初始化问题造成(暂时没有找原因). 2

java操作Excel处理数字类型的精度损失问题验证

java操作Excel处理数字类型的精度损失问题验证: 场景: CELL_TYPE_NUMERIC-->CELL_TYPE_STRING--->CELL_TYPE_NUMERIC POI版本:poi-3.10.1poi-3.9 Code: package poi; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.i

java 操作excel 文件

JAVA EXCEL API:是一开放源码项目,通过它Java开发人员可以读取Excel文件的内容.创建新的Excel文件.更新已经存在的Excel文件.使用该API非Windows操作系统也可以通过纯Java应用来处理Excel数据表.因为它是使用Java编写的,所以我们在Web应用中可以通过JSP.Servlet来调用API实现对Excel数据表的访问. 下载: 官方网站 http://www.andykhan.com/jexcelapi/ 下载最新版本(本人下的是jexcelapi_2_6

Java操作excel表格

最近老师布置了个任务,用Java对excel后缀名为xlsx的文件进行简单的增,删,改,查操作:虽说是个简单的程序,可作为刚接触的我来说还是有些磕磕碰碰.不过好在还是完成了,进行一个简单的总结. 首先导入了一个poi.jar 网上有很多这个资源可以下载 XSSFSheet sheet=null;XSSFWorkbook book=null; 一:查  (查找本地指定位置的excel表格,在控制台输出) public void print_excel(){ //获取excel表格的行数 int l

Java操作Excel之POI简单例子

21 /** 22 * 利用POI操作Excel表单 23 * 24 * 需要jar包: 25 * HSSF针对03及以前版本,即.xls后缀 26 * |---poi-3.16.jar 27 * XSSF针对07及以后版本,即xlsx后缀 28 * |---poi-3.16.jar 29 * |---poi-ooxml.3.16.jar 30 * |---poi-ooxml-schemas-3.16.jar 31 * |---xmlbeans-2.6.0.jar 32 * |---common

Java操作Excel学习

一. POI简介 Apache POI是Apache软件基金会的开放源码函式库,POI提供API给Java程序对Microsoft Office格式档案读和写的功能. 二. HSSF概况 HSSF 是Horrible SpreadSheet Format的缩写,通过HSSF,你可以用纯Java代码来读取.写入.修改Excel文件.HSSF 为读取操作提供了两类API:usermodel和eventusermodel,即"用户模型"和"事件-用户模型". 三. POI

Java操作Excel(使用JXL)

一.本地操作 1.读取 1 package com.ljf.mb; 2 3 import java.io.FileInputStream; 4 import java.io.InputStream; 5 6 import jxl.Cell; 7 import jxl.Sheet; 8 import jxl.Workbook; 9 10 public class ReadExcel 11 { 12 public static void main(String[] args) throws Exce