To fetch data from a MySQL database and export it to Excel, you can use PHP along with a library like PHPExcel or PHPSpreadsheet (which is the successor of PHPExcel). Here, I'll provide an example using PHPExcel.
Please note that PHPExcel is now deprecated, and PHPSpreadsheet is recommended for new projects. If you're starting a new project, consider using PHPSpreadsheet. However, if you need to work with PHPExcel for any reason, you can still find it on GitHub (https://github.com/PHPOffice/PHPExcel).
1. Install PHPSpreadsheet:
You can install PHPSpreadsheet using Composer:
composer require phpoffice/phpspreadsheet
2. Create a PHP Script (export_excel.php):
<?php require 'vendor/autoload.php'; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Writer\Xlsx; // Database connection details $servername = "localhost"; $username = "your_username"; $password = "your_password"; $dbname = "your_database_name"; // Create a new Spreadsheet object $spreadsheet = new Spreadsheet(); // Fetch data from the database $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } $sql = "SELECT * FROM your_table"; $result = $conn->query($sql); // Set column headers $spreadsheet->setActiveSheetIndex(0) ->setCellValue('A1', 'ID') ->setCellValue('B1', 'Name') ->setCellValue('C1', 'Email'); // Populate data $row = 2; // Start from row 2 while ($row_data = $result->fetch_assoc()) { $spreadsheet->getActiveSheet() ->setCellValue('A' . $row, $row_data['id']) ->setCellValue('B' . $row, $row_data['name']) ->setCellValue('C' . $row, $row_data['email']); $row++; } // Rename worksheet $spreadsheet->getActiveSheet()->setTitle('Sheet 1'); // Redirect output to a client's web browser (Excel2007) header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('Content-Disposition: attachment;filename="exported_data.xlsx"'); header('Cache-Control: max-age=0'); $writer = new Xlsx($spreadsheet); $writer->save('php://output'); exit; ?>
Replace your_table with the actual name of your database table.
Ensure you have Composer installed and run composer require phpoffice/phpspreadsheet in your project directory to install PHPSpreadsheet.
When you access export_excel.php, it will generate an Excel file with the data fetched from your MySQL database.
Comments
Post a Comment