Ich bin neu in Java und ich versuche, eine Excel-Datei zu lesen. Gläser enthalten: 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
Null-Zeiger-Ausnahme beim Lesen einer Excel-Datei in Java
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();
}
}
Dies ist mein Code. Ich versuche, die Zellen der Excel-Datei in ein 2D-Array zu lesen, das ich später in meiner JSP-Datei verwenden möchte. Wenn ich es laufen zeigt es die folgenden Fehler:
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)
Meine Excel-Datei so etwas wie dieses:
SPLD_DeviceID_Mfg SPLD_DeviceID_ModelNo SPLD_DeviceID_SrNo
4
apl 3
Einige Felder in meiner Excel-Datei leer sind. Ich muss den leeren Wert in meinem Array für die spätere Verwendung speichern. Ich überprüfe nur die Typen für Integer und String. Was tun bei Null?
Mögliche Duplikat [? Was für eine Nullpointer ist, und wie kann ich es beheben] (http://stackoverflow.com/questions/218384/what-is-a- nullpointerexception-and-how-do-i-fix-it) – Fildor
gibt es irgendeine Bedingung für Nullwert in Zelle – yash
List komplette Stacktrace. –