Apache POI操作excel

 POI操作excel文件基础

怀着激动地心情开始本人的第一篇博文编写,希望用博客记录我的技术进阶路上的历程,也给需要的同志们提供一点小小的指导。
OK,进入今天的主题吧——POI Excel文件操作基础

话说Apache的office文挡的操作库的确很神奇也很强大,最近我在写一个关于“随机抽取试卷”功能的小项目,需要设计java对excel文件的操作,于是走上了踏上了探索POI的路程。

需要用的POI Jar包在这里哦!http://poi.apache.org/download.html

看看我的导入的jar包:
这里需要对扩展名为.xlsx的文件进行读取并输出,POI的读取方式是读取Excel表格的每一个小格的数据,一个小格就是一个类XSSFCell对象。

Okay,还是代码看的比较直接比较爽:
	public static String readXlsx(String path) { 
		String text = "";

		try {
			OPCPackage pkg = OPCPackage.open(path);  

			XSSFWorkbook excel = new XSSFWorkbook(pkg);

			XSSFSheet sheet1 = excel.getSheetAt(0);


			for(@SuppressWarnings("rawtypes")
			java.util.Iterator itRow = sheet1.iterator(); itRow.hasNext();) {

				XSSFRow row = (XSSFRow) itRow.next();

				for(java.util.Iterator<Cell> it = row.cellIterator(); it.hasNext();) {

					XSSFCell cell = (XSSFCell) it.next();
					text += cell.getStringCellValue() + "\n";
				}
			}
			excel.close();
		} catch (Exception e) {
			e.printStackTrace();
			log.warning(e.toString());
		}
		return text;
	}

调用这个方法可以读取你的.xlsx文件里的数据哦!看看效果吧!look here:



当然,excel表格的扩展名可以是“.xlsx”也可以是“.xls”,这两种类型文件操作的方式是不同的,但是还是大同小异的啦,不过调用的类 不同而已。这里给一个读取“.xls”文件的方法:
 public static String readXls(String path)
    {
        String text="";  
         try 
         {  
              FileInputStream is =  new FileInputStream(path);
              HSSFWorkbook excel=new HSSFWorkbook(is);  
             //获取第一个sheet  
             HSSFSheet sheet0=excel.getSheetAt(0);  
             for (Iterator rowIterator=sheet0.iterator();rowIterator.hasNext();) 
             {  
                 HSSFRow row=(HSSFRow) rowIterator.next();  
                 for (Iterator iterator=row.cellIterator();iterator.hasNext();) 
                 {  
                     HSSFCell cell=(HSSFCell) iterator.next();  
                     //根据单元的的类型 读取相应的结果  
                     if(cell.getCellType()==HSSFCell.CELL_TYPE_STRING) text+=cell.getStringCellValue()+"\t";  
                     else if(cell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC) text+=cell.getNumericCellValue()+"\t";  
                     else if(cell.getCellType()==HSSFCell.CELL_TYPE_FORMULA) text+=cell.getCellFormula()+"\t";  
                 }  
               text+="\n";  
             }          
         } 
         catch (Exception e) 
         {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
         }  

         return text; 
    }

POI还支持Word、PPT文件的操作,慢慢学习吧。

我的博文处女作到这里就要完成了,希望每天进步一点,fighting!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值