Cara menggunakan export phpspreadsheet

Hai ketemu lagi dengan saya dewan komputer dan postingan ini merupakan lanjutan dari postingan saya sebelumnya yang berjudul Cara Ekspor Data/Laporan ke Excel Dengan Mudah Menggunakan HTML Tanpa Plugin dari Database MySQL. Pada postingan sebelumnya merupakan versi sederhana dan mudahnya karena memang itu bukanlah excel yang sepenuhnya. Dan pada postingan kali ini saya akan menjelaskan tentang generate data ke dalam excel yang mengambil data dari database MySQL menggunakan bahasa pemrograman PHP. Karena menggunakan library/plugin sehingga pada postingan kali ini merupakan excel yang sempurna dan format file yang dihasilnya adalah excel 2007 ke atas atau (.xlsx). Seperti yang sobat tahu segala aplikasi pasti nantinya akan mengeluarkan sebuah output dan biasanya adalah dalam bentuk excel, pdf atau bahkan word. Jika sobat ingin tutorial lainnya sobat bisa kunjungi :

Baca juga :

Cara Ekspor Data/Laporan ke Excel Dengan Mudah Menggunakan HTML Tanpa Plugin dari Database MySQL

Cara Ekspor Data/Laporan ke PDF Dengan Mudah Menggunakan Mpdf pada PHP

Cara Ekspor Laporan/Data dari Database MySQL ke dalam Word Tanpa Plugin

Plugin yang saya gunakan yaitu PHPOffice terbaru saat artikel ini dibuat. Jadi sangat mungkin nantinya akan muncul versi-versi barunya. PHPOffice sendiri terbagi menjadi beberapa versi dan yang paling sering digunakan khusunya oleh saya yaitu PHPSpreadsheet, PHPWord dan PHPPresentation. Dan menurut pengalaman saya pada saat membuat aplikasi untuk sebuah perusahaan besar yang sebelumnya menggunakan PHPExcel namun karena masalah security akhirnya diharusnya untuk mengubahkan ke versi yang paling baru dan itulah PHPOffice. Oleh karena itu pada tutorial kali ini saya menggunakan PHPOffice Spreeadsheet bukan PHPExcel walaupun sebenarnya dari penulisan script mirip-mirip namun ada beberapa fungsi baru dan beberapa fungsi yang deprecated.

Cara Ekspor Laporan/Data dari Database MySQL ke dalam Excel

Tidak usah berlama-lama langsung saja saya jelaskan caranya yaitu :

1. Pertama sobat buat database dengan cara masuk ke localhost/phpmyadmin pada browser sobat dan klik tab Database/Basis Data lalu masukkan nama database db_dewankomputer seperti gambar dibawah

2. Selanjutnya sobat buat tabel dan beri nama tbl_mahasiswa atau sobat bisa lik tab SQL dan masukkan query dibawah ini

1

2

3

4

5

6

7

CREATE TABLE `tbl_mahasiswa` (

  `id` int(11) NOT NULL,

  `nama_mahasiswa` varchar(255) NOT NULL,

  `alamat` text NOT NULL,

  `jenis_kelamin` varchar(255) NOT NULL,

  `tgl_masuk` date NOT NULL

)

 

3. Setelah sobat sudah berhasil membuat tabel selanjutnya sobat isikan tabel tersebut atau sobat bisa klik lagi tab SQL dan masukkan query dibawah ini dan klik tombol OK/Go

1

2

3

4

5

6

7

INSERT INTO `tbl_mahasiswa` (`id`, `nama_mahasiswa`, `alamat`, `jenis_kelamin`, `tgl_masuk`) VALUES

(1, 'Dewan Komputer', 'Cilacap', 'Laki-laki', '2019-01-01'),

(2, 'Sule', 'Jakarta', 'Laki-laki', '2019-01-01'),

(3, 'Maemunah', 'Yogyakarta', 'Perempuan', '2019-01-01'),

(4, 'Siti', 'Semarang', 'Perempuan', '2019-01-01'),

(5, 'Andre', 'Purwokerto', 'Laki-laki', '2019-01-01'),

(6, 'Tukul Arwana', 'Surabaya', 'Laki-laki', '2019-01-01');

 

4. Download versi yang sama seperti pada tutorial ini disini atau sobat bisa download dengan composer caranya pada step 5. Selanjutnya sobat bisa buat folder di folder C://xampp/htdocs/ dan beri nama dewan_ekspor_excel2 lalu buat file di dalamnya dan beri nama index.php, koneksi.php dan ekspor.php dan nantinya akan menghasilkan tampilan seperti dibawah

5. Untuk mendownload phpspreadsheet sobat bisa buka cmd dan ketikkan seperti dibawah namun tentunya sobat sudah menginstal composer terlebihi dahulu. Jika sobat belum menginstal Composer maka sobat bisa lihat Cara Menginstal Composer pada Windows.

5. //dewankomputer.com/2019/01/12/cara-ekspor-laporan-data-dari-database-mysql-ke-dalam-excel-xlsx-dengan-plugin-phpspreadsheet-pada-php/Kemudian ketikkan koneksi.php dengan kode dibawah ini yang berfungsi untuk mengkoneksikan dengan database MySQL

koneksi.php

1

2

3

4

5

6

7

8

9

10

11

12

13

<?php

error_reporting(0);

 

//MySQLi Object-Oriented

define('HOST','localhost');

define('USER','root');

define('PASS','');

define('DB1', 'db_dewankomputer');

 

// Buat Koneksinya

$db1 = new mysqli(HOST, USER, PASS, DB1);

 

?>

 

6. Lalu buka file index.php dan isikan dengan script dibawah ini yang berfungsi untuk memanggil file yang akan didownload tadi

index.php

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

<?php

//Menggabungkan dengan file koneksi yang telah kita buat

include 'koneksi.php';

?>

 

<!DOCTYPE html>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    

        <meta name="viewport" content="width=device-width, initial-scale=1.0"/>

        <meta http-equiv="X-UA-Compatible" content="IE=edge"/>

<title>Ekspor Data Excel - www.dewankomputer.com</title>

<style type="text/css">

table {

font-size: 17px;

}

thead {

font-weight: bold;

background-color: blue;

color: white;

}

td {

padding: 10px;

}

hr {

margin-top: 20px;

margin-bottom: 20px;

}

.download {

background-color: green;

color: #fff;

border-radius: 10px;

padding: 10px 20px 10px 20px;

margin-bottom: 10px;

}

</style>

</head>

<body>

<div align="center">

<h2>Cara Ekspor Laporan/Data dari Database MySQL ke dalam Excel (.xlsx) dengan plugin PHPOffice pada PHP</h2>

<a href="ekspor.php">

<button class="download">Download</button>

</a>

<table border="1">

     <thead>

     <tr>

     <td>No</td>

     <td>Nama Mahasiswa</td>

     <td>Alamat</td>

     <td>Jenis Kelamin</td>

     <td>Tanggal Masuk</td>

     </tr>

     </thead>

     <tbody>

<?php

        $no = 1;

        $query = "SELECT * FROM tbl_mahasiswa ORDER BY nama_mahasiswa ASC";

        $dewan1 = $db1->prepare($query);

        $dewan1->execute();

        $res1 = $dewan1->get_result();

 

        if ($res1->num_rows > 0) {

        while ($row = $res1->fetch_assoc()) {

            $nama_mahasiswa = $row['nama_mahasiswa'];

            $alamat = $row['alamat'];

            $jenis_kelamin = $row['jenis_kelamin'];

            $tgl_masuk = $row['tgl_masuk'];

 

echo "<tr>";

echo "<td>".$no++."</td>";

echo "<td>".$nama_mahasiswa."</td>";

echo "<td>".$alamat."</td>";

echo "<td>".$jenis_kelamin."</td>";

echo "<td>".$tgl_masuk."</td>";

echo "</tr>";

     } } else {

     echo "<tr>";

     echo "<td colspan='5'>Tidak ada data ditemukan</td>";

     echo "</tr>";

     }

    ?>

     </tbody>

    </table>

    </div><hr>

 

</body>

</html>

 

7. Lalu isikan file ekspor.php dengan kode dibawah ini untuk membuat file excel dan mengambil datanya dari database

ekspor.php

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

<?php

//Menggabungkan dengan file koneksi yang telah kita buat

include 'koneksi.php';

 

// Load library phpspreadsheet

require('vendor/autoload.php');

 

use PhpOffice\PhpSpreadsheet\Helper\Sample;

use PhpOffice\PhpSpreadsheet\IOFactory;

use PhpOffice\PhpSpreadsheet\Spreadsheet;

// End load library phpspreadsheet

 

$spreadsheet = new Spreadsheet();

 

// Set document properties

$spreadsheet->getProperties()->setCreator('Dewan Komputer')

->setLastModifiedBy('Dewan Komputer')

->setTitle('Office 2007 XLSX Dewan Komputer')

->setSubject('Office 2007 XLSX Dewan Komputer')

->setDescription('Test document for Office 2007 XLSX Dewan Komputer.')

->setKeywords('office 2007 openxml php Dewan Komputer')

->setCategory('Test result file Dewan Komputer');

 

$spreadsheet->getActiveSheet()->mergeCells('A1:G1');

$spreadsheet->setActiveSheetIndex(0)->setCellValue('A1', 'Cara Ekspor Laporan/Data dari Database MySQL ke dalam Excel (.xlsx) dengan plugin PHPOffice pada PHP');

 

 

//Font Color

$spreadsheet->getActiveSheet()->getStyle('A3:E3')

    ->getFont()->getColor()->setARGB(\PhpOffice\PhpSpreadsheet\Style\Color::COLOR_WHITE);

 

// Background color

    $spreadsheet->getActiveSheet()->getStyle('A3:E3')->getFill()

    ->setFillType(\PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID)

    ->getStartColor()->setARGB('FFFF0000');

 

 

// Header Tabel

$spreadsheet->setActiveSheetIndex(0)

->setCellValue('A3', 'NO')

->setCellValue('B3', 'NAMA MAHASISWA')

->setCellValue('C3', 'ALAMAT')

->setCellValue('D3', 'JENIS KELAMIN')

->setCellValue('E3', 'TANGGAL MASUK')

;

 

$i=4;

$no=1;

$query = "SELECT * FROM tbl_mahasiswa ORDER BY nama_mahasiswa ASC";

$dewan1 = $db1->prepare($query);

$dewan1->execute();

$res1 = $dewan1->get_result();

while ($row = $res1->fetch_assoc()) {

$spreadsheet->setActiveSheetIndex(0)

->setCellValue('A'.$i, $no)

->setCellValue('B'.$i, $row['nama_mahasiswa'])

->setCellValue('C'.$i, $row['alamat'])

->setCellValue('D'.$i, $row['jenis_kelamin'])

->setCellValue('E'.$i, $row['tgl_masuk']);

$i++; $no++;

}

 

 

// Rename worksheet

$spreadsheet->getActiveSheet()->setTitle('Report Excel '.date('d-m-Y H'));

 

// Set active sheet index to the first sheet, so Excel opens this as the first sheet

$spreadsheet->setActiveSheetIndex(0);

 

// Redirect output to a client’s web browser (Xlsx)

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');

header('Content-Disposition: attachment;filename="Report Excel.xlsx"');

header('Cache-Control: max-age=0');

// If you're serving to IE 9, then the following may be needed

header('Cache-Control: max-age=1');

 

// If you're serving to IE over SSL, then the following may be needed

header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past

header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified

header('Cache-Control: cache, must-revalidate'); // HTTP/1.1

header('Pragma: public'); // HTTP/1.0

 

$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');

$writer->save('php://output');

 

?>

 

 

8. Jalankan //localhost/dewan_ekspor_excel2 dan akan menghasilkan tampilan seperti dibawah

9. Setelah sobat klik download maka akan secara otomatis browser mendownload file excel dan jika dibuka akan menghasilkan tampilan seperti dibawah

Masih banyak fungsi dari PHPOffice yang bisa sobat gunakan. Sobat bisa lihat pada postingan saya selanjutnya. Sekian postingan saya tentang Cara Ekspor Laporan/Data dari Database MySQL ke dalam Excel (.xlsx) dengan plugin PHPOffice pada PHP jika ada salah saya mohon maaf dan jika ada pertanyaan silahkan tinggalkan pada kolom komentar dibawah.

Postingan terbaru

LIHAT SEMUA