Я получаю ошибку ниже в моем коде - java.lang.NullPointerException в CopyOfPMCTest.main (CopyOfPMCTest.java:91)
Код в строке 91 - sheet1.getRow (rowNo) .createCell (0).setCellValue (vNo);
Я отлаживаю код, и объект sheet1 имеет значение null, что вызывает ошибку.
// Reading of Excel sheet
FileInputStream fis = new FileInputStream("C:\\Jayesh\\PMC\\PMCAutomation\\PMCDemo\\TestData\\TestSheet.xlsx");
XSSFWorkbook workbook = new XSSFWorkbook(fis);
XSSFSheet sheet = workbook.getSheetAt(0);// This is for reading V numbers in excelsheet -Sheet1
XSSFSheet sheet1 = workbook.getSheetAt(1);// This is for writing the result in same excelsheet - Sheet2
XSSFRow row;
int initialRow=0;
for (int i = 1; i <= sheet.getLastRowNum(); i++) {
row = (XSSFRow) sheet.getRow(i);
int vNo = (int) row.getCell(0).getNumericCellValue();
// Owner Details
String ownerName = "Jayesh B";
String ownerAddress = "Add1, Add2, India";
List<Object> Measurement = new ArrayList<Object>();
Measurement.add(1);
Measurement.add("Test");
Measurement.add(1);
Measurement.add("Test");
Measurement.add(1);
Measurement.add("Test");
Measurement.add(1);
Measurement.add("Test");
Measurement.add(1);
Measurement.add("Test");
Measurement.add(1);
Measurement.add("Test");
Measurement.add(1);
Measurement.add("Test");
Measurement.add(1);
Measurement.add("Test");
Measurement.add(1);
Measurement.add("Test");
Measurement.add(1);
Measurement.add("Test");
Measurement.add(1);
Measurement.add("Test");
Measurement.add(1);
Measurement.add("Test");
// Below code is to write the VNo, Owner Name, OwnerAddress, and Measurement details
int iterator = 0;
int totalRows = 2;
System.out.println("Total Rows: "+totalRows);
int totalCols = 12;
System.out.println("Total Cols: "+totalCols);
int colNo;
for (int rowNo = initialRow+1; rowNo <= initialRow+totalRows; rowNo++) {
sheet1.getRow(rowNo).createCell(0).setCellValue(vNo);
sheet1.getRow(rowNo).createCell(1).setCellValue(ownerName);
sheet1.getRow(rowNo).createCell(2).setCellValue(ownerAddress);
for (colNo = 3; colNo <= totalCols + 1; colNo++) {
sheet1.getRow(rowNo).createCell(colNo)
.setCellValue(Measurement.get(iterator).toString());
iterator = iterator + 1;
}
iterator = iterator + 1;
}
initialRow=initialRow+totalRows;
}
fis.close();
FileOutputStream fos = new FileOutputStream("C:\\Jayesh\\PMC\\PMCAutomation\\PMCDemo\\TestData\\TestSheet.xlsx");
workbook.write(fos);
fos.close();
}
Я ожидаю, что код прочитает vNo с первого листа, а затем запишетвместе с владельцем, именем и адресом измерения на втором листе того же листа.