我试图将数据从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";
}
}
当代码看到零时,我想将其设置为“日”
如果您只想显示特定字段。
选择id,name,(例如,当table_column = 0那么'天'WHEN table_column = 1那么'晚'END)作为your_table的table_column
输出看起来像:
id name table_column
1卢卡斯日
首先,您的脚本使用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',它也用作脚本中的列名。