PHP MySQL 到 PHPExcel 没有显示数据
PHP MySQL to PHPExcel is not showing data
/* 它可以工作但是当我打开 excel sheet 它不工作所以我删除了 else 语句中的 echo 和整个其他所以它工作但没有将数据打印到 sheet */
include_once 'PHPExcel.php';
$sheet = new PHPExcel();
$servername =
$username =
$password =
$dbname =
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT firstname, lastname, phonenumber FROM people where answer='true' LIMIT ".$start.",10 ";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
$activeSheet=$sheet->getActiveSheet();
while($row = $result->fetch_assoc()) {
$activeSheet->setCellValue('A1',' $row["firstname"]');
$activeSheet->setCellValue('B1','$row["lastname"]');
$activeSheet->setCellValue('C1','$row["phonenumber"]');
}
} else {
echo "0 results";
}
$conn->close();
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment; filename="report.xlsx"');
header('Cache-Control: max-age=0');
$objWriter=PHPExcel_IOFactory::createWriter($sheet,'Excel2007');
$objWriter->save('php://output');
exit;
两件事:
在此代码中
$activeSheet->setCellValue('A1',' $row["firstname"]');
语句,你不应该在 $row
部分使用任何引号,删除它们:
$activeSheet->setCellValue('A1', $row["firstname"]);
此外,您的 else
子句在 header 之前输出数据,导致发送的数据不正确。删除 else
。如果没有数据,您最终会得到一个空的 Excel 文件。
最后,您一遍又一遍地将所有数据放入相同的单元格中。使用变量递增到行号:
$i = 1;
while ($row = ...) {
...
$activeSheet->setCellValue('A'+$i, $row["firstname"]);
...
$i++;
}
/* 它可以工作但是当我打开 excel sheet 它不工作所以我删除了 else 语句中的 echo 和整个其他所以它工作但没有将数据打印到 sheet */
include_once 'PHPExcel.php';
$sheet = new PHPExcel();
$servername =
$username =
$password =
$dbname =
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT firstname, lastname, phonenumber FROM people where answer='true' LIMIT ".$start.",10 ";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
$activeSheet=$sheet->getActiveSheet();
while($row = $result->fetch_assoc()) {
$activeSheet->setCellValue('A1',' $row["firstname"]');
$activeSheet->setCellValue('B1','$row["lastname"]');
$activeSheet->setCellValue('C1','$row["phonenumber"]');
}
} else {
echo "0 results";
}
$conn->close();
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment; filename="report.xlsx"');
header('Cache-Control: max-age=0');
$objWriter=PHPExcel_IOFactory::createWriter($sheet,'Excel2007');
$objWriter->save('php://output');
exit;
两件事:
在此代码中
$activeSheet->setCellValue('A1',' $row["firstname"]');
语句,你不应该在 $row
部分使用任何引号,删除它们:
$activeSheet->setCellValue('A1', $row["firstname"]);
此外,您的 else
子句在 header 之前输出数据,导致发送的数据不正确。删除 else
。如果没有数据,您最终会得到一个空的 Excel 文件。
最后,您一遍又一遍地将所有数据放入相同的单元格中。使用变量递增到行号:
$i = 1;
while ($row = ...) {
...
$activeSheet->setCellValue('A'+$i, $row["firstname"]);
...
$i++;
}