来自 oci_fetch_array 的 PHPexcel 大数据打印错误

Wrong print in PHPexcel large data from oci_fetch_array

下午好!

拜托,我的代码需要帮助。我有一个读取大量数据并使用 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 是字母(ABC 等);行 ID 是数字(123 等):因此像 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 行。 在每个 $row

之后重置列

有更简单的方法可以做到这一点,但除非您能掌握单元格地址的概念,否则您将很难处理 Excel 文件