• POI简易帮助文档系列--读取Excel文件


      上篇博客通过简单的几行代码就学会了POI新建Excel文档的使用,本篇博客也从简单出发,通过查看POI的官网文档和一个简单的代码实例,学习怎么遍历出一个Excel文档的内容。

      

     1 package com.myjava.poi;
     2 
     3 import java.io.FileInputStream;
     4 import java.io.InputStream;
     5 
     6 import org.apache.poi.hssf.usermodel.HSSFCell;
     7 import org.apache.poi.hssf.usermodel.HSSFRow;
     8 import org.apache.poi.hssf.usermodel.HSSFSheet;
     9 import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    10 import org.apache.poi.poifs.filesystem.POIFSFileSystem;
    11 
    12 public class ReadExcel {
    13 
    14     public static void main(String[] args) throws Exception{
    15         /**
    16          * 从文件系统中的“饭菜名单.xls”文件中获得输入字节
    17          */
    18         InputStream is=new FileInputStream("D:\饭菜名单.xls");
    19         //「POIFSFileSystem」类对象可以把Excel文件作为数据流来进行传入传出。
    20         POIFSFileSystem fs=new POIFSFileSystem(is);
    21         HSSFWorkbook wb=new HSSFWorkbook(fs);
    22         /** 获取第一个Sheet页或根据名字获得sheet页
    23         *public HSSFSheet getSheet(java.lang.String name)
    24         *Get sheet with the given name 
    25         */
    26         HSSFSheet hssfSheet=wb.getSheetAt(0); 
    27         if(hssfSheet==null){
    28             return;
    29         }
    30         // 遍历行Row
    31         for(int rowNum=0;rowNum<=hssfSheet.getLastRowNum();rowNum++){
    32             HSSFRow hssfRow=hssfSheet.getRow(rowNum);
    33             if(hssfRow==null){
    34                 continue;
    35             }
    36             // 遍历列Cell
    37             for(int cellNum=0;cellNum<=hssfRow.getLastCellNum();cellNum++){
    38                 HSSFCell hssfCell=hssfRow.getCell(cellNum);
    39                 if(hssfCell==null){
    40                     continue;
    41                 }
    42                 System.out.print("  "+getValue(hssfCell));
    43             }
    44             System.out.println();
    45         }
    46     }
    47     
    48     private static String getValue(HSSFCell hssfCell){
    49         if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_BOOLEAN){
    50             return String.valueOf(hssfCell.getBooleanCellValue());
    51         }else if(hssfCell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC){
    52             return String.valueOf(hssfCell.getNumericCellValue());
    53         }else{
    54             return String.valueOf(hssfCell.getStringCellValue());
    55         }
    56     }
    57 }

      这样就读出了我们上篇博客存入的Excel内容了。

      效果如下:

      

      新知识给人的感觉就是非常的困难,所以所有人对新知识都心生恐惧,因此,这篇博客从简单出发,让人扫一眼就能记住,不会有太大负担,让学习轻松起来。

  • 相关阅读:
    个人应该做什么样的网站?
    得对xls文件作操作
    正则替换
    31 反馈的判断方法(2)
    AD 层次原理图设计 自上而下
    27 多级放大电路的频率响应与第四章集成运放的电流源电路
    P28 集成运放的电流源电路(2)
    32 负反馈放大电路的方块图
    ESP8266固件AT指令连接EMQ 的MQTT服务器
    33 深度负反馈的实质与放大倍数分析
  • 原文地址:https://www.cnblogs.com/jyh317/p/3817066.html
Copyright © 2020-2023  润新知