来自oci_fetch_array的PHPexcel大数据错误的打印
下午好!
请,我需要帮助我的代码。 我有一个查询读取大量的数据,并与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的第一个数据,我需要所有的。
数据是这样的:
如何在列中打印数据行?
谢谢!
MS Excel单元格地址包含列ID和行ID。 列ID是字母( A
, B
, C
等); 行ID是数字( 1
等):所以像B3
这样的单元格地址是B
列和第3
行。 (正如你可以看到你的照片)
你正在使用一个variables$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文件时会遇到困难