За последние 24 часа нас посетили 5934 программиста и 554 робота. Сейчас ищут 255 программистов ...

PHPExcel + Oracle

Тема в разделе "Oracle Database", создана пользователем pr0.JeR, 31 авг 2017.

  1. pr0.JeR

    pr0.JeR Новичок

    С нами с:
    31 авг 2017
    Сообщения:
    1
    Симпатии:
    0
    Добрый день, борюсь третий день не могу понять в чем ошибка. Признаюсь честно, я далеко не профи в PHP и Oracle.
    PHP:
    1. <?php
    2. // подключаем все что нужно
    3. require_once 'config.php';
    4. require_once "Classes/PHPExcel.php";
    5.  
    6. $res = oci_parse ($conn, "select art.aid_artnr, art.artbez from globusm.art where art.aid_artnr in ('00000167000', '00004426011')");
    7. oci_execute ($res);
    8.  
    9. $objPHPExcel = new PHPExcel();
    10. $objPHPExcel->getProperties()->setCreator("Maarten Balliauw")
    11.             ->setLastModifiedBy("Maarten Balliauw")
    12.             ->setTitle("Office 2007 XLSX Test Document")
    13.             ->setSubject("Office 2007 XLSX Test Document")
    14.             ->setDescription("Test document for Office 2007 XLSX, generated using PHP classes.")
    15.             ->setKeywords("office 2007 openxml php")
    16.             ->setCategory("Test result file");
    17. $i = null;
    18. while ($rez = oci_fetch_array($res, OCI_ASSOC)){
    19.     foreach($rez as $val)
    20. {
    21.     $i++;
    22.     $objPHPExcel->setActiveSheetIndex(0)->setCellValue("A$i", $val['art.aid_artnr']);
    23.     $objPHPExcel->setActiveSheetIndex(0)->setCellValue("B$i", $val['art.artbez']);
    24. }
    25. }
    26.  
    27. $objPHPExcel->setActiveSheetIndex(0);
    28.     header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    29.     header('Content-Disposition: attachment;filename="test4.xlsx"');
    30.     header('Cache-Control: max-age=0');
    31.     header('Cache-Control: max-age=1');
    32. header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
    33.     header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
    34.     header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
    35.     header ('Pragma: public'); // HTTP/1.0
    36.     $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
    37.     $objWriter->save('php://output');
    38.  
    39. // print_r($rez);
    40. ?>

    Файл формируется в формате xlsx, но не открывается в Excel. открываю через блокнот вижу
    <br />
    <b>Warning</b>: Illegal string offset 'art.aid_artnr' in <b>/home/admin/web/testit.ru.globusgrp.org/public_html/xlsx/test4.php</b> on line <b>22</b><br />
    <br />
    <b>Warning</b>: Illegal string offset 'art.artbez' in <b>/home/admin/web/testit.ru.globusgrp.org/public_html/xlsx/test4.php</b> on line <b>23</b><br />
    <br />
    <b>Warning</b>: Illegal string offset 'art.aid_artnr' in <b>/home/admin/web/testit.ru.globusgrp.org/public_html/xlsx/test4.php</b> on line <b>22</b><br />
    <br />
    <b>Warning</b>: Illegal string offset 'art.artbez' in <b>/home/admin/web/testit.ru.globusgrp.org/public_html/xlsx/test4.php</b> on line <b>23</b><br />
    <br />
    <b>Warning</b>: art.artbez 'art.aid_artnr' in <b>/home/admin/web/testit.ru.globusgrp.org/public_html/xlsx/test4.php</b> on line <b>22</b><br />
    <br />
    <b>Warning</b>: Illegal string offset 'art.artbez' in <b>/home/admin/web/testit.ru.globusgrp.org/public_html/xlsx/test4.php</b> on line <b>23</b><br />
    <br />
    <b>Warning</b>: Illegal string offset 'art.aid_artnr' in <b>/home/admin/web/testit.ru.globusgrp.org/public_html/xlsx/test4.php</b> on line <b>22</b><br />
    <br />
    <b>Warning</b>: Illegal string offset 'art.artbez' in <b>/home/admin/web/testit.ru.globusgrp.org/public_html/xlsx/test4.php</b> on line <b>23</b><br />

     
  2. TeslaFeo

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

    С нами с:
    9 мар 2016
    Сообщения:
    2.611
    Симпатии:
    642
    Вот тут пример работы.
    И там написанно:
    P. S. В phpExel не работал но приходилось работать с phpWord от того же разработчика.
    Посему склонен согласиться с процитированным текстом.