使用jxl读取数据库,代码如下:
package test;
import java.io.*;
import jxl.*;
public class ReadExcel {
public void readExcel(String strPath) throws Exception{
System.out.println(strPath);
File file=new File(strPath);
Workbook workBook = Workbook.getWorkbook(file);
Sheet sheet=workBook.getSheet(0);
Cell[] row;
Cell cell;
for (int i = 0; i < sheet.getRows(); i++) {
row = sheet.getRow(i);
for (int j = 0; j < row.length; j++) {
cell = row[j];
System.out.print(cell.getContents()+" type:"+cell.getType() + "\t");
}
System.out.println("");
}
workBook.close();
}
public static void main(String[] args) {
try {
new ReadExcel().readExcel("E:\\text.xls");
} catch (Exception e) {
e.printStackTrace();
}
}
}
出现该异常,具体内容为:
Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at test.ReadExcel.readExcel(ReadExcel.java:11)
at test.ReadExcel.main(ReadExcel.java:29)
网上搜索原因说是因为JDK存在不同版本的问题,修改以后依旧报错,困扰,希望能得到大家的帮助。
刚从[url=http://sourceforge.net/projects/jexcelapi/]这里[/url]下载了一个JExcelApi 2.6.12来,用顶楼的程序来跑没问题。
楼主贴出来的stack trace显示错误是出现在JVM加载Workbook.class时,刚才打开jxl.jar中的Workbook.class来看,它的class version是50.0,对应的是Java SE 6的class文件格式。Java SE 5对应的class文件格式是49.0。你要在1.5用jxl.jar的话恐怕得自己编译一遍了,反之源码都在那个包里。
你的编译器版本是JDK多少? 看看这里http://zhbwww.iteye.com/blog/472170
JDK版本不对
jxl是兼容Java SE 5的一组库,要是有不兼容问题的话……楼主是在用JDK 1.4么