用jxl.jar包运行失败,请教java高手,尤其用这个包处理Excel文件的大虾们,谢谢了!
请教各位java高手,在网上下载了jxl.jar,放在了jdk目录下的%JAVA_HOME%jre/lib/ext目录下,并在classpath中加了%JAVA_HOME...
请教各位 java高手,在网上下载了jxl.jar,放在了jdk目录下的%JAVA_HOME%jre/lib/ext目录下,并在classpath中加了%JAVA_HOME%jre/lib/ext/jxl.jar,调式一段代码,编译通过,但在运行.class的时候总是报错
Exception in thread "main" java.lang.NoClassDefFoundError: jxl/Workbook
at ReadExcel.readExcel(ReadExcel.java:17)
at ReadExcel.main(ReadExcel.java:62)
应该不是代码问题,因为我换一段代码也是报类似的错误,那位高手能帮我看看,是不是配置方面有问题,还是我下的jxl.jar有问题
代码如下(网上down的):
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import jxl.Cell;
import jxl.CellType;
import jxl.Sheet;
import jxl.Workbook;
public class ReadExcel
{
public void readExcel()
{
try {
//构建Workbook对象, 只读Workbook对象
//直接从本地文件创建Workbook //从输入流创建Workbook
File file = new File("D:/cn/测试.xls");//"E:/temp/HodeOA_2005/Book1.xls");
InputStream is = new FileInputStream(file);
Workbook rwb = Workbook.getWorkbook(is);
//获得工作薄(Workbook)中工作表(Sheet)的个数
int sheetsc = rwb.getNumberOfSheets();
//返回工作薄(Workbook)中工作表(Sheet)对象数组
Sheet[] sheets = rwb.getSheets();
for (int i = 0; i<sheetsc;i++) {
System.out.println("-------------------------------");
System.out.println("【工作表Sheet"+i+"的信息】");
//获取获取工作表(Sheet)的名称
String sheetName = sheets[i].getName();
System.out.println("Sheet名称:" + sheetName);
//获取Sheet表中所包含的总列数
int rsColumns = sheets[i].getColumns();
System.out.println("Sheet总列数:" + rsColumns);
//获取Sheet表中所包含的总行数
int rsRows = sheets[i].getRows();
System.out.println("Sheet总行数:" + rsRows);
//逐行输出单元格信息
System.out.println("Sheet内容:" + rsRows);
for (int j = 0; j <rsColumns;j++){
System.out.print("行"+j+":");
//获取某一行的所有单元格,返回的是单元格对象数组,示例子:
Cell[] cell = sheets[i].getRow(j);
for (int k = 0; k <rsRows;k++){
//获取单元内容
String cellContent = cell[k].getContents();
//获取单元类型
CellType cellType= cell[k].getType();
System.out.print(" "+cellContent+"["+cellType+"] ");
}
System.out.println();
}
}
rwb.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void main(String[] args)
{
ReadExcel re = new ReadExcel();
re.readExcel();
}
} 展开
Exception in thread "main" java.lang.NoClassDefFoundError: jxl/Workbook
at ReadExcel.readExcel(ReadExcel.java:17)
at ReadExcel.main(ReadExcel.java:62)
应该不是代码问题,因为我换一段代码也是报类似的错误,那位高手能帮我看看,是不是配置方面有问题,还是我下的jxl.jar有问题
代码如下(网上down的):
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import jxl.Cell;
import jxl.CellType;
import jxl.Sheet;
import jxl.Workbook;
public class ReadExcel
{
public void readExcel()
{
try {
//构建Workbook对象, 只读Workbook对象
//直接从本地文件创建Workbook //从输入流创建Workbook
File file = new File("D:/cn/测试.xls");//"E:/temp/HodeOA_2005/Book1.xls");
InputStream is = new FileInputStream(file);
Workbook rwb = Workbook.getWorkbook(is);
//获得工作薄(Workbook)中工作表(Sheet)的个数
int sheetsc = rwb.getNumberOfSheets();
//返回工作薄(Workbook)中工作表(Sheet)对象数组
Sheet[] sheets = rwb.getSheets();
for (int i = 0; i<sheetsc;i++) {
System.out.println("-------------------------------");
System.out.println("【工作表Sheet"+i+"的信息】");
//获取获取工作表(Sheet)的名称
String sheetName = sheets[i].getName();
System.out.println("Sheet名称:" + sheetName);
//获取Sheet表中所包含的总列数
int rsColumns = sheets[i].getColumns();
System.out.println("Sheet总列数:" + rsColumns);
//获取Sheet表中所包含的总行数
int rsRows = sheets[i].getRows();
System.out.println("Sheet总行数:" + rsRows);
//逐行输出单元格信息
System.out.println("Sheet内容:" + rsRows);
for (int j = 0; j <rsColumns;j++){
System.out.print("行"+j+":");
//获取某一行的所有单元格,返回的是单元格对象数组,示例子:
Cell[] cell = sheets[i].getRow(j);
for (int k = 0; k <rsRows;k++){
//获取单元内容
String cellContent = cell[k].getContents();
//获取单元类型
CellType cellType= cell[k].getType();
System.out.print(" "+cellContent+"["+cellType+"] ");
}
System.out.println();
}
}
rwb.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void main(String[] args)
{
ReadExcel re = new ReadExcel();
re.readExcel();
}
} 展开
3个回答
展开全部
弱弱的问一句,你的"/"是不是应该是"\"...我记得环境变量好是这个方向的斜杠...
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用jar还得注册太麻烦,告诉你一个比较懒省事的方法,
1. 把你的jxl解压,把里面的,把里面的文件夹jxl拷到你的class文件夹根目录
2. 然后直接调用
比如:
你的class叫 d:\haha\my.class
然后直接把解出来的jxl放到d:\haha\
然后在my.java 中调用 import jxl.*;
就差不多了,你可以写一个空类,只import,看看会不会报错,不断调度直接到路径正确为止
1. 把你的jxl解压,把里面的,把里面的文件夹jxl拷到你的class文件夹根目录
2. 然后直接调用
比如:
你的class叫 d:\haha\my.class
然后直接把解出来的jxl放到d:\haha\
然后在my.java 中调用 import jxl.*;
就差不多了,你可以写一个空类,只import,看看会不会报错,不断调度直接到路径正确为止
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询