gpt4 book ai didi

PHP到Excel : fill the output Excel file with a loop

转载 作者:行者123 更新时间:2023-12-04 20:12:57 24 4
gpt4 key购买 nike

我想创建一个 Excel 文件(使用 PhpExcel)并用 MySQL 查询的内容填充它。

我只有一列,所以结果将如下所示:

$sheet->setCellValueByColumnAndRow(0, $i, $content)

所以我必须在我的查询中循环并创建一个计数器来填充与列 的每个项目对应的每一行铂我的内容。
所以目标是得到以下结果:
1 AX001
2 AX003
3 AX012

代码是一个:
$column = 1;
while($data = mysql_fetch_assoc($result)) {

$workbook = new PHPExcel;
$sheet = $workbook->getActiveSheet();
$sheet->setCellValueByColumnAndRow(0, $column, $data['ptlum']);
//echo($column. " " . $data['ptlum']. " ");
$column = $column + 1; //or $column++;

问题是我的Excel文件是空的..
如果我在 setCellValueByColumnAndRow 行中输入一个数字而不是 $column,它就可以工作。但是变量不起作用..
另一方面,如果我输入“$column = 1;”在循环内,我的 Excel 文件将始终只包含一行..

你有想法吗?

非常感谢 !

最佳答案

您只需将调用更改为 setCellValueByColumnAndRow对于每一列并增加它:

$sql = "SELECT ptlum FROM `ptlum` WHERE nomcom = 'AIGREFEUILLE' and RIGHT (date,4) < 2015 and RIGHT(date,4) > 0 ";
$result = mysql_query($sql);

$row = 1; // 1-based index
$column = 1;
while($data = mysql_fetch_assoc($result)) {
$sheet->setCellValueByColumnAndRow($column, $row, $data['ptlum']);
$column = $column + 1; //or $column++; if you prefer
}

如您所见,您可以使用 mysql_fetch_assoc 检索所需的字段/列。 ,返回一个关联数组。

此外,您不必包含 WHERE 的字段。 SELECT 中的条件.

最后,您应该替换已弃用的 mysql_*通过它们的等效函数 mysqli_* ,如 here 所述.

编辑:

对于您的"new"问题,此代码应该可以工作:
$sql = "SELECT ptlum FROM `ptlum` WHERE nomcom = 'AIGREFEUILLE' and RIGHT (date,4) < 2015 and RIGHT(date,4) > 0 ";
$result = mysql_query($sql);

$row = 1; // 1-based index
$column = 1;
$workbook = new PHPExcel;
$sheet = $workbook->getActiveSheet();
while($data = mysql_fetch_assoc($result)) {
$sheet->setCellValueByColumnAndRow($column, $row, $data['ptlum']);
$column = $column + 1; //or $column++; if you prefer
}

首先,不要在每个循环中实例化您的工作簿和工作表,先做一次。

其次,您的论点顺序错误,它是 column然后 row ,而不是相反,如方法名称中所明确表示的。

关于PHP到Excel : fill the output Excel file with a loop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33913828/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com