Исключение нулевого указателя при создании файла excel на Java с Apache poi на линии rowHeading.getCell (i).setCellStyle (stylerowHeading); [дублировать]

На этот вопрос уже есть ответ здесь:

Я собираюсь через POI Excel учебник на вас трубки.
при выполнении следующего кода я получаю исключение NullPointer.
Plz предлагают ans.
Thanku.

package main;

import entities.*;
import dao.*;
import java.util.*;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.hssf.util.*;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.*;
import java.io.*;


public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        try{
            ProductModel pmodel = new ProductModel();
            HSSFWorkbook workbook= new HSSFWorkbook();
            HSSFSheet sheet=workbook.createSheet("List Products");
            //create heading
            Row rowHeading = sheet.createRow(0);
            rowHeading.createCell(1).setCellValue("Id");
            rowHeading.createCell(2).setCellValue("Name");
            rowHeading.createCell(3).setCellValue("Creation Date");
            rowHeading.createCell(4).setCellValue("Price");
            rowHeading.createCell(5).setCellValue("Sub Total");

            for(int i=0;i<6;i++)
            {
                CellStyle stylerowHeading= workbook.createCellStyle();
                Font font = workbook.createFont();
                font.setBold(true);
                font.setFontName(HSSFFont.FONT_ARIAL);
                font.setFontHeightInPoints((short)11);
                stylerowHeading.setFont(font);
                stylerowHeading.setVerticalAlignment(CellStyle.ALIGN_CENTER);
                rowHeading.getCell(i).setCellStyle(stylerowHeading);

            }

            //save to excel
            FileOutputStream out =  
                    new FileOutputStream("D:AVIATEexcellistproducts.xls");
            workbook.write(out);
            out.close();
            System.out.println("Excel written successfully........");

        }catch(Exception e){
            System.out.println("exception");
            e.printStackTrace();
        }
    }

}

1 ответ

  1. Для первой итерации цикла for вызываетсяgetCell(0), но не создается ячейка с номером 0. Первый из rowHeading.createCell(1)них .