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

问题描述 投票:0回答:2

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

已经尝试过像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";
        }
    }

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

php excel phpexcel phpspreadsheet
2个回答
0
投票

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

选择id,name,(例如,当table_column = 0那么'天'WHEN table_column = 1那么'晚'END)作为your_table的table_column

输出看起来像:

id name table_column

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',它也用作脚本中的列名。

© www.soinside.com 2019 - 2024. All rights reserved.