php - One row to many is added PHPExcel -
i have script inputs form data on row in excel file. each time form sent new data appended same excel file.
the problem new data appended 2 rows. blank row inserted between each row.
here code. $data contains $_post data.
function generateexcel($data) { $filename = dirname(__file__).'/myexcelfile.xlsx'; // shortened $columns = array( 'fieldname1' => 'column 1', 'fieldname2' => 'column 2', ); // check if file exist if(file_exists($filename)) { // load existing excel file $objphpexcel = phpexcel_iofactory::load($filename); } else { // create new phpexcel object $objphpexcel = new phpexcel(); $objworksheet = $objphpexcel->getactivesheet(); $objworksheet->insertnewrowbefore(1, 1); // set column names $columnindex = 0; foreach($columns $columnname) { $objworksheet->setcellvaluebycolumnandrow($columnindex, 1, $columnname); $columnindex++; } } // sheet , highest row $objworksheet = $objphpexcel->getactivesheet(); $numberofrows = $objphpexcel->getactivesheet()->gethighestrow(); // insert new row after highest row $objworksheet->insertnewrowbefore($numberofrows + 1, 1); // highest row again (should 1 more since last time) // $numberofrows2 = $objphpexcel->getactivesheet()->gethighestrow(); // insert data each column $columnindex = 0; foreach($columns $fieldname => $columnname) { $fieldvalue = $data[$fieldname]; $objworksheet->setcellvaluebycolumnandrow($columnindex, $numberofrows + 1, $fieldvalue); $columnindex++; } // save excel 2007 file $objwriter = phpexcel_iofactory::createwriter($objphpexcel, 'excel2007'); $objwriter->save($filename); }
this used: https://stackoverflow.com/a/12417477
i guess that, can try this
$objworksheet->setcellvaluebycolumnandrow($columnindex,"",$columnname);
instead of
$objworksheet->setcellvaluebycolumnandrow($columnindex, 1, $columnname);
Comments
Post a Comment