PHPSpreadhseet: Не получается выводить данные при экспорте данных из моей базы данных, даже ни одной ошибки? - PullRequest
0 голосов
/ 24 февраля 2020

Я изменил свой код с PHPexcel на PHPSpreadsheet , все данные являются динамическими c и поступают с Mysql, но мои немногие данные не экспортируются , даже если я не выдается никакой ошибки и данные отображаются, пока я print_r ($ name 1 ) переменная, любая помощь или предложения приветствуются -

Вот мой Преобразованный код -

    $inn_table = "";     

for($i=0;$i<count($labels);$i++) {

        if($result['qualification']['dd1']!="") {

            for($j=0;$j<count($dd1);$j++) {
                $temp = explode(">",$dd1[$j]);    


                if($temp[0]==$labels[$i]) {
                    $name = explode(">",$dd1[$j]);
                    echo '<pre>';
                    print_r($name[1]);
                     $inn_table .= '<td>'.$name[1].'</td>'; 
                }
            }
        }

         echo $inn_table; 

Вывод Print_r -

Да Категория A Другое TAS 6

Как мне экспортировать его в Excel с справка PHPSpreadheet

простой пример -

Проверка меток

Он проверяет метки, как вы можете видеть в моем коде, и помещает данные в та же самая ячейка столбца метки, которую вы видите на картинке, например, если она соответствует типу носителя, она печатается в строке типа носителя, как вы можете видеть на рисунке

1 Ответ

0 голосов
/ 24 февраля 2020

Это пример, который вы можете редактировать (в этом примере я использую composer для установки таблицы PHPS):

require 'DB.php';
require 'vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx as xlsx; // Instead PHPExcel_Writer_Excel2007
use PhpOffice\PhpSpreadsheet\Worksheet\Drawing as drawing; // Instead PHPExcel_Worksheet_Drawing
use PhpOffice\PhpSpreadsheet\IOFactory as io_factory; // Instead PHPExcel_IOFactory


$query = 'SELECT * FROM ? WHERE ?';
$result = $mysqli->query($query);

$objPHPExcel    =   new Spreadsheet();


$objPHPExcel->setActiveSheetIndex(0);
//NAME WORKSHEET
$objPHPExcel->getActiveSheet()->setTitle("Test");


$objPHPExcel->getActiveSheet()
    ->getPageSetup()
    ->setOrientation(PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::ORIENTATION_LANDSCAPE);

$objPHPExcel->getActiveSheet()
    ->getPageSetup()
    ->setPaperSize(PhpOffice\PhpSpreadsheet\Worksheet\PageSetup::PAPERSIZE_A4);

$objPHPExcel->getActiveSheet()->SetCellValue('A12', 'ROW1');
$objPHPExcel->getActiveSheet()->SetCellValue('B12', 'ROW2');

$rowCount   =   1;

}
while($row  =   $result->fetch_assoc()){


      //BORDER  
      $objPHPExcel->getActiveSheet()->getStyle('A'.$rowCount)->applyFromArray($styleArray);
      $objPHPExcel->getActiveSheet()->getStyle('B'.$rowCount)->applyFromArray($styleArray);


      //VALUE
      $objPHPExcel->getActiveSheet()->SetCellValue('A'.$rowCount, $row['row1']);
      $objPHPExcel->getActiveSheet()->SetCellValue('B'.$rowCount, $row['row2']);


    $rowCount++; //ADD COUNT 
}

$objWriter = io_factory::createWriter($objPHPExcel, 'Xlsx');

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/force-download");
header("Content-Type: application/octet-stream");
header("Content-Type: application/download");;
header("Content-Disposition: attachment;filename=EXAMPLE.xlsx");
header("Content-Transfer-Encoding: binary ");

ob_end_clean();
ob_start();
$objWriter->save('php://output');
exit;   

Информация о базе данных и относительный запрос - только пример, не забудьте подготовить stmt

...