Неправильная печать в PHPExcel больших данных из массива выборки oci


Добрый день!

Пожалуйста, мне нужна помощь с моим кодом. У меня есть запрос, который считывает большой объем данных и печатает его с помощью oci_fetch_array, но мне нужно экспортировать его в электронную таблицу Excel.

Я использую код для PHPExcel 01simple-download-xls и заполняю данные:

$result = oci_parse($connect, $query);

oci_execute($result);

while (($row = oci_fetch_array($result, OCI_BOTH)) != false){
$columna = 0;


        foreach ($row as $key => $valor) {

            $objPHPExcel->getActiveSheet()->setCellValue('A' . $columna,  $valor);


           $columna++; 

        }


}

oci_free_statement($result);
oci_close($connect);

Но в электронной таблице показаны только первые данные моего bd, и мне нужны все они.

enter image description here

И данные выглядят так:
enter image description here

Как я могу распечатать строку данных в столбцах?

Спасибо!

Author: Stephen Leppik, 2016-05-28

1 answers

Адрес ячейки MS Excel содержит идентификатор столбца и идентификатор строки. Идентификаторы столбцов - это буквы (A, B, C, и т.д.); Идентификаторы строк - это числа (1, 2, 3, и т.д.): таким образом, адрес ячейки, такой как B3, является столбцом B и строкой 3. (Как вы можете видеть на своей фотографии)

Вы используете переменную $columna, объединяя ее с A для определения адреса ячейки, такого как A1, и увеличиваете его для каждого элемента, поэтому ваши адреса ячеек A1,A2, A3 и т. Д.... всегда столбец A. Так что все ваши данные будут в этом первом столбце. (Вы также начинаете со строки 0, которой не существует.

Измените свой код, чтобы работать как со строкой, так и со столбцом, указав адрес ячейки:

$rowNumber = 1;
while (($row = oci_fetch_array($result, OCI_BOTH)) != false){
    $columna = 'A';
    foreach ($row as $key => $valor) {
        $objPHPExcel->getActiveSheet()->setCellValue($columna . $rowNumber,  $valor);
        $columna++; 
    }
    $rowNumber++;
}

Начните со строки 1, а не со строки 0. Сбросить столбец после каждой строки $

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

 2
Author: Mark Baker, 2016-05-27 23:32:02