作者:乔山办公网日期:
返回目录:excel表格制作
是这样的,poi在获得Cell前先判断Row是否为null,获得Row前先判断Sheet是否为null,如果你的excel整个行Row都没有值,在你e799bee5baa6e79fa5e98193e59b9ee7ad94339获得Cell时就会报错,同理,如果你的sheet不存在,在你获得Row时就会报错,这是改正后得代码:
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import java.io.FileInputStream;
import java.io.IOException;
public class PoiTest {
static public void main(String[] args) throws Exception {
try {
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream("d:/test.xls"));
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheet("sheet1");
if(sheet==null){//如果不存在sheet1,建立sheet1
sheet=wb.createSheet("sheet1");
}
HSSFRow row = sheet.getRow(0); //获得行
if(row==null){//如果行不存在,建立行
row=sheet.createRow(0);
}
HSSFCell cell = row.getCell((short) 0); //列
if(cell==null){
System.out.println("null");
}
else{
System.out.println(" not null");
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
解决方法:可以在“poi”操作“Excel”时读取单元格(Cell),单元格中有内容则可以读取出单元格中的值了。
这里是按 第几列 第几行 来算的,先列后行,下标从0开始。
你看下你取的第四列是不是本来就没有值
我也不太会用他,你可以试试.setCellValue(new HSSFRichTextString("12344"));