jxl学习笔记一,文件格式

来源:互联网 发布:改不了淘宝店名 编辑:程序博客网 时间:2024/06/05 07:38

源文件:

public static void main(String[] args) throws BiffException, IOException {
  File excel=new File("D:\\UploadFile\\1389066633586.xls");
  Workbook wb = Workbook.getWorkbook(excel);
  Sheet sheet = wb.getSheet(0);
  for(int i =0;i<sheet.getRows();i++){
   for(int j=0;j<sheet.getColumns();j++){
    Cell cell = sheet.getCell(j, i);
    if(cell.getType()==CellType.NUMBER){
     System.out.println(cell.getClass());
     try{
      NumberCell n =(NumberCell)cell;
      System.out.println(n.getValue()+10);
     }catch(Exception e){
      System.out.println("cast NumberCell Exception");
     }
     try{
      Number nn =(Number)cell;
     }catch(Exception e){
      System.out.println("cast Number Exception");
     }
     System.out.println("-----------------------------------");
    }
   }
  }
 }

一,不是所有excel文件都可以解析

一些通过网页生成的excel文件,虽然扩展名是xls,用wps也可以正常打开,但是用jxl解析的时候会直接报错

Workbook wb = Workbook.getWorkbook(file);

报错:

Exception in thread "main" jxl.read.biff.BiffException: Unable to recognize OLE stream
 at jxl.read.biff.CompoundFile.<init>(CompoundFile.java:116)
 at jxl.read.biff.File.<init>(File.java:127)
 at jxl.Workbook.getWorkbook(Workbook.java:221)
 at jxl.Workbook.getWorkbook(Workbook.java:198)
 at TestJxl.ExcelJxl.main(ExcelJxl.java:17)

而用notepad++直接打开该excel文件可以看到,文件内容为

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="Generator" content="Microsoft Excel 11" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style>
.n {
 vnd .ms-excel.numberformat: @
}
</style>
</head>
<body>
 <table id="table" cellspacing="0" cellpadding="0"
  style="BORDER-COLLAPSE: collapse" bordercolor="#666666" border="1"
  align="center">

//此处省略

</table>
</body>
</html>

可以知道该文件实际上是一个Html文件,如果用wps打开该文件,另存为时也会显示为html文件,当另存为xls文件后就可以用jxl解析了

 

0 0