Skip to main content

Export MySQL data into Excel using PHP

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;
?>

3. Note: 
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

Popular posts from this blog

WordPress migrations need an overhaul. Here’s why.

 WordPress migration is the bare necessity of running an active website. All WordPress customers need to deal with the aggravations with migrating their site beginning with one web host onto the next web host. It is known by the web society that WordPress migration is a overwhelming undertaking. This is clear with the by and large wide number of instructional exercises and articles concerning it. Even more importantly, the expenses incurred in this system are a wide sum. In the 21st century, we would look for our prerequisites to be fulfilled intuitively for a comprehensive customer endeavour. For the particular strategies to stay reasonable to this day and age, it is fundamental for the required virtual processes to be quick, i.e. they ought to be simple for the customer. WordPress has profitable strength of 14 years on the web. Even so, after this time, migration must be done manually. This is genuinely tiresome. You will be responsible for content creation an

WordPress custom menu page, fetch data from custom MySQL table and export to CSV

 To create a custom menu page in WordPress, retrieve custom table data from MySQL, and display it with the ability to export to CSV/Excel, you can follow these steps: 1. Create a custom table in your WordPress database to store your data. You can use the $wpdb global variable to interact with custom tables in WordPress. Here's an example of creating a custom table: <?php global $wpdb ; $table_name = $wpdb -> prefix . 'custom_data' ; $sql = "CREATE TABLE IF NOT EXISTS $table_name ( id INT(11) NOT NULL AUTO_INCREMENT, name VARCHAR(255) NOT NULL, email VARCHAR(255) NOT NULL, phone VARCHAR(20) NOT NULL, PRIMARY KEY (id) ) $charset_collate ;" ; require_once (ABSPATH . 'wp-admin/includes/upgrade.php' ); dbDelta( $sql ); ?> 2. Add the following code to your theme's functions.php file or create a custom plugin file to define the custom menu page: <?php // Add menu page function custom_menu_page () {

Covert all date data format from VARCHAR to DATE in any MySQL table

 Converting varchar data to date format in MySQL involves several steps. Here's a method to achieve this: Assuming your varchar date column is named date_column and your table is named your_table, you can follow these steps: Add a New Date Column: First, add a new date column to your table. ALTER TABLE your_table ADD new_date_column DATE; Update New Date Column: Update the newly added date column using the STR_TO_DATE function to convert the varchar dates to date format. UPDATE your_table SET new_date_column = STR_TO_DATE(date_column, 'your_date_format'); Replace 'your_date_format' with the format of the varchar dates in your column. For example, if your dates are in the format 'YYYY-MM-DD', use '%Y-%m-%d'.  Drop Old Date Column: If you're confident that the new date column contains the correct data, you can drop the old varchar date column. ALTER TABLE your_table DROP COLUMN date_column; Rename New Date Column: Finally, rename the new date colum