jxl操作Excle时发生错误(莫名其妙的空指针异常)

qsvhj 2007-11-21 06:48:50
代码如下:
代码如下:
public abstract class CreateExcelSheet {
private String filePath;
protected WritableWorkbook wwb ;


public CreateExcelSheet(String filePath){
try {
System.out.println("filePath=="+filePath);
//Excel获得文件
Workbook wb = Workbook.getWorkbook( new File(filePath));
// 打开一个文件的副本,并且指定数据写回到原文件
WritableWorkbook wwb = Workbook.createWorkbook( new File(filePath),
wb);
System.out.println("wwb==="+wwb);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
protected void close(){
if(wwb!=null){
try {
wwb.write();
wwb.close(); // 关闭文件

} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
public abstract void createSheet();
}

public class CreateProductPriceTableXls extends CreateExcelSheet{
private String year ;
private String sheetName;
private int index;
private String filePath;
public CreateProductPriceTableXls(String filePath){
super(filePath);
}
public String getYear() {
return year;
}
public void setYear(String year) {
this.year = year;
}



public void createSheet() {

try{
// //Excel获得文件
// Workbook wb = Workbook.getWorkbook( new File("c://2.xls"));
// // 打开一个文件的副本,并且指定数据写回到原文件
// WritableWorkbook wwb = Workbook.createWorkbook( new File("c://2.xls"),
// wb);
Label label ;
System.out.println("aaaaaaaaaaaa");
System.out.println("sheetName=="+sheetName);
System.out.println("index==="+index);
WritableSheet sheet = wwb.createSheet(sheetName, index);
System.out.println("aabba");
sheet.mergeCells(0,0,5,0);
label = new Label(0,0,year+"ResourceOne 产品报价明细表(万元)");
sheet.addCell(label);
sheet.mergeCells(0, 1, 1, 1);
label = new Label(0,1,"产品名称");
sheet.addCell(label);
label = new Label(1,1,"组件名称");
sheet.addCell(label);
label = new Label(2,1,"单位");
sheet.addCell(label);
// wwb.write();
// wwb.close();
}catch(Exception e){
e.printStackTrace();
}finally{
close();
}

}
public String getSheetName() {
return sheetName;
}
public void setSheetName(String sheetName) {
this.sheetName = sheetName;
}
public int getIndex() {
return index;
}
public void setIndex(int index) {
this.index = index;
}
}

public class test {
public static void main(String[] args){
String filePath = "c://test6.xls";
// Util.createExcelFile(filePath);
CreateProductPriceTableXls cppt = new CreateProductPriceTableXls(filePath);
cppt.setIndex(0);
cppt.setSheetName("产品明细表");
cppt.setYear("2007");
cppt.createSheet();
}
用继承关系的来做的话执行test 类时 在createSheet类中WritableSheet sheet = wwb.createSheet(sheetName, index);
报空指针异常。下面是控制台输出
filePath==c://test6.xls
wwb===jxl.write.biff.WritableWorkbookImpl@148cc8c
java.lang.NullPointerException
at com.icss.product.resourceone.service.total.xls.CreateProductPriceTableXls.createSheet(CreateProductPriceTableXls.java:68)
at com.icss.product.resourceone.service.total.test.test.main(test.java:56)
aaaaaaaaaaaa
sheetName==产品明细表
index===0
想了半天也看不出来什么原因。

如果不用继承关系来做 用createSheet类中已经注释的代码来做 就没问题。
希望有朋友能简答下 非常感谢!!!
...全文
117 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
dreaming_java 2007-11-25
  • 打赏
  • 举报
回复
这代码乱七八糟~~~看不清的
qsvhj 2007-11-22
  • 打赏
  • 举报
回复
在createSheet类中WritableSheet sheet = wwb.createSheet(sheetName, index); 这里报了fatal Exception occurred Program will exit。哪位朋友帮帮忙啊

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧