如何将数据从MySQL导出到Excel(.xlsx),但在导出之前处理数据

时间:2019-04-24 13:21:09

标签: php excel phpexcel phpspreadsheet

我正在尝试将数据从MySQL导出到xlsx,但是在我的数据库中可能有0和1而不是真实数据。 让我更好地解释一下:有一个列用于设置白天还是晚上,但白天使用0,夜晚使用1。当我使用下面的代码导出时,我得到了带有这些0和1的xlsx。

已经尝试过https://phppot.com/php/database-data-export-to-excel-file-using-php/https://artisansweb.net/how-to-export-mysql-database-data-to-excel-using-php/之类的东西,但我只是无法在发送前编辑xlsx的内容

 $filename = "Export_excel.xls";
    header("Content-Type: application/vnd.ms-excel");
    header("Content-Disposition: attachment; filename=\"$filename\"");
    $isPrintHeader = false;
    if (! empty($productResult)) {
        foreach ($productResult as $row) {
            if (! $isPrintHeader) {
                echo implode("\t", array_keys($row)) . "\n";
                $isPrintHeader = true;
            }
            echo implode("\t", array_values($row)) . "\n";
        }
    }

当代码看到为零时,我想将其设置为“ day”

2 个答案:

答案 0 :(得分:0)

如果您只想显示特定字段。

选择id,名称(例如,table_column = 0 THEN'day',而table_column = 1 THEN'night'END的情况)作为your_table中的table_column

输出外观:

id名称table_column

1天卢卡斯

答案 1 :(得分:0)

首先,您的脚本创建一个制表符分隔的纯文本,其中Excel为mime-type。 这不是真正的Excel文件,可以为您带来意想不到的结果。

如果要创建真实的Excel文件,请使用类似PHPSpreadsheet的文件。

尽管如此,您仍可以像他的注释中推荐的Saji那样更改您的SQL查询,也可以在foreach语句中执行以下操作:

if($row['header_name'] == 0){
    $row['header_name'] = 'day';
}else{
    $row['header_name'] = 'night';
}

请注意,您必须在数组中使用键,而不是在脚本中也用作列名的'header_name'。