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

标签 php excel loops counter

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

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

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

因此,我必须在查询中循环并创建一个计数器来填充与内容的 ptlum 列的每个项目相对应的每一行。
所以目标是得到以下结果:

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检索所需的字段/列,返回关联数组。

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

最后,您应该将已弃用的 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
}

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

其次,您的参数顺序错误,先是,然后是,而不是方法名称中明确指出的相反顺序。

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

相关文章:

python - 如何使用 API 和 Python 提取数据?

javascript - 循环遍历 Javascript 对象返回值的总和

php - 如何检查 laravel 4 中的响应 header 以进行单元测试?

php - 将 php POST 数组分配给 Javascript 数组

php - SUM 行字段 MEDOO

php - Mongodb更新多个具有不同值的文档

excel - 用于从元数据中列出所有 SAS 服务器用户的 SAS 脚本

python - 从增量开始位置创建循环迭代器

python - 使用 Python Pandas 在一个 Excel 文件中创建多个电子表格

java - HSSF工作簿错误