Java-POI读取Excel简单案例

本文介绍了一种使用Apache POI库读取Excel(.xls)文件的方法,通过遍历单元格并判断其类型来提取数据,包括布尔值、数字、日期、公式及字符串等,并将这些数据打印到控制台。

 利用poi工具把上篇输出后的.xls的内容读出来,打印到控制台。

package com.lzz.hssf; 
 
import java.io.FileInputStream; 
import java.io.InputStream; 
import java.util.Iterator; 
 
 
import org.apache.poi.hssf.extractor.ExcelExtractor; 
import org.apache.poi.hssf.usermodel.HSSFCell; 
import org.apache.poi.hssf.usermodel.HSSFDateUtil; 
import org.apache.poi.hssf.usermodel.HSSFRow; 
import org.apache.poi.hssf.usermodel.HSSFSheet; 
import org.apache.poi.hssf.usermodel.HSSFWorkbook; 
 
/** 
 * 读取上篇中的xls文件的内容,并打印出来 
 * @author Administrator 
 * 
 */ 
public class PoiReadTable { 
 
    /**读取一个excel文件的内容 
     * @param args 
     * @throws Exception  
     */ 
    public static void main(String[] args) throws Exception { 
        //extractor(); 
        readTable(); 
    } 
     
     
    //通过对单元格遍历的形式来获取信息 ,这里要判断单元格的类型才可以取出值
    public static void readTable() throws Exception{ 
        InputStream ips=new FileInputStream("d://test2-1.xls"); 
        HSSFWorkbook wb=new HSSFWorkbook(ips); 
        HSSFSheet sheet=wb.getSheetAt(0); 
        for(Iterator ite=sheet.rowIterator();ite.hasNext();){ 
            HSSFRow row=(HSSFRow)ite.next(); 
            System.out.println(); 
            for(Iterator itet=row.cellIterator();itet.hasNext();){ 
                HSSFCell cell=(HSSFCell)itet.next(); 
                switch(cell.getCellType()){   
                case HSSFCell.CELL_TYPE_BOOLEAN:   
                    //得到Boolean对象的方法   
                    System.out.print(cell.getBooleanCellValue()+" ");   
                    break;   
                case HSSFCell.CELL_TYPE_NUMERIC:   
                    //先看是否是日期格式   
                    if(HSSFDateUtil.isCellDateFormatted(cell)){   
                        //读取日期格式   
                        System.out.print(cell.getDateCellValue()+" ");   
                    }else{   
                        //读取数字   
                        System.out.print(cell.getNumericCellValue()+" ");   
                    }   
                    break;   
                case HSSFCell.CELL_TYPE_FORMULA:   
                    //读取公式   
                    System.out.print(cell.getCellFormula()+" ");   
                    break;   
                case HSSFCell.CELL_TYPE_STRING:   
                    //读取String   
                    System.out.print(cell.getRichStringCellValue().toString()+" ");   
                    break;                     
            }   
            } 
        } 
         
    } 
     
    //直接抽取excel中的数据 
    public static void extractor() throws Exception{ 
        InputStream ips=new FileInputStream("d://test2-1.xls"); 
        HSSFWorkbook wb=new HSSFWorkbook(ips); 
        ExcelExtractor ex=new ExcelExtractor(wb); 
        ex.setFormulasNotResults(true); 
        ex.setIncludeSheetNames(false); 
        String text=ex.getText(); 
        System.out.println(text);  
    } 
}


本文出自  orangleliu笔记本  博客,请务必保留此出处 http://blog.csdn.net/orangleliu/article/details/38309349

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值