下午好!
拜托,我的代码需要帮助。我有一个查询读取大量数据并使用 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
、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 行开始。 在每 $row 之后重置列
有更简单的方法可以做到这一点,但除非您能掌握单元格地址的概念,否则您将很难处理 Excel 文件
关于php - PHPexcel大数据从oci_fetch_array打印错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37493199/