我在尝试使用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的路径放到环境变量里面就可以了?