помогите дельным кодом прощу помощи!!!! полюбому комуто тоже нужно будет!!! Код (PHP): <?php require_once 'Db_ext.php'; require_once 'PHPExcel.php'; $db = Db_ext::getInstance(); $res = $db->query('SELECT (id,name,age) FROM myadmin.users'); $result = $res->fetchAll(PDO::FETCH_ASSOC); $objPHPExcel = new PHPExcel(); $num = (count($result)-1); $row_count=1; foreach($result as $data){ $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, $row_count, $data['id']); $objPHPExcel->getActiveSheet()->getStyleByColumnAndRow(0, $row_count)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(1, $row_count, $data['name']); $objPHPExcel->getActiveSheet()->getStyleByColumnAndRow(1, $row_count)->getAlignment()->setWrapText(true); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(2, $row_count, $data['age']); $objPHPExcel->getActiveSheet()->getStyleByColumnAndRow(2, $row_count)->getAlignment()->setWrapText(true); $row_count++; } $objPHPExcel->getActiveSheet()->setTitle('My results'); // Set active sheet index to the first sheet, so Excel opens this as the first sheet $objPHPExcel->setActiveSheetIndex(0); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); $filename= 'myresults-'.'1'.'.xlsx'; $objWriter->save($filename); вот код!!!! он работает!!! ну есть мелкие нюансы! 1) НАДО что бы первой строкой вывордились не даные а id name age 2) а есле я сделаю другой запрос id name age email adress 1 решил!!! а вот что со вторымума не приложу Код (PHP): foreach($result as $data){ if($row_count == 1){ $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, $row_count, 'id'); $objPHPExcel->getActiveSheet()->getStyleByColumnAndRow(0, $row_count)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(1, $row_count, 'name'); $objPHPExcel->getActiveSheet()->getStyleByColumnAndRow(1, $row_count)->getAlignment()->setWrapText(true); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(2, $row_count, 'age'); $objPHPExcel->getActiveSheet()->getStyleByColumnAndRow(2, $row_count)->getAlignment()->setWrapText(true); $row_count++; } $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(0, $row_count, $data['id']); $objPHPExcel->getActiveSheet()->getStyleByColumnAndRow(2, $row_count)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(1, $row_count, $data['name']); $objPHPExcel->getActiveSheet()->getStyleByColumnAndRow(2, $row_count)->getAlignment()->setWrapText(true); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(2, $row_count, $data['age']); $objPHPExcel->getActiveSheet()->getStyleByColumnAndRow(2, $row_count)->getAlignment()->setWrapText(true); $row_count++; }
1 проще всего делается как $result = array_merge(array('id'=>'id', 'name'=>'name', 'age'=>'age'), $result) перед выводом А второе - да точно так же $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(3, $row_count, $data['email']); $objPHPExcel->getActiveSheet()->setCellValueByColumnAndRow(4, $row_count, $data['address']); А вот этот setWrapText лучше сразу ставить для всей таблицы, чтобы не валандаться с каждой ячейкой.