🔌 Как выгрузить таблицу из SQL в Excel с помощью PHP?

Чтобы выгрузить таблицу из SQL в Excel с использованием PHP, вы можете использовать следующий код:


    $servername = "localhost";
    $username = "имя_пользователя";
    $password = "пароль";
    $dbname = "имя_базы_данных";

    // Создание подключения к базе данных
    $conn = new mysqli($servername, $username, $password, $dbname);

    // Проверка наличия ошибок при подключении
    if ($conn->connect_error) {
        die("Ошибка подключения: " . $conn->connect_error);
    }

    // Установка кодировки
    mysqli_set_charset($conn, 'utf8');

    // Запрос для выборки данных из таблицы
    $sql = "SELECT * FROM название_таблицы";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        // Создание нового Excel файла
        $spreadsheet = new \PhpOffice\PhpSpreadsheet\Spreadsheet();

        // Установка текущего листа
        $spreadsheet->setActiveSheetIndex(0);

        // Установка заголовков столбцов
        $spreadsheet->getActiveSheet()->setCellValue('A1', 'Заголовок_1');
        $spreadsheet->getActiveSheet()->setCellValue('B1', 'Заголовок_2');

        $row = 2;
        // Перебор данных из результата запроса
        while ($row_data = $result->fetch_assoc()) {
            $spreadsheet->getActiveSheet()->setCellValue('A' . $row, $row_data['столбец1']);
            $spreadsheet->getActiveSheet()->setCellValue('B' . $row, $row_data['столбец2']);
            $row++;
        }

        // Сохранение файла в формате Excel
        $writer = new \PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
        $writer->save('путь_к_файлу.xlsx');

        echo "Таблица успешно выгружена в Excel файл.";
    } else {
        echo "Таблица пуста.";
    }

    // Закрытие подключения к базе данных
    $conn->close();
    

Не забудьте заменить "имя_пользователя", "пароль", "имя_базы_данных", "название_таблицы" и "путь_к_файлу" на соответствующие значения в вашем случае.

Детальный ответ

Привет! Рад помочь тебе разобраться в том, как выгрузить таблицу из SQL в Excel с помощью PHP. Этот процесс может быть очень полезным, когда тебе нужно поделиться данными из базы данных с коллегами или клиентами в удобном формате.

Для начала, мы должны установить необходимые инструменты и библиотеки. Для работы с базой данных нам понадобится PHP расширение PDO (PHP Data Objects). Вот пример кода, который поможет нам установить PDO:

apt-get install php7.4-pdo php7.4-mysql

Теперь, когда у нас есть все необходимое, давайте перейдем к следующему шагу - подключению к базе данных MySQL и выполнению SQL запроса. Ниже приведен пример кода, демонстрирующий этот процесс:

<?php
        $host = 'localhost';
        $db   = 'database_name';
        $user = 'username';
        $pass = 'password';
        $charset = 'utf8mb4';

        $dsn = "mysql:host=$host;dbname=$db;charset=$charset";
        $options = [
            PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
            PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
            PDO::ATTR_EMULATE_PREPARES   => false,
        ];

        try {
            $pdo = new PDO($dsn, $user, $pass, $options);
        } catch (\PDOException $e) {
            throw new \PDOException($e->getMessage(), (int)$e->getCode());
        }

        $stmt = $pdo->query('SELECT * FROM table_name');
        $data = $stmt->fetchAll();

        // В этой точке у нас есть данные из таблицы, и мы готовы их выгрузить в Excel.

    ?>

Итак, у нас есть данные из таблицы, и мы готовы перейти к следующему шагу - созданию Excel файла. Для этого мы можем использовать библиотеку PhpSpreadsheet, которая предоставляет удобные средства для работы с Excel файлами. Если ты еще не установил эту библиотеку, вот пример кода, который поможет тебе установить ее:

composer require phpoffice/phpspreadsheet

После установки библиотеки, добавь следующий код для создания Excel файла и наполнения его данными:

<?php
        require 'vendor/autoload.php';

        use PhpOffice\PhpSpreadsheet\Spreadsheet;
        use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

        // Создаем новый объект Spreadsheet
        $spreadsheet = new Spreadsheet();

        // Получаем активный лист
        $sheet = $spreadsheet->getActiveSheet();

        // Задаем названия столбцов в первой строке
        $sheet->setCellValue('A1', 'Column 1');
        $sheet->setCellValue('B1', 'Column 2');
        $sheet->setCellValue('C1', 'Column 3');

        // Наполняем таблицу данными из базы данных
        $row = 2;
        foreach ($data as $item) {
            // Заполняем ячейки данными из каждой строки
            $sheet->setCellValue('A' . $row, $item['column1']);
            $sheet->setCellValue('B' . $row, $item['column2']);
            $sheet->setCellValue('C' . $row, $item['column3']);
            $row++;
        }

        // Создаем объект Writer и сохраняем Excel файл
        $writer = new Xlsx($spreadsheet);
        $writer->save('output.xlsx');

        // Файл output.xlsx, содержащий данные из таблицы, создан успешно!

    ?>

Поздравляю! У тебя есть файл "output.xlsx", который содержит данные из базы данных в удобном формате Excel. Этот файл можно загрузить и открыть в программе Microsoft Excel или любом другом приложении для работы с таблицами.

Это лишь один из многих способов выгрузки таблицы из SQL в Excel с использованием PHP. Важно помнить, что для успешного выполнения этой задачи необходимо установить все необходимые инструменты и библиотеки, а также правильно настроить подключение к базе данных. Надеюсь, этот пример поможет тебе разобраться в этом процессе и использовать его в своем проекте!

Видео по теме

Импорт данных SQL в Excel

Импорт данных из Excel в MySQL

Выгрузка данных из таблиц Excel в СУБД Mysql

Похожие статьи:

🔌 Как выгрузить таблицу из SQL в Excel с помощью PHP?