我在尝试使用jxl包进行Excel操作的时候碰到了很奇怪的问题,请大家帮忙看看该怎么解决.
程序代码如下:
import java.io.File;
import java.util.*;
import jxl.*;
import jxl.write.*; public class myExcel{
Workbook workbook;
Sheet sheet;
public void write(){
try{
WritableWorkbook workbook = Workbook.createWorkbook(new File("myfile.xls"));
WritableSheet sheet = workbook.createSheet("午餐记录", 0);
Label label0 = new Label(0, 0, "时间");
sheet.addCell(label0);
Label label1 = new Label(1, 0, "姓名");
sheet.addCell(label1);
Label label2 = new Label(2, 0, "午餐标准");
sheet.addCell(label2);
Label label3 = new Label(3, 0, "实际费用");
sheet.addCell(label3);
jxl.write.DateFormat df = new jxl.write.DateFormat("yyyy-dd-MM hh:mm:ss");
jxl.write.WritableCellFormat wcfDF = new jxl.write.WritableCellFormat(df);
jxl.write.DateTime labelDTF = new jxl.write.DateTime(0, 1, new java.util.Date(), wcfDF);
sheet.addCell(labelDTF);
Label labelCFC = new Label(1, 1, "riverwind");
sheet.addCell(labelCFC);
jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");
WritableCellFormat wcfN = new WritableCellFormat(nf);
jxl.write.Number labelNF = new jxl.write.Number(2, 1, 13.1415926, wcfN);
sheet.addCell(labelNF);
jxl.write.Number labelNNF = new jxl.write.Number(3, 1, 10.50001, wcfN);
sheet.addCell(labelNNF);
workbook.write();
workbook.close(); }catch(Exception e){
System.out.println(e);
}
}
public String[] readLine(int row){
try{
int colnum = sheet.getColumns();
String[] rest = new String[colnum];
for(int i = 0; i < colnum; i++){
String sTemp = read(i,row);
if(sTemp!=null)
rest[i] = sTemp;
}
return rest;
}catch(Exception e){
System.out.println("readLine err:"+e);
workbook.close();
return null;
}
}
public String read(int col, int row){
try{
Cell a2 = sheet.getCell(col,row);
String rest = a2.getContents();
return rest;
}catch(Exception e){
System.out.println("read err:"+e);
workbook.close();
return null;
}
}
public static void main(String[] arges){
try{
myExcel me = new myExcel();
me.workbook = Workbook.getWorkbook(new File("myfile.xls"));
me.sheet = me.workbook.getSheet(0);
String[] ssTemp = me.readLine(1);
for(int i=0;i<ssTemp.length;i++)
System.out.println(ssTemp[i]);
me.write();
me.workbook.close();
}catch(Exception e){
System.out.println(e);
}
}
}我用javac编译java文件并没有报错,但是我用java -classpath . myExcel执行的时候却报错,内容如下
Exception in thread "main" java.lang.NoClassDefFoundError: jxl/write/WritableCell
我查看过jxl包了,在jxl/write目录下的确有一个叫WritableCell的类,所以应该不存在jxl包错误的问题.那到底是什么问题呢?
顺便问一下,把jxl包添加到classpath的方法是不是将jxl的路径放到环境变量里面就可以了?
程序代码如下:
import java.io.File;
import java.util.*;
import jxl.*;
import jxl.write.*; public class myExcel{
Workbook workbook;
Sheet sheet;
public void write(){
try{
WritableWorkbook workbook = Workbook.createWorkbook(new File("myfile.xls"));
WritableSheet sheet = workbook.createSheet("午餐记录", 0);
Label label0 = new Label(0, 0, "时间");
sheet.addCell(label0);
Label label1 = new Label(1, 0, "姓名");
sheet.addCell(label1);
Label label2 = new Label(2, 0, "午餐标准");
sheet.addCell(label2);
Label label3 = new Label(3, 0, "实际费用");
sheet.addCell(label3);
jxl.write.DateFormat df = new jxl.write.DateFormat("yyyy-dd-MM hh:mm:ss");
jxl.write.WritableCellFormat wcfDF = new jxl.write.WritableCellFormat(df);
jxl.write.DateTime labelDTF = new jxl.write.DateTime(0, 1, new java.util.Date(), wcfDF);
sheet.addCell(labelDTF);
Label labelCFC = new Label(1, 1, "riverwind");
sheet.addCell(labelCFC);
jxl.write.NumberFormat nf = new jxl.write.NumberFormat("#.##");
WritableCellFormat wcfN = new WritableCellFormat(nf);
jxl.write.Number labelNF = new jxl.write.Number(2, 1, 13.1415926, wcfN);
sheet.addCell(labelNF);
jxl.write.Number labelNNF = new jxl.write.Number(3, 1, 10.50001, wcfN);
sheet.addCell(labelNNF);
workbook.write();
workbook.close(); }catch(Exception e){
System.out.println(e);
}
}
public String[] readLine(int row){
try{
int colnum = sheet.getColumns();
String[] rest = new String[colnum];
for(int i = 0; i < colnum; i++){
String sTemp = read(i,row);
if(sTemp!=null)
rest[i] = sTemp;
}
return rest;
}catch(Exception e){
System.out.println("readLine err:"+e);
workbook.close();
return null;
}
}
public String read(int col, int row){
try{
Cell a2 = sheet.getCell(col,row);
String rest = a2.getContents();
return rest;
}catch(Exception e){
System.out.println("read err:"+e);
workbook.close();
return null;
}
}
public static void main(String[] arges){
try{
myExcel me = new myExcel();
me.workbook = Workbook.getWorkbook(new File("myfile.xls"));
me.sheet = me.workbook.getSheet(0);
String[] ssTemp = me.readLine(1);
for(int i=0;i<ssTemp.length;i++)
System.out.println(ssTemp[i]);
me.write();
me.workbook.close();
}catch(Exception e){
System.out.println(e);
}
}
}我用javac编译java文件并没有报错,但是我用java -classpath . myExcel执行的时候却报错,内容如下
Exception in thread "main" java.lang.NoClassDefFoundError: jxl/write/WritableCell
我查看过jxl包了,在jxl/write目录下的确有一个叫WritableCell的类,所以应该不存在jxl包错误的问题.那到底是什么问题呢?
顺便问一下,把jxl包添加到classpath的方法是不是将jxl的路径放到环境变量里面就可以了?
解决方案 »
- 有个小问题想请假一下大家
- JDialog中一个焦点设置的问题,请大家帮帮忙,先谢谢各位:)
- 高手:留步。请问java开发的Application中,像eclipse一样,不管是不是焦点,都能使用快捷键,实现原理机制是怎么怎么样的?谢谢。
- 用JAVA开发编译器,请大家推荐点资料和书籍!!
- java连SQL Server数据库
- java初学者,求关于Son s = new Son()这句话的理解!
- 怎样将printStackTrace函数的结果保存到String中呢?(在线等,马上结贴)
- 关于Socket和窗口之间的关系,大虾请进!!!!
- 匿名内部类问题,请进
- 操作jdbc查询到的结果
- servlet编译
- linux环境下运行Runtime.getRuntime().exec(cmd)的问题
2 或者调整命令行
java -classpath jxl.jar;. myExcel其中的jxl.jar 请指向正确的目录,比如
java -classpath d:/mylib/jxl.jar;. myExcel
java myExcel也许都能执行哦!!!!