php - PHPexcel大数据从oci_fetch_array打印错误

标签 php excel oracle phpexcel oracle-call-interface

下午好!

拜托,我的代码需要帮助。我有一个查询读取大量数据并使用 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

如何打印列中的数据行?

谢谢!

最佳答案

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 文件

关于php - PHPexcel大数据从oci_fetch_array打印错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37493199/

相关文章:

php - 使用循环为 WHERE 子句创建查询

excel - 如何在Excel VBA中修复 "Run-time error ' 380'?

mysql - SQL 中的嵌套 IF 语句

c - OCIDate 在进入 Oracle 的过程中被破坏

sql - Oracle SQL REGEXP_REPLACE - 除指定字符串之外的所有内容

php - 寻找一个 PHP 类来解析 access.log 文件

php - 从mysql存储过程获取输出值到php?

php - 使php文件对外界隐藏

.net - 将数据写入 Excel 2007/PowerShell 中的单元格

SQL 对具有类别总计的不同行的非不同权重求和