POI版本:3.5beat(前面的版本只能操作2003,不兼容2007)

1.     Jar包导入项目lib文件夹下.

2.     创建ExcelOperation类:

 

 

package test;

 

//import org.apache.poi.hssf.model.Workbook;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.apache.poi.ss.usermodel.Cell;

import org.apache.poi.ss.usermodel.Row;

import org.apache.poi.ss.usermodel.Sheet;

import org.apache.poi.ss.usermodel.Workbook;

import org.apache.poi.xssf.usermodel.XSSFWorkbook;

 

public class ExcelIO {

 

/**

 *读取Excel

 */

public static String readExcel() throws IOException{

/**

   *POI提供了对20032007的访问接口,分别是HSSFWorkbookXSSFWorkbook

   *为了兼容20032007,这里选择它们的共同接口,而不是自己的具象类

   *切记,org.apache.poi.ss.usermodel下的接口,

   *不是org.apache.poi.hssf.model下的具象类

   */

    Workbook wk = null;      //Excel对象

    Sheet sheet = null;      //表对象

    Row row = null;          //行对象

    Cell cell = null;        //单元格对象

 

    try {

//d盘根目录有一个123.xslxExcel文档,先读2007,如果出现异常

//就是2003,在进行2003的处理

        wk = new XSSFWorkbook("D:/123.xlsx");// 2007

    }catch (Exception ex) {

        try {

        //2003的对象需要一个输入流

           wk = new HSSFWorkbook(new FileInputStream("D:/123.xls"));// 2003

        } catch (FileNotFoundException e) {

           e.printStackTrace();

        }

    }

    //获取第一张表

    sheet =wk.getSheetAt(0);

    //获取第一行

    row=sheet.getRow(0);

    //获取第一个单元格

    cell=row.getCell(0);

    /**

      *单元格中不同的数据类型,读取的方法也不同

      *例如:字符类型使用getStringCellValue();

      *数字类型使用getNumericCellValue()---返回double;

      *其他数据类型的操作方法参考API,这里只做入门级别的操作..

      */

    //String value=cell.getStringCellValue();

    String value=cell.getNumericCellValue()+"";

   

    /**

      *下面是进行对数据的修改,但是一修改,Excel就打不开了.不清楚为什么,有待研究...

      */

    //RichTextString text=null;

    //text=new XSSFRichTextString("update");

    //cell.setCellValue(text);

    //cell.setCellValue("update");

    //FileOutputStream fileOut = new FileOutputStream("D:/123.xlsx");

    //wk.write(fileOut);fileOut.close();

    return value;

}

 

public static void main(String[] args) {

    try {

        System.out.println(readExcel());

    } catch (IOException e) {

        e.printStackTrace();

    }

}

}