gpt4 book ai didi

php - 动态mysql->excel导出

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

首先,“正常”导出并使用 phpspreadsheet 编写 Excel 文件就像一个魅力。我不知道如何以动态的方式做到这一点。“动态”意味着不手动定义row1中的标题,也不手动定义来自mysql的数据列。

我所做的(尝试过):

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setTitle('test');

if ($result = $mysqli -> query($sql)) {
$co = 'A';
$ro = '1';
while ($fieldinfo = $result -> fetch_field()) {
// printf("$col.$row %s\n", $fieldinfo -> name);
$sheet->setCellValue($co.$ro, $fieldinfo -> name);
$$co = $fieldinfo -> name;
$co++;
}
$result -> free_result();
}

这将创建一个 Excel 文件,其中包含 mysql View /语句中定义的所有字段名称。挑战在于将日期逐列放入而不通过代码创建它们。我所做的是为每一列生成一个变量。所以 $A = 名字$B = 名字,等等

我的想法是通过类似“第一列是'A'然后我必须解决变量$A”来解决这个变量。但是动态调用变量在某种程度上不起作用

$sheet->setCellValue($co.$ro, $row[$cuco]);

$cuco(当前列)应为 $cuco = '$'.$A,但随后 $cuco 的值将是 $A ,解析的变量 $A 应该是“firstname”,即

最佳答案

我所做的就是向数据库中的每一列添加一条注释,该注释与我想要该列的标题相对应。附加查询将为您提供该数据,然后您可以使用这些数据填充标题行。

这是我使用 FWIW 的函数:

//
// Returns an array indexed by column names with the column comment,
// if any, as the value from the table name that is passed - columns
// that do not have a comment are not included in the returned array
//

public function get_column_comments($table) {

$ColsQ = $this->database->prepare('SHOW FULL COLUMNS FROM `' . $table . '`');
$ColsQ->execute();
$ColsD = $ColsQ->fetchAll(PDO::FETCH_ASSOC);

foreach ($ColsD as $col) {

if (empty($col['Comment'])) {continue;} // ignore columns without a comment

$cols[$col['Field']] = $col['Comment'];
}

return $cols;

} // end of get_column_comments function

关于php - 动态mysql->excel导出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59972967/

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