来自 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 是字母(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 文件
下午好!
拜托,我的代码需要帮助。我有一个读取大量数据并使用 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 文件