PHP ส่งออกข้อมูล export to excel หลาย sheet ในไฟล์เดียว

Spread the love

สวัสดีจ้าเพื่อน ๆ มีใครกำลังมองหาวิธีการเขียนโค้ด PHP เพื่อส่งออกข้อมูลออกมาเป็นไฟล์ .xlxs หรือที่มักจะเรียกกันว่า Export to excel โดยใช้ Library ที่มีชื่อว่า PHPExcel แลแะ PhpSpreadsheet ซึ่งเป็น Library ที่รองรับภาษาไทยด้วยนะ วิธีการส่งออกไฟล์ .xlxs แบบหลาย Sheet ในไฟล์เดียวจะเป็นอย่างไร เรามีตัวอย่างโค้ด และ วิธีการใช้งานมาให้เพื่อน ๆ ดูกันที่นี่เลยจ้า

ตัวอย่าง วิธีการส่งออกข้อมูล Export to excel หลาย sheet ในไฟล์เดียว ด้วย PHPExcel

ก่อนอื่นต้องทำการ Download Lribary PHPExcel มาติดตั้งไว้ในโปรเจคของเราก่อน คลิกที่นี่ เพื่อ Download ส่วนวิธีการเรียกใช้งานก็เรียกแบบนี้

require_once 'PHPExcel/Classes/PHPExcel.php';

ส่วนตัวอย่างโค้ดเต็ม ๆ ก็จะเขียนประมาณนี้

require_once 'PHPExcel/Classes/PHPExcel.php';
$spreadsheet = new PHPExcel();

// Create first sheet
$sheet = $spreadsheet->createSheet();
$sheet->setTitle('Customer');
$sheet->setCellValue('A1', 'Name');
$sheet->setCellValue('B1', 'Age');
$sheet->setCellValue('C1', 'Gender');

$data = array(
    array("John Doe", "35", "Male"),
    array("Jane Doe", "32", "Female"),
    array("Jim Doe", "40", "Male")
);

$row = 2;
foreach ($data as $item) {
    $sheet->setCellValue('A' . $row, $item[0]);
    $sheet->setCellValue('B' . $row, $item[1]);
    $sheet->setCellValue('C' . $row, $item[2]);
    $row++;
}

// Create second sheet
$sheet = $spreadsheet->createSheet();
$sheet->setTitle('Product');
$sheet->setCellValue('A1', 'Product');
$sheet->setCellValue('B1', 'Price');

$data = array(
    array("Apple", "1.20"),
    array("Banana", "0.75"),
    array("Carrot", "0.50")
);

$row = 2;
foreach ($data as $item) {
    $sheet->setCellValue('A' . $row, $item[0]);
    $sheet->setCellValue('B' . $row, $item[1]);
    $row++;
}

$writer = PHPExcel_IOFactory::createWriter($spreadsheet, 'Excel2007');
$writer->save('multi_sheet_data.xlsx');

ตัวอย่าง วิธีการส่งออกข้อมูล Export to excel หลาย sheet ใน ไฟล์เดียว ด้วย PhpSpreadsheet

ก่อนอื่นต้องทำการ Download Lribary PhpSpreadsheet มาติดตั้งไว้ในโปรเจคของเราก่อน คลิกที่นี่ เพื่อ Download หรือติดตั้งผ่าน Composer ด้วยคำสั่งนี้

composer require phpoffice/phpspreadsheet

จากนั้นก็ Config ค่าในไฟล์ composer.json ตามด้านล่างนี้

{
  "require": {
    "phpoffice/phpspreadsheet": "^1.23"
  },
  "config": {
    "platform": {
      "php": "7.4"
    }
  }
}

วิธีการเรียกใช้งานก็เรียกโดยการเรียก Vendor/autoload แบบนี้

require 'vendor/autoload.php';

ส่วนตัวอย่างโค้ดเต็ม ๆ ก็จะเขียนประมาณนี้

require 'vendor/autoload.php';;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

$spreadsheet = new Spreadsheet();

// Create first sheet
$sheet = $spreadsheet->createSheet();
$sheet->setTitle('Customer');
$sheet->setCellValue('A1', 'Name');
$sheet->setCellValue('B1', 'Age');
$sheet->setCellValue('C1', 'Gender');

$data = array(
    array("John Doe", "35", "Male"),
    array("Jane Doe", "32", "Female"),
    array("Jim Doe", "40", "Male")
);

$row = 2;
foreach ($data as $item) {
    $sheet->setCellValue('A' . $row, $item[0]);
    $sheet->setCellValue('B' . $row, $item[1]);
    $sheet->setCellValue('C' . $row, $item[2]);
    $row++;
}

// Create second sheet
$sheet = $spreadsheet->createSheet();
$sheet->setTitle('Product');
$sheet->setCellValue('A1', 'Product');
$sheet->setCellValue('B1', 'Price');

$data = array(
    array("Apple", "1.20"),
    array("Banana", "0.75"),
    array("Carrot", "0.50")
);

$row = 2;
foreach ($data as $item) {
    $sheet->setCellValue('A' . $row, $item[0]);
    $sheet->setCellValue('B' . $row, $item[1]);
    $row++;
}

$writer = new Xlsx($spreadsheet);
$writer->save('multi_sheet_data.xlsx');

บทความอื่น ๆ ที่เกี่ยวข้องกับ PHP

เป็นยังไงกันบ้างคะ สำหรับบทความเรื่อง PHP export to excel หลาย sheet ในไฟล์เดียว ดูเพลินก็หวังว่าบทความของเราจะเป็นประโยชน์ต่อท่านไม่มากก็น้อย นอกจากนี้ เรายังมีบทความดี ๆ อีกมากมาย คุณสามารถลองคลิกเขาไปอ่านบทความอื่น ๆ ตามลิงค์ด้านล่างได้เลย

เทคนิคอื่นๆ เกี่ยวกับการเขียนโค้ด คลิก

อย่าลืมไปติดตาม Facebook fanpage ของเรา >> Click <<