नमस्ते हम अपने जावा कार्यक्रम में अपाचे poi का उपयोग कर xls और xlsx फ़ाइल पढ़ रहे हैं, समस्या यह है कि हम दो कारणों से शून्य सूचक अपवाद प्राप्त कर रहे हैं .. पहला 1 खाली कक्ष है जिसे हम पहले से ही खाली कर चुके हैं हल किया गया और दूसरा एक ऐसा है जब हम एक निश्चित कॉलम चुन रहे हैं जिसमें कोई रिकॉर्ड नहीं है ..शून्य सूचक अपवाद apache poi
हमारे प्रोग्राम एक्सेल फ़ाइल के पथ के लिए पूछते हैं तो फ़ाइल की विशिष्ट शीट संख्या और विशिष्ट कॉलम संख्या चादर आप पढ़ना चाहते हैं यहाँ .. xls फ़ाइल को पढ़ने के लिए कोड
public void readXLSFile()throws IOException{
InputStream ExcelFileToRead = new FileInputStream(path);
HSSFWorkbook wb = new HSSFWorkbook(ExcelFileToRead);
HSSFSheet sheet=wb.getSheetAt(sheetname);
HSSFRow row;
HSSFCell cell;
Iterator rows = sheet.rowIterator();
list1.clear();
while (rows.hasNext())
{
headers.clear();
row=(HSSFRow) rows.next();
// Iterator cells = row.cellIterator();
headers.add("contents");
cnt = cnt+1;
cell = row.getCell(cols);
if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING)
{
//System.out.println(cell.getStringCellValue()+"(string)");
list.add(cell.getStringCellValue());
d.add(cell.getStringCellValue());
list1.add(new KeyValuePair(cell.getStringCellValue(),""));
}
else if(cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC)
{
//System.out.println(cell.getNumericCellValue()+"(numeric)");
double num = cell.getNumericCellValue();
String num2 = String.valueOf(num);
list.add(num2);
d.add(num2);
list1.add(new KeyValuePair(num2,""));
}
else if(cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN)
{
//System.out.println(cell.getBooleanCellValue()+"(boolean)");
String bool = String.valueOf(cell.getBooleanCellValue());
list.add(bool);
d.add(bool);
list1.add(new KeyValuePair(bool,""));
}
else
{
//U Can Handel Boolean, Formula, Errors
}
//System.out.println();
}
arrey = list.toArray(new String[list.size()]);
data.add(d);
// System.out.println(data);
model = new DefaultTableModel();
table_1.setModel(model);
table_1.setModel(model);
model.setColumnIdentifiers(new String[] {"row","contents"});
for (KeyValuePair p : list1){
int nor=table_1.getRowCount();
int n2 = nor +1;
n1 = Integer.toString(n2);
// model.addColumn(new String [] {n1});
model.addRow(new String[] {n1,p.key, p.value});
}
// model.addColumn(new String[] {n1});
}
चर SHEETNAME एक्सेल फाइल की चादर संख्या के लिए है बेर
HSSFSheet sheet=wb.getSheetAt(sheetname);
और चर कॉलम विशिष्ट स्तंभ के लिए है आप
cell = row.getCell(cols);
पढ़ने के लिए हम हर चादर के पहले कॉलम और भी दूसरी चादर के दूसरे स्तंभ पढ़ सकते हैं चाहते हैं, लेकिन जब मैं संपादित अपने परीक्षण कार्यक्रम अब फाइल केवल हर शीट .. त्रुटि के पहले कॉलम पढ़ सकते है नल पॉइंटर exception..wish आप
क्या आप अपवाद के स्टैक ट्रेस को प्रिंट कर सकते हैं। अगर हम जान सकें कि कौन सा कथन वास्तव में अपवाद पैदा कर रहा है तो मैं मदद करूंगा। –
यह थोड़ा उलझन में है ... आप 'शीटनाम' का उपयोग कर रहे हैं जो 'HSSFSheet शीट = wb.getSheetAt (शीटनाम) के साथ एक स्ट्रिंग प्रतीत होता है; '। 'getSheetAt' हमेशा शीट इंडेक्स के लिए संख्यात्मक मान स्वीकार कर रहा है। कृपया पुष्टि करें। – Sankumarsingh
यह एकमात्र त्रुटि है जो मुझे java.lang.NullPointerException रास्ते में, मैं ऊपर वर्णित विधि को घेरने के तरीके से घिरा हुआ हूं .. –