zoukankan      html  css  js  c++  java
  • 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文件。

      如有错误,还望指正。谢谢

  • 相关阅读:
    MongoDB(13)- 查询操作返回指定的字段
    MongoDB(12)- 查询嵌入文档的数组
    MongoDB(11)- 查询数组
    MongoDB(10)- 查询嵌套文档
    MongoDB(9)- 文档查询操作之 find() 的简单入门
    MongoDB(8)- 文档删除操作
    MongoDB(7)- 文档插入操作
    MongoDB(6)- BSON 数据类型
    MongoDB(5)- Document 文档相关
    MongoDB(4)- Collection 集合相关
  • 原文地址:https://www.cnblogs.com/AndroidJotting/p/4422950.html
Copyright © 2011-2022 走看看