JAVA实现Excel的读写--poi

JAVA实现Excel的读写--poi

  上一篇为大家介绍了通过xls.jar的方式生成Excel的方法,本篇就为大家再介绍一下通过poi方式实现Excel文件的读写操作,内容很简单,代码注释很清晰。



  1、生成Excel文件:





import java.io.File;

import java.io.FileOutputStream;



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

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

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

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



public class poi_write {

    

    public static void main(String[] args) {

        final String [] str = {"id", "name", "sex"};

        //创建Excel工作薄

        HSSFWorkbook workbook = new HSSFWorkbook();

        //创建Excel工作表

        HSSFSheet sheet = workbook.createSheet();

        //创建第一行

        HSSFRow row = sheet.createRow(0);

        HSSFCell cell = null;

        

        //添加表头

        for (int i = 0; i < str.length; i++) {

            cell = row.createCell(i);

            cell.setCellValue(str[i]);

        }

        

        //追加数据

        for (int i = 1; i <= 10; i++) {

            HSSFRow rows = sheet.createRow(i);

            HSSFCell cell_id = rows.createCell(0);

            cell_id.setCellValue(i+"");

            HSSFCell cell_name = rows.createCell(1);

            cell_name.setCellValue("name:"+i);

            HSSFCell cell_sex = rows.createCell(2);

            cell_sex.setCellValue("男");

        }

        

        //文件保存路径

        File file = new File("E:/cnblogs/poi_text.xls");

        try{

            if(!file.exists()){

                file.createNewFile();

            }

            FileOutputStream fileOut = new FileOutputStream(file);//创建一个文件输出流对象

            workbook.write(fileOut);

            fileOut.close();//关闭输出流对象

        }catch (Exception e) {

            e.printStackTrace();

        }

        System.out.println("Excel文件已生成");

    }

    

}



  2、读取Excel文件:





import java.io.File;

import java.io.IOException;



import org.apache.commons.io.FileUtils;

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

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

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

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



public class poi_reading {

    

    public static void main(String[] args) {

        final File file = new File("E:/cnblogs/poi_text.xls");

        if(file.exists()){

            try {

                HSSFWorkbook workbook = new HSSFWorkbook(FileUtils.openInputStream(file));

                //workbook.getSheet("Sheet0");获得指定的工作表

                //HSSFSheet sheet = workbook.getSheet("Sheet0");

                //workbook.getSheetAt(0);默认获得第一个工作表

                HSSFSheet sheet = workbook.getSheetAt(0);

                

                int firstRowNum = 0;

                //获得当前sheet最后一行行号

                int lastRowNum = sheet.getLastRowNum();

                for (int i = firstRowNum; i <= lastRowNum; i++) {

                    HSSFRow row = sheet.getRow(i);

                    //获得当前行最后单元格列号

                    int lastCellNum = row.getLastCellNum();

                    for (int j = 0; j < lastCellNum; j++) {

                        HSSFCell cell = row.getCell(j);

                        String value = cell.getStringCellValue();

                        System.out.print(value+" ");

                    }

                    System.out.println("");

                }

            } catch (IOException e) {

                e.printStackTrace();

            }

        }else{

            System.out.println("读取文件不存在");

        }

    }

    

}



  好了,基本的方法已经为大家介绍完毕,更好的效果展示就靠大家自己摸索了。



  不知道大家发现一个问题没?我们生成的Excl文件都是.xls结尾,.xls是office97-2003的版本,而对于2007以后的版本则是以.xlsx结尾。那如何生成高版本的Excel呢?我们不能仅仅是修改一下File文件的后缀名,我们这里需要使用XSSFWorkbook进行创建workbook,然后把剩余的HSSF开头去掉就可以了。不过在这里需要说明的就是,我们不知道用户使用的是低版本还是高版本,所以我们建议大家都使用HSSFWorkbook来进行创建以.xls结尾的Excel文件。



  如有错误,还望指正。谢谢
转载自:http://www.cnblogs.com/AndroidJotting/p/4422950.html
这个要导入org.apache.poi jar包,可以下载到!

 

你可能感兴趣的:(java实现)