java - Request for resolving the error cannot convert from void to HSSFCell -


i trying read data excel file has formulas , writing data particular column of excel using below code, getting error message : cannot convert void hssfcell @ line 68.

 @test       public void samplecustnumformat() throws exception {       string [] myxl = getexceldata();      //write data excel.      //see has been read excel     system.out.println (" before loop " + myxl[1]);      (int i=0; i<xrows; i++){           system.out.println (" cust num " + myxl[i]);     }      fileoutputstream out = new fileoutputstream ("c:\\sce docs\\automation\\testexceldata.xls");     hssfworkbook mywb = new hssfworkbook();      hssfsheet sheet = mywb.getsheetat(0);       (int k=1; k<=sheet.getlastrownum(); k++)     {     hssfcell cell = sheet.getrow(1).createcell(2).setcellvalue(myxl[k]);     }     mywb.write(out);     out.close();  }     public  string [] getexceldata() throws exception{   string [] tabarray=null;              fileinputstream fi = new fileinputstream("c:\\sce docs\\automation\\customeraccount_information.xls");              hssfworkbook mywb = new hssfworkbook(fi);              hssfsheet mysheet = mywb.getsheetat(0);               formulaevaluator evaluator = mywb.getcreationhelper().createformulaevaluator();              xrows = mysheet.getlastrownum()+1;             tabarray = new string [xrows];               (int i=0;i<xrows;i++)              {              hssfrow row = mysheet.getrow(i);                  hssfcell cell = row.getcell(3);                  cellvalue cellvalue = evaluator.evaluate(cell);                 string value = evaluateformula(cellvalue);                 tabarray[i]=value;             }             return tabarray;              }      private string evaluateformula(cellvalue cellvalue) throws exception{  int type = cellvalue.getcelltype();  object result=null;  switch (type) {  case hssfcell.cell_type_boolean:     result = cellvalue.getbooleanvalue();      break;  case hssfcell.cell_type_numeric:      result = cellvalue.getnumbervalue();      break;  case hssfcell.cell_type_string:      result = cellvalue.getstringvalue();      break;  case hssfcell.cell_type_blank:      break;  case hssfcell.cell_type_error:      break;    // cell_type_formula never happen  case hssfcell.cell_type_formula:       break;   }  return result.tostring();  }             } 

these lines causing trouble:

for (int k=1; k<=sheet.getlastrownum(); k++) { hssfcell cell = sheet.getrow(1).createcell(2).setcellvalue(myxl[k]); } 

here getting first row out of sheet, creating cell @ index 2 , setting cell value... , assigning of cell! however, setcellvalue returns void (as seen in api). basically, need split lines 2 this:

for (int k=1; k<=sheet.getlastrownum(); k++) { hssfcell cell = sheet.getrow(1).createcell(2); cell.setcellvalue(myxl[k]); } 

doing way, you'll first create cell , assign cell. then, can set value.

edit: alternatively, can (as pointed out sankumarsingh) not assign value , in 1 line this:

for (int k=1; k<=sheet.getlastrownum(); k++) { sheet.getrow(1).createcell(2).setcellvalue(myxl[k]); } 

Comments

Popular posts from this blog

c# - Send Image in Json : 400 Bad request -

jquery - Fancybox - apply a function to several elements -

An easy way to program an Android keyboard layout app -