Как экспортировать данные из MySQL в Excel (.xlsx), но обрабатывать данные перед экспортом - PullRequest
0 голосов
/ 24 апреля 2019

Я пытаюсь экспортировать данные из 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";
        }
    }

Когда код видит ноль, я хочу установить его на "день"

Ответы [ 2 ]

0 голосов
/ 24 апреля 2019

Прежде всего, ваш скрипт создает простой текст с разделителями табуляцией и Excel в виде mime-типа. Это не настоящий файл Excel, и вы можете получить неожиданные результаты.

Если вы хотите создать настоящий файл Excel, используйте что-то вроде PHPSpreadsheet .

Несмотря на это, вы можете изменить свой SQL-запрос как Саджи , рекомендованный в его комментарии, или вы можете сделать что-то подобное в выражении foreach:

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

Обратите внимание, что вы должны использовать ключ в массиве вместо 'header_name', который также используется в качестве имен столбцов в вашем скрипте.

0 голосов
/ 24 апреля 2019

Если вы хотите показать только определенные поля.

выберите идентификатор, имя, (СЛУЧАЙ, КОГДА table_column = 0 ТОГДА 'день', КОГДА table_column = 1 ТОГДА 'НОЧНОЙ' КОНЕЦ) как table_column из your_table

Вывод выглядит как:

id name table_column

1 день Лукаса

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...