Неправильная печать в 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, и мне нужны все они.
Как я могу распечатать строку данных в столбцах?
Спасибо!
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