2014-09-24 3 views
0

Я пытаюсь обновить файл .xlsx в java с помощью Apache POI.Apache POI update excell Java

Это мой код:

import java.io.File; 
import java.io.FileInputStream; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import org.apache.poi.xssf.usermodel.XSSFCell; 
import org.apache.poi.xssf.usermodel.XSSFRow; 
import org.apache.poi.xssf.usermodel.XSSFSheet; 
import org.apache.poi.xssf.usermodel.XSSFWorkbook; 

public class updateResults { 


    void updateResults(String path) throws FileNotFoundException, IOException{ 
    FileInputStream fis = new FileInputStream(new File(path)); 
    XSSFWorkbook workbook = new XSSFWorkbook (fis); 
    XSSFSheet sheet = workbook.getSheetAt(0); 
    XSSFRow row1 = sheet.getRow(1); 
    XSSFCell cell1 = row1.getCell(1); 
    cell1.setCellValue("Mahesh"); 
    XSSFRow row2 = sheet.getRow(2); 
    XSSFCell cell2 = row2.getCell(1); 
    cell2.setCellValue("Ramesh"); 
    fis.close(); 
    FileOutputStream fos =new FileOutputStream(new File(path)); 
    workbook.write(fos); 
    fos.close(); 
    System.out.println("Done"); 

} 
} 

Проблема в том, я получаю исключение нулевого указателя в строке «32», которая XSSFCell cell2 = row2.getCell(1);

Любой ahve любой идеи, почему это происходит?

+0

Сколько строк имеет ваш лист? – Jens

+1

Поместите его в цикл с лимитом как количество строк, которое вы ожидаете, и выполните нулевые проверки для строк и ячейки перед вызовом getCell или getValue соответственно. – Avik

+0

Спасибо :) самый полезный вопрос когда-либо :) @Jens – BetterNerf

ответ

0

NullPointerException возникает, когда приложение пытается использовать ссылку на объект, имеющую значение null. К ним относятся: Вызов метода экземпляра объекта, который ссылается на null reference. Может быть, у вас нет значения в вашей строке 2, так что nullpointerexception.

+0

Спасибо. У меня другая проблема. Если я изменяю ширину или высоту ячеек или строк вручную через excell, а затем пытаюсь отправить обновления, я получаю исключение «Исключение в потоке» AWT-EventQueue-0 «java.lang.NullPointerException» – BetterNerf

+1

Новая проблема ... Новый вопрос дорогой .. . :) – Sankumarsingh