java读取EXCEL文件内容

package com.cctchina.rbac.action.user;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

public class ImportUser {

 public static List readExcel(String excelFileName) throws BiffException, IOException{
    
    //创建一个list 用来存储读取的内容
    List list = new ArrayList();
    Workbook rwb = null;
    Cell cell = null;
    
    //创建输入流
    InputStream stream = new FileInputStream(excelFileName);
    
    //获取Excel文件对象
    rwb = Workbook.getWorkbook(stream);
    
    //获取文件的指定工作表 默认的第一个
    Sheet sheet = rwb.getSheet(0);  
   
    //行数(表头的目录不需要,从1开始)
    for(int i=1; i<sheet.getRows(); i++){
     
     //创建一个数组 用来存储每一列的值
     String[] str = new String[sheet.getColumns()];
     
     //列数
     for(int j=0; j<sheet.getColumns(); j++){
     
      //获取第i行,第j列的值
      cell = sheet.getCell(j,i);    
      str[j] = cell.getContents();
      
     }
     //把刚获取的列存入list
     list.add(str);
    }
    
    //返回值集合
    return list;
   }

 public static void main(String[] args) {
  try {
   readExcel("I:/Users/Administrator/Desktop/技术汇总.xls");
  } catch (BiffException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } catch (IOException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  }
 }
}

 

另外:报这个错的时候 :jxl.read.biff.BiffException: Unable to recognize OLE stream

主要是因为:1.EXCEL版本不对,用2003的,不要用2007的

                     2.用EXCEL建立建立的文件不会出现这个问题了。
原因:你手工建立一个文件,并给它命名,给它后缀名,电脑可以识别是因为你的电脑装了OFFICE 里面的EXCEL。
但是在JAVA程序中并不知道你是EXCEL文件,所以被认为不能识别的。如果你的电脑没装EXCEL你再建立个文件再改名为exce的后缀名的话,你的电脑也不会识别是什么文件的。。你打开绝对是乱码。

                      3.excel导出来的时候没有用jxl和POI等库,所以导出来的文件不是标准的excel,

解决方法是:将原来的excel里的数据全部复制到另一个新建的标准的excel里,这就是一个标准的excel文件。这时在向数据库里导时。OK,成功通过

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值