写入EXCEL的问题
我使用JXL向EXCEL模板中写入一些单元格的内容,代码如下:
Workbook wb = Workbook.getWorkbook(new File(strFileName));
ByteArrayOutputStream targetFile = new ByteArrayOutputStream();
WritableWorkbook wwb = Workbook.createWorkbook(targetFile, wb);
WritableSheet wws = wwb.getSheet(0);
for (int r=3;r <=26;r++)
{
for (int c=4;c <=7;c++)
{
WritableCell wc1 = wws.getWritableCell(c,r);
Label sex = (Label)wc1;
sex.setString( "a ");
}
}
但总是报NULL错误,请问这个写法那里不对么?谢谢!
------解决方案--------------------单步跟踪看是那行报错,那一行的某个对象就是null,或者捕获这个异常,就知道那一行了,null的问题最好解决的,慢慢来,
空指针就是说的你的对象在new的时候失败了或者根本没用new,从其他的地方没用取得对象,例如文件,如果路径不对找不到就无法实例化file对象
------解决方案--------------------for (int r=3;r <=26;r++)
{
for (int c=4;c <=7;c++)
{
WritableCell wc1 = wws.getWritableCell(c,r);
Label sex = (Label)wc1;
sex.setString( "a ");
}
}
应该是边界值计算错误. 看看是否超出最大值了.
------解决方案--------------------挨个打印调试呀
------解决方案--------------------c,r这个格子不是有效的
------解决方案--------------------最好是设置断点单步调试一下
------解决方案--------------------// 修改第6行6列的数据
Label label=new Label(5,5, "气喘吁吁 ");
ws.addCell(label);
------解决方案--------------------还不如先做一个有表头的Excel模板, 加入数据后自动就有了格式
------解决方案--------------------UP
------解决方案--------------------晕了,我又试了下,不放到循环里,单个写就可以,但同样的循环用NEW那种方法就可以,那就应该是循环取的行列没问题吧?那为什么用getWritableCell就不行了呢??
---我估计是你的有些列的模式不是完全相同,所以在循环里不行