Membuat & mengedit file excel menggunakan PHPExcel

0
63

Assalamualikum wr wb, apa kabar sobat.. semoga baik ya. Jumpa lagi pada artikel kali ini. Pada artikel kali ini saya akan menginfokan tutorial cara membuat file excel menggunkan php, dan langsung saja kita bahas. Untuk membuat file excel menggunakan php kita memerlukan sebuah library php yakni PHPExcel, Apa itu PHPExcel?.. PHPExcel adalah salah satu library php yang dibuat untuk keperluan file excel(Membuat/modifikasi), kita langsung ke point nya

Yang pertama kalian download dahulu library excelnya Disini

klik-download-Membuat-file-excel-menggunakan-php-lamongandev.com

download-phpexcel-Membuat-file-excel-menggunakan-php-lamongandev.com

Jika sudah terdownload, sekarang pindah ke folder htdocs kalian dan extract folder “Classes” yang ada di file yang kita download tadi.

extrack-phpexcel-Membuat-file-excel-menggunakan-php-lamongandev.com

hasil-extract-php-excel-Membuat-file-excel-menggunakan-php-lamongandev.com

Sekarang waktunya kita coba buat file excel baru menggunakan library PHPxcel ini, untuk tutorial kali ini saya menggunakan localhost sebagai contoh saja. Aktifkan localhost kalian, dan buat file baru di folder htdocs kalian dengan nama “coba_excel.php” isi dengan source php berikut :

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
<?php
include('Classes/PHPExcel.php'); //memanggil atau mengimpor libaray PHPExcel

$objPHPExcel = new PHPExcel(); //memanggil atau mengimpor class PHPExcel
$objPHPExcel->getProperties()->setCreator("Lamongandev")
                             ->setLastModifiedBy("Lamongandev")
                             ->setTitle("Isi Contoh Title PHPExcel")
                             ->setSubject("Isi Subject Contoh PHPExcel")
                             ->setDescription("Isi Deskripsi Contoh PHPExcel")
                             ->setKeywords("Isi Keyword contoh php Excel");
$objPHPExcel->setActiveSheetIndex(0); //Excel Sheet 0/1

/* Kita coba mengisi kolom */
$objPHPExcel->getActiveSheet()->SetCellValue('A1', "Tesisi A1"); //A1, A=Kolom & 1=Row/baris nomor 1
$objPHPExcel->getActiveSheet()->SetCellValue('A2', "Tesisi A2"); //A1, A=Kolom & 2=Row/baris nomor 2
$objPHPExcel->getActiveSheet()->SetCellValue('B1', "Tesisi B1"); //B1, B=Kolom & 1=Row/baris no1

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007'); //membuat file
try {
    $objWriter->save('hasil.xlsx'); //menyimpan file "hasil.xlsx" Terletak di folder yg sama dgn file.
    //$objWriter->save('php://output'); //jika otomatis download tanpa menyimpan
    $objPHPExcel->disconnectWorksheets();
    unset($objWriter, $objPHPExcel); //menutup file excel
    echo "File Sukses Dibuat..";
} catch (Exception $e) { //menangkap jika error
    echo 'ERROR : ', $e->getMessage(); //menampilkan error
    die();
}
?>

Dan coba kalian jalankan scriptnya,

run-PHPExcel-Membuat-file-excel-menggunakan-php-lamongandev.com

file-excel-jadi-PHPExcel-Membuat-file-excel-menggunakan-php-lamongandev.com

sekarang coba kita cek, kita buka file excelnya apakah sempurna.

test-file-excel-Membuat-file-excel-menggunakan-php-lamongandev.com

Ok file excel berhasil dibuat dengan sempurna. Sekarang kita ke script yang lain-lain..

Script php membuka dan memodif file excel source kodenya sprti berikut.. (php untuk memodif file excel)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
include('Classes/PHPExcel.php'); //memanggil atau mengimpor libaray PHPExcel

$objPHPExcel = PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objPHPExcel->load('folder/file.xlsx'); // Mengambil file excel yang akan dimodif
$objPHPExcel->setActiveSheetIndex(0); //Menuju ke sheet yang akan dimodif
//$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setAutoSize(TRUE); //auto resize width kolom

$objPHPExcel->getActiveSheet()->SetCellValue('D2', "IsiModif D2"); //Mengedit, menambahkan text ke kolom D

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
try {
    $objWriter->save('hasil_modif.xlsx'); //menyimpan file hasil modif "hasil.xlsx" (Terletak di folder yg sama dgn file).
    $objPHPExcel->disconnectWorksheets();
    unset($objWriter, $objPHPExcel); //menutup file excel

    echo "File Sukses Dimodif..";
} catch (Exception $e) { //menangkap jika error
    echo 'ERROR : ', $e->getMessage(); //menampilkan error
    die();
}
?>

hasil-modif-Membuat-file-excel-menggunakan-php-lamongandev.com

Memodif style font / cell

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
<?php
/* Style font */
$styleArray = array(
   'font'  => array(
        'bold'  => true, //mengaktifkan bold text, jika tidak "FALSE"
        'color' => array('rgb' => '008000'), //Mengganti warna pada text, 008000 adalah kode warna RGB
        'size'  => 15, //Mengubah ukuran text
        'name'  => 'Verdana' //font family
    )
    'alignment' => array(
        'horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_RIGHT, //setting alignment (HORIZONTAL_LEFT , HORIZONTAL_CENTER , HORIZONTAL_RIGHT)
    ));      
$objPHPExcel->getActiveSheet()->getStyle('A1:C1')->applyFromArray($styleArray); //berarti mengubah dari A1 sampai ke C1


/* Style Border */
$styleArray = array(
    'borders' => array(
        'outline' => array( //Style border type = (outline, allborders, inside, vertical, horizontal)
            'style' => PHPExcel_Style_Border::BORDER_THICK, //type border type = (BORDER_THIN, BORDER_THICK)
            'color' => array('argb' => '008000'), //warna border Code RGB
        ),
    ),
);
$objPHPExcel->getActiveSheet()->getStyle('B2:D2')->applyFromArray($styleArray); //Berarti membuat border kolom dari B2 sampai D2


/* -----Atau bisa juga dengan bentuk kode sprti ini----- */

/* Mengubah warna text */
$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->getColor()->setARGB("008000"); //Kode warna RGB, Atau sprti ini,
//$objPHPExcel->getActiveSheet()->getStyle('A1')->getFont()->getColor()->setARGB(PHPExcel_Style_Color::COLOR_RED);

/* Text alignment */
$objPHPExcel->getActiveSheet()->getStyle('A1')->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER); //HORIZONTAL_LEFT , HORIZONTAL_CENTER , HORIZONTAL_RIGHT

/* mengubah Fontsize */
$objPHPExcel->getActiveSheet()->getStyle('B1')->getFont()->setSize(15);
?>

Script untuk menambahkan gambar ke excel PHPExcel, (insert image to excel file)

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
<?php
include('Classes/PHPExcel.php'); //memanggil atau mengimpor libaray PHPExcel
$objPHPExcel = PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objPHPExcel->load('hasil.xlsx'); // Mengambil file excel yang akan dimodif
$objPHPExcel->setActiveSheetIndex(0); //Menuju ke sheet yang akan dimodif

        $gambar = imagecreatefromstring(file_get_contents('https://files.ariefendi.me/d/old-programmer.jpg')); //url gambar
        $objDrawing = new PHPExcel_Worksheet_MemoryDrawing();
        $objDrawing->setName('Nama Gambar');
        $objDrawing->setDescription('Deskripsi Gambar');
        $objDrawing->setImageResource($gambar);
        $objDrawing->setRenderingFunction(PHPExcel_Worksheet_MemoryDrawing::RENDERING_JPEG);
        $objDrawing->setMimeType(PHPExcel_Worksheet_MemoryDrawing::MIMETYPE_DEFAULT);
        $objDrawing->setCoordinates("C2"); //lokasi / Koordinat
        $objDrawing->setResizeProportional(false);
        $objDrawing->setWidth(150); //lebar gambar
        $objDrawing->setHeight(150); //tinggi gamber
        $objDrawing->setOffsetY(4.1);
        $objDrawing->setOffsetX(4.1);
        $objDrawing->setWorksheet($objPHPExcel->getActiveSheet());

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
try {
    $objWriter->save('hasil_modif.xlsx'); //menyimpan file "hasil.xlsx" Terletak di folder yg sama dgn file.
    $objPHPExcel->disconnectWorksheets();
    unset($objWriter, $objPHPExcel); //menutup file excel

    echo "File Sukses Dimodif..";
} catch (Exception $e) { //menangkap jika error
    echo 'ERROR : ', $e->getMessage(); //menampilkan error
    die();
}
?>

php-insert-image-ke-excel-Membuat-file-excel-menggunakan-php-lamongandev.com

Script untuk mengambil value excel dan mengambil nama sheet (Mengambil data dari excel)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
include('Classes/PHPExcel.php'); //memanggil atau mengimpor libaray PHPExcel

$objPHPExcel = PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objPHPExcel->load('folder/file-excel.xlsx'); // Mengambil/membaca file excel
$objPHPExcel->setActiveSheetIndex(0); //Menuju ke 1

    print $objPHPExcel->getActiveSheet()->getCell('A1')->getValue(); //mengambil value kolom,row A1
    print '<hr/>';
    print $objPHPExcel->getActiveSheet()->getTitle(); //mengambil nama sheet

$objPHPExcel->disconnectWorksheets();
unset($objPHPExcel); //menutup file excel
?>

membaca-excel-mengambil-nama-sheet-Membuat-file-excel-menggunakan-php-lamongandev.com

Script Membuat sheet baru PHPExcel (PHPExcel create new Sheet)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
include('Classes/PHPExcel.php'); //memanggil atau mengimpor libaray PHPExcel

$objPHPExcel = PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objPHPExcel->load('hasil.xlsx'); // Mengambil file excel yang akan dimodif

$objPHPExcel->createSheet($objPHPExcel->getSheetCount())->setTitle("NamaSheet Baru"); //membuat sheet baru

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
try {
    $objWriter->save('hasil_modif.xlsx'); //menyimpan file hasil modif "hasil.xlsx" (Terletak di folder yg sama dgn file).
    $objPHPExcel->disconnectWorksheets();
    unset($objWriter, $objPHPExcel); //menutup file excel

    echo "Berhasil membuat sheet baru..";
} catch (Exception $e) { //menangkap jika error
    echo 'ERROR : ', $e->getMessage(); //menampilkan error
    die();
}
?>

membuat-sheetbaru-excel-dengan-php-Membuat-file-excel-menggunakan-php-lamongandev.com

Script untuk Mencopy Sheet PHPExcel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
include('Classes/PHPExcel.php'); //memanggil atau mengimpor libaray PHPExcel

$objPHPExcel = PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objPHPExcel->load('foder/file_excel.xlsx'); // Mengambil file excel yang akan dimodif
$objPHPExcel->setActiveSheetIndex(0); //ke sheet 1

$objClonedWorksheet = clone $objPHPExcel->getSheetByName('NamaSheet 1'); //nama Sheet Yang akan dicopy
$objClonedWorksheet->setTitle('Sheet hasil Copyan'); //nama Sheet baru hasil copy
$objPHPExcel->addSheet($objClonedWorksheet);

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
try {
    $objWriter->save('hasil_modif.xlsx'); //menyimpan file hasil modif "hasil.xlsx" (Terletak di folder yg sama dgn file).
    $objPHPExcel->disconnectWorksheets();
    unset($objWriter, $objPHPExcel); //menutup file excel

    echo "File Sukses Dimodif..";
} catch (Exception $e) { //menangkap jika error
    echo 'ERROR : ', $e->getMessage(); //menampilkan error
    die();
}
?>

copy-sheet-excel-meggunakan-php-Membuat-file-excel-menggunakan-php-lamongandev.com

Script Menghapus Sheet PHPExcel

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
include('Classes/PHPExcel.php'); //memanggil atau mengimpor libaray PHPExcel

$objPHPExcel = PHPExcel_IOFactory::createReader('Excel2007');
$objPHPExcel = $objPHPExcel->load('hasil_modif.xlsx'); // Mengambil file excel yang akan dimodif
$objPHPExcel->setActiveSheetIndex(0); //Menuju ke sheet yang akan dimodif

$sheetIndex = $objPHPExcel->getIndex($objPHPExcel->getSheetByName('Nama SHeet')); //nama sheet yg akan dihapus
$objPHPExcel->removeSheetByIndex($sheetIndex); //menghapus

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
try {
    $objWriter->save('hasil_modif2.xlsx'); //menyimpan file hasil modif "hasil.xlsx" (Terletak di folder yg sama dgn file).
    $objPHPExcel->disconnectWorksheets();
    unset($objWriter, $objPHPExcel); //menutup file excel
    echo "File Sukses Dimodif..";
} catch (Exception $e) { //menangkap jika error
    echo 'ERROR : ', $e->getMessage(); //menampilkan error
    die();
}
?>

Baiklah munkin itu dulu tutorial tentang PHPExcel, semoga bermanfaat.. Jika ada yang ditanyakan bisa hubungi saya melaui Form contact atau ke fb saya Disini