저는 Java를 처음 사용하며 Excel 파일을 읽으려고합니다. 항아리 포함 : log4j-1.2.17
는, poi-3.9
는, poi-ooxml-3.5-beta5
는 poi-ooxml-3.7-20101029
, poi-ooxml-schemas-3.7-beta1
, xmlbeans-2.5.0
, xmlbeans-xmlpublic-2.4.0
자바에서 엑셀 파일을 읽는 동안 널 포인터 예외가 발생했습니다.
package net.codejava.excel;
import java.io.*;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
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 SPACE_CreateThroughExcel{
public static void main(String[] args) throws Exception{
SPACE_CreateThroughExcel create = new SPACE_CreateThroughExcel();
create.read();
}
public void read(){
try {
String excelFilePath = "C:/Users/Rachana/workspace/SPACEOM/WebContent/Data/Data.xlsx";
InputStream is = new FileInputStream(new File(excelFilePath));
XSSFWorkbook wb = (XSSFWorkbook) WorkbookFactory.create(is);
XSSFSheet ws = wb.getSheetAt(0);
int rowNum = ws.getLastRowNum() + 1;
System.out.println(rowNum);
int colNum = ws.getRow(0).getLastCellNum();
String[][] data = new String[rowNum][colNum];
for(int i=0; i< rowNum; i++){
XSSFRow row = ws.getRow(i);
for(int j=0;j<colNum;j++){
XSSFCell cell = row.getCell(j);
String value = cellToString(cell);
data[i][j] = value;
System.out.println(value);
}
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static String cellToString(XSSFCell cell){
int type;
Object result;
type = cell.getCellType();
switch(type){
case 0:
result = cell.getNumericCellValue();
break;
case 1:
result = cell.getStringCellValue();
break;
default:
throw new RuntimeException("No support");
}
return result.toString();
}
}
이 내 코드입니다. 나는 나중에 내 JSP 파일에서 사용하고자하는 2D 배열로 Excel 파일의 셀을 읽으려고합니다. 내가 그것을 실행하면 다음과 같은 오류를 보여줍니다
SPLD_DeviceID_Mfg SPLD_DeviceID_ModelNo SPLD_DeviceID_SrNo
4
apl 3
내 엑셀 파일의 일부 필드
가 비어 :at net.codejava.excel.SPACE_CreateThroughExcel.cellToString(SPACE_CreateThroughExcel.java:46)
at net.codejava.excel.SPACE_CreateThroughExcel.read(SPACE_CreateThroughExcel.java:30)
at net.codejava.excel.SPACE_CreateThroughExcel.main(SPACE_CreateThroughExcel.java:64)
내 엑셀 파일은 다음과 같은 것입니다. 나중의 사용을 위해 배열에 빈 값을 저장해야합니다. 정수 및 문자열 형식 만 검사합니다. null의 경우 어떻게해야합니까?
[? NullPointerException이 무엇인가, 나는 그것을 해결 어떻게] (의 가능한 중복 http://stackoverflow.com/questions/218384/what-is-a- nullpointerexception-and-how-do-i-fix-it) – Fildor
셀에 null 값이있는 조건이 있습니까 – yash
List complete stacktrace. –