如何将数据从 MySQL 导出到 Excel(.xlsx) 但在导出前处理数据
How to export data from MySQL to Excel(.xlsx) but handling the data before exporting
我正在尝试将数据从 MySQL 导出到 xlsx,但在我的数据库中可能有一些 0 和 1 而不是真实数据。
让我更好地解释一下:有一列用于设置白天还是晚上,但使用 0 表示白天,1 表示晚上。当我使用下面的代码导出时,我得到了一个包含这些 0 和 1 的 xlsx。
已经尝试过 https://phppot.com/php/database-data-export-to-excel-file-using-php/ and 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"
如果您只想显示特定字段。
select id,name, ( CASE WHEN table_column = 0 THEN 'day' WHEN table_column = 1 THEN 'night' END ) as table_column 来自 your_table
输出看起来像:
身份证名table_column
1 个卢卡斯日
首先,您的脚本会创建一个以 Excel 作为 mime 类型的制表符分隔的纯文本。 这不是真正的 Excel 文件,可能会给您带来意想不到的结果。
如果您想创建一个真正的 Excel 文件,请使用类似 PHPSpreadsheet 的东西。
尽管如此,您可以像 Saji 在他的评论中推荐的那样更改您的 SQL 查询,或者您可以在 foreach 语句中执行类似的操作:
if($row['header_name'] == 0){
$row['header_name'] = 'day';
}else{
$row['header_name'] = 'night';
}
请注意,您必须使用数组中的键而不是 'header_name',后者也用作脚本中的列名。
我正在尝试将数据从 MySQL 导出到 xlsx,但在我的数据库中可能有一些 0 和 1 而不是真实数据。 让我更好地解释一下:有一列用于设置白天还是晚上,但使用 0 表示白天,1 表示晚上。当我使用下面的代码导出时,我得到了一个包含这些 0 和 1 的 xlsx。
已经尝试过 https://phppot.com/php/database-data-export-to-excel-file-using-php/ and 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"
如果您只想显示特定字段。
select id,name, ( CASE WHEN table_column = 0 THEN 'day' WHEN table_column = 1 THEN 'night' END ) as table_column 来自 your_table
输出看起来像:
身份证名table_column
1 个卢卡斯日
首先,您的脚本会创建一个以 Excel 作为 mime 类型的制表符分隔的纯文本。 这不是真正的 Excel 文件,可能会给您带来意想不到的结果。
如果您想创建一个真正的 Excel 文件,请使用类似 PHPSpreadsheet 的东西。
尽管如此,您可以像 Saji 在他的评论中推荐的那样更改您的 SQL 查询,或者您可以在 foreach 语句中执行类似的操作:
if($row['header_name'] == 0){
$row['header_name'] = 'day';
}else{
$row['header_name'] = 'night';
}
请注意,您必须使用数组中的键而不是 'header_name',后者也用作脚本中的列名。