За последние 24 часа нас посетили 22980 программистов и 1227 роботов. Сейчас ищут 736 программистов ...

Выгрузка в excel через PHPEXCEL

Тема в разделе "PHP для новичков", создана пользователем IGARRRRR, 7 июл 2019.

  1. IGARRRRR

    IGARRRRR Новичок

    С нами с:
    6 июл 2019
    Сообщения:
    21
    Симпатии:
    0
    Для определенного id из таблицы, где выгрузить данные одной строки получается, а вот выгрузить массив всех записей в таблице нет(

    следующий код php
    PHP:
    1. /** Include PHPExcel */
    2. require_once 'config.php';
    3.  
    4. require_once 'Classes/PHPExcel.php';
    5.  
    6.  
    7.  
    8. $objPHPExcel = new PHPEXcel();
    9.  
    10. $objPHPExcel->setActiveSheetIndex(0);
    11.  
    12. //$objPHPExcel->createSheet();
    13.  
    14. $active_sheet = $objPHPExcel->getActiveSheet();
    15.  
    16. //Ориентация, размер и поля
    17.  
    18. $active_sheet->getPageSetup()
    19.             ->setOrientation(PHPExcel_Worksheet_PageSetup::ORIENTATION_PORTRAIT);
    20.            
    21. $active_sheet->getPageSetup()
    22.             ->setPaperSize(PHPExcel_Worksheet_PageSetup::PAPERSIZE_A4);
    23.            
    24. $active_sheet->getPageMargins()->setTop(0);
    25. $active_sheet->getPageMargins()->setRight(0);
    26. $active_sheet->getPageMargins()->setLeft(0);
    27. $active_sheet->getPageMargins()->setBottom(0);
    28.  
    29. // Конец Ориентация, размер и поля
    30.  
    31. $active_sheet->setTitle("Люди"); // Имя листа
    32.  
    33. // Шрифт и размер
    34.  
    35. $objPHPExcel->getDefaultStyle()->getFont()->setName('Times New Roman');
    36. $objPHPExcel->getDefaultStyle()->getFont()->setSize('11');  
    37.  
    38.  
    39. // Ширина каждому столбцу
    40.  
    41.  
    42. $active_sheet->getColumnDimension('B')->setWidth(11);
    43. $active_sheet->getColumnDimension('C')->setWidth(11);
    44. $active_sheet->getColumnDimension('D')->setWidth(11);
    45. $active_sheet->getColumnDimension('E')->setWidth(11);
    46.  
    47.  
    48. // Длина каждой строки
    49.  
    50. $active_sheet->getRowDimension('2')->setRowHeight(29.40);
    51.  
    52.  
    53. // Надписи в ячейках 1
    54.  
    55.  
    56. $active_sheet->setCellValue('B2','Имя');
    57. $active_sheet->setCellValue('C2','Фамилия');
    58. $active_sheet->setCellValue('D2','Дата рождения');
    59. $active_sheet->setCellValue('E2','E-MAIL');
    60.  
    61.  
    62.  
    63. $active_sheet->getStyle('B2')->getAlignment()->setWrapText(true);
    64. $active_sheet->getStyle('C2')->getAlignment()->setWrapText(true);
    65. $active_sheet->getStyle('D2')->getAlignment()->setWrapText(true);
    66. $active_sheet->getStyle('E2')->getAlignment()->setWrapText(true);
    67.  
    68.  
    69. $result=mysql_query("SELECT people ");
    70.  
    71.        
    72. while ($row=mysql_fetch_array($result)) {
    73.  
    74.  
    75.    
    76. $active_sheet->setCellValue('B3:B1000',$next,$row['NAME']);
    77. $active_sheet->setCellValue('C3:C1000',$next,$row['SURNAME']);  
    78. $active_sheet->setCellValue('D3:D1000',$next,$row['DATE']);
    79. $active_sheet->setCellValue('E3:E1000',$next,$row['EMAIL']);    
    80. };
    81.  
    82.  
    83.  
    84. //массив для выравнивания по центру
    85.  
    86. $style_center = array(
    87. 'alignment' => array('horizontal' => PHPExcel_STYLE_ALIGNMENT::HORIZONTAL_CENTER));
    88.  
    89. //применение к ячейкам
    90. $active_sheet->getStyle('B2:S2')->applyFromArray($style_center);
    91.  
    92.  
    93.  
    94.  
    95. header("Content-Type:application/vnd.ms-excel");
    96. header("Content-Disposition:attachment;filename=people.xls");
    97.  
    98. $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
    99. $objWriter->save('php://output');
    100.  
    101. exit();

    Пишет что нельзя применить массив.
    Что не так?
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    Юный подаван. Вам с такими аргументами идти only во фриланс.
     
  3. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    эт чё?
     
  4. IGARRRRR

    IGARRRRR Новичок

    С нами с:
    6 июл 2019
    Сообщения:
    21
    Симпатии:
    0
    здесь не дописал * и from, вопрос закрыт, я уже сделал через массив.