Membuat Export File Excel Dengan Codeigniter

Created at by Aris Munandar

Pada tutorial kali ini kita akan membahas tentang bagaimana cara membuat export file excel dengan codeigniter, export disini bisa berbagai format seperti xls, csv dan pdf, dimana kita akan menggunakan library pihak ketiga yang sudah siap digunakan.

Fungsi export file dengan codeigniter ini sangat berguna bagi kita sebagai developer dalam membuat sebuah sistem berbasis web, karna fungsi export file excel adalah fitur yang wajib ada didalam sebuah sistem entah itu dalam modul laporan atau semacamnya tergantung kebutuhan sistem yang akan kita buat.

Didalam tutorial export file dengan codeigniter ini kita akan menggunakan PHPOffice/Spreadsheet sehingga ada tools yang mesti disediakan yaitu composer, fungsi composer ini untuk install PHPOffice/Spreadsheet karena kita tidak bisa hanya dengan mendownload filenya saja.

Membuat Export File Excel Dengan Codeigniter

Pertama-tama yang perlu kita siapkan adalah tentu saja framework codeigniter dan yang sudah dilakukan konfigurasi sesuai dengan konfigurasi server dan database pada step ke 2 dibawah ini.

Step 1: Install PHPOffice/PHPSpreadsheet

Pada step pertama buatlah folder dengan nama phpoffice di folder Documents atau dimana saja yang menurut anda mudah untuk di akses dengan syarat diluar folder codeigniter. Setelah itu masuk ke folder phpoffice yang tadi anda buat lalu buka CMD (Windows) atau Terminal (Linux/Mac) lalu masuk ke folder phpoffice tersebut kemudian jalankan perintah dibawah ini.

composer require phpoffice/phpspreadsheet

Jika berhasil maka di console anda akan terlihat seperti gambar dibawah ini.

export file dengan codeigniter

Silakan cek folder phpoffice setelah dijalankan perintah install PHPOffice tersebut maka seharusnya akan ada sebuah folder dengan nama vendor didalam folder phpoffice tadi.

Selanjutnya pindahkan folder phpoffice tersebut kedalam folder codeigniter anda yaitu didalam folder /application/third_party.

Step 2: Menyiapkan database dan tabel beserta data sample

Pada step kedua ini kita akan membuat sebuah database dan tabel beserta data yang sudah saya siapkan, data tersebut akan kita gunakan sebagai contoh export excel, csv, maupun pdf.

Pertama buatlah sebuah database dengan nama pengguna seperti query dibawah ini.

CREATE DATABASE tutorial_export_codeigniter

Selanjutnya membuat tabel dengan nama pengguna.

CREATE TABLE pengguna(
     id INT(11) NOT NULL PRIMARY KEY AUTO_INCREMENT,
     nama VARCHAR(50) NOT NULL,
     umur INT(3) NOT NULL,
     tanggal_lahir DATETIME,
     jenis_kelamin VARCHAR(10)
);

Dan yang terakhir memasukan data ke dalam tabel tersebut, berikut ini query data yang akan kita masukan.

INSERT INTO pengguna(nama, umur, tanggal_lahir, jenis_kelamin) VALUES
('Aris Munandar', 26, '1993-06-03 00:00:00', 'Lelaki'),
('Aditya', 26, '1993-06-03 00:00:00', 'Lelaki'),
('Budi Santoso', 26, '1993-06-03 00:00:00', 'Lelaki'),
('Ramdhoni', 26, '1993-06-03 00:00:00', 'Lelaki'),
('Ahmad', 26, '1993-06-03 00:00:00', 'Lelaki'),
('Iqbal Iskandar', 26, '1993-06-03 00:00:00', 'Lelaki'),
('Sofia', 26, '1993-06-03 00:00:00', 'Perempuan'),
('Azzahra', 26, '1993-06-03 00:00:00', 'Perempuan'),
('Tony Stark', 26, '1993-06-03 00:00:00', 'Lelaki'),
('Peter Parker', 26, '1993-06-03 00:00:00', 'Lelaki'),
('Jimmy Neutron', 26, '1993-06-03 00:00:00', 'Lelaki'),
('Rudy Tabootie', 26, '1993-06-03 00:00:00', 'Lelaki'),
('Hey Arnold', 26, '1993-06-03 00:00:00', 'Lelaki'),
('Gerald', 26, '1993-06-03 00:00:00', 'Lelaki'),
('Spongebob', 26, '1993-06-03 00:00:00', 'Lelaki');

Step 3: Membuat model untuk mengambil data dari database

Setelah database kita siapkan maka selanjutnya kita perlu membuat model codeigniter untuk mengambil data dari database yang tadi telah kita siapkan.

Buatlah sebuah file dengan nama Export_model.php didalam folder /application/models lalu masukan kode dibawah ini.

<?php defined('BASEPATH') OR die('No direct script access allowed');

class Export_model extends CI_Model {

     public function getAll()
     {
          $this->db->select('*');
          $this->db->from('pengguna');

          return $this->db->get();
     }

}Code language: HTML, XML (xml)

Kode model diatas berfungsi untuk mengambil seluruh data yang ada didalam tabel pengguna, query tersebut sama dengan query sql seperti dibawah ini.

SELECT * FROM pengguna

Hanya saja kita dipermudah dengan dengan fitur Active Record yang ada di codeigniter.

Step 4: Membuat controller untuk menjalankan fungsi export

Selanjutnya kita akan membuat controller, dimana didalam controller ini akan menangani halaman index dan fungsi export yang akan kita gunakan.

Buatlah sebuah file dengan nama Export.php didalam folder /application/controllers lalu masukan kode dibawah ini.

<?php defined('BASEPATH') OR die('No direct script access allowed');

require('./application/third_party/phpoffice/vendor/autoload.php');

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

class Export extends CI_Controller {

     public function __construct()
     {
          parent::__construct();
         $this->load->model('export_model');
     }

     public function index()
     {
          $data['semua_pengguna'] = $this->export_model->getAll()->result();
          $this->load->view('export', $data);
     }

     public function export()
     {
          $semua_pengguna = $this->export_model->getAll()->result();

          $spreadsheet = new Spreadsheet;

          $spreadsheet->setActiveSheetIndex(0)
                      ->setCellValue('A1', 'No')
                      ->setCellValue('B1', 'Nama')
                      ->setCellValue('C1', 'Jenis Kelamin')
                      ->setCellValue('D1', 'Tanggal Lahir')
                      ->setCellValue('E1', 'Umur');

          $kolom = 2;
          $nomor = 1;
          foreach($semua_pengguna as $pengguna) {

               $spreadsheet->setActiveSheetIndex(0)
                           ->setCellValue('A' . $kolom, $nomor)
                           ->setCellValue('B' . $kolom, $pengguna->nama)
                           ->setCellValue('C' . $kolom, $pengguna->jenis_kelamin)
                           ->setCellValue('D' . $kolom, date('j F Y', strtotime($pengguna->tanggal_lahir)))
                           ->setCellValue('E' . $kolom, $pengguna->umur);

               $kolom++;
               $nomor++;

          }

          $writer = new Xlsx($spreadsheet);

          header('Content-Type: application/vnd.ms-excel');
	  header('Content-Disposition: attachment;filename="Latihan.xlsx"');
	  header('Cache-Control: max-age=0');

	  $writer->save('php://output');
     }
}Code language: HTML, XML (xml)

Jika sudah silakan simpan, kode diatas berguna untuk menangani halaman utama atau index, setelah itu pada method export akan sedikit saya jelaskan.

require('./application/third_party/phpoffice/vendor/autoload.php'); kode require() ini digunakan untuk memanggil file autoload.php dimana didalamnya telah terdapat sebuah fungsi autoload yang berguna untuk memanggil semua yang dibutuhkan didalam library PHPOffice tanpa perlu kita memasukannya satu persatu.

Lalu beberapa keyword use (penggunaan namespace) tersebut digunakan untuk memanggil library yang telah dipanggil didalam autoload pada PHPOffice tersebut.

setActiveSheetIndex(0) fungsi ini digunakan untuk menentukan atau mengaktifkan Worksheet yang akan kita gunakan dimana Worksheet pertama dimulai dari 0 ya pak 😀

setCellValue(Posisi, Nilai) sedangkan pada fungsi ini digunakan untuk menentukan kolom yang akan kita isi didalam file excel.

Step 5: Membuat tampilan tabel data

Selanjutnya kita akan membuat tampilan tabel, dimana isi tabel ini nantinya adalah seluruh data yang ada di database pengguna.

Caranya, buatlah sebuah file dengan nama export.php didalam folder /application/views lalu masukan kode dibawah ini.

<!DOCTYPE html>
<html>
<head>
     <title>Tutorial Export Dengan Codeigniter</title>
</head>
<body>
     <a href="<?php echo base_url('export'); ?>">Export Data</a>
     <table border="1" cellspacing="0">
          <thead>
               <tr>
                    <th style="width: 7%; text-align: center;">No</th>
                    <th style="width: 30%">Nama</th>
                    <th>Jenis Kelamin</th>
                    <th>Tanggal Lahir</th>
                    <th style="text-align: center;">Umur</th>
               </tr>
          </thead>
          <tbody>
               <?php $index = 1; ?>
               <?php foreach($semua_pengguna as $pengguna): ?>
                    <tr>
                         <td style="width: 7%; text-align: center;"><?php echo $index++; ?></td>
                         <td style="width: 30%"><?php echo $pengguna->nama; ?></td>
                         <td><?php echo $pengguna->jenis_kelamin; ?></td>
                         <td><?php echo date('j F Y', strtotime($pengguna->tanggal_lahir)); ?></td>
                         <td style="text-align: center;"><?php echo $pengguna->umur; ?></td>
                    </tr>
               <?php endforeach; ?>
          </tbody>
     </table>
</body>
</html>Code language: HTML, XML (xml)

Pada halaman html diatas telah disesuaikan dengan yang ada di controller dan telah ditambahkan link export hanya saja kita perlu menyesuaikan route agar tampilan tersebut menjadi halaman utama latihan export ini.

Step 6: Konfigurasi route export file codeigniter

Selanjutnya ada step terakhir adalah membuat konfigurasi didalam route, dimana nantinya kita perlu merubah halaman Welcome codeigniter menjadi tampilan tabel data yang telah kita buat.

Buka file routes.php yang ada didalam folder /application/config lalu ubahlah kode dibawah ini.

$route['default_controller'] = 'welcome';Code language: PHP (php)

Menjadi…

$route['default_controller'] = 'export';
$route['export'] = 'export/export';Code language: PHP (php)

Pada kode diatas terlihat kita telah merubah halaman utama yang awalnya adalah tampilan Welcome codeigniter menjadi halaman export dan menambahkan route untuk fungsi export.

Pada step terakhir ini fungsi export telah selesai, silakan anda lakukan uji coba dengan membuka halaman utama latihan export anda, jika sudah benar maka seharusnya akan tampil seperti gambar dibawah ini.

membuat export file codeigniter

Silakan klik link Export Data, jika berhasil maka akan secara otomatis melakukan download file excel dimana didalam file excel tersebut terdapat data-data yang ada didalam database pengguna.

Step 7: Tambahan latihan

Setelah berhasil melakukan export menggunakan file excel codeigniter dengan library PHPOffice/PHPSpreadsheet maka selanjutnya anda dapat melakukan pengembangan dengan memanfaatkan fitur-fitur format file yang disediakan oleh PhpSpreadsheet, berikut ini link untuk latihan merubah format export file dengan codeigniter.

https://phpspreadsheet.readthedocs.io/en/latest/topics/reading-and-writing-to-file/

Sekian dari saya semoga tutorial ini mudah dimengerti dan bermanfaat untuk proyek-proyek kerja menggunakan codeigniter.

11 Comments

Anggi Nuraziz

Anggi Nuraziz

Kok punya saya pas export, kolom nama, umur, dan lainnya tidak muncul ya
Reply #1952
Aris Munandar

Aris Munandar

@Anggi Nuraziz
Silahkan perhatikan lebih detail bagian controller dan view.
Reply #1954
Ananda indra setiawan

Ananda indra setiawan

Kak gimana caranya biar misal nama A cuman bisa liat yang A doang bukan keseluruhan
Reply #1976
Aris Munandar

Aris Munandar

@Ananda indra setiawan
Bisa ditambahkan role.. jadi masing-masing user memiliki role yang berbeda2..
Reply #1977
Yuda

Yuda

Pak kok saya error pas instansiasi objek yah? errornya Undefined type 'PhpOffice\PhpSpreadsheet\Writer\Xlsx'
Reply #1986
Aris Munandar

Aris Munandar

@Yuda
Bisa cek di library PhpSpreadsheet apakah Xlsx tersedia didirektori anda.
Reply #1987
azima

azima

ada tutorial buat import .xlsx ga gan?
Reply #1989
Aris Munandar

Aris Munandar

@azima
belum ada
Reply #1990
aan

aan

bang kalo dijadikan 2 sheet bagaimana ya?
Reply #2089
Aris Munandar

Aris Munandar

@aan
Saya belum pernah sih buat ini, tapi kalau nggak salah tinggal di atur di indexnya di setActiveSheetIndex(), 0 itu sheet pertama kalau nggak salah.. coba baca-baca lagi PhpOffice.
Reply #2090
nugraha

nugraha

ka, kalau pengen buat 2 sheet gimana, misal sheet 1 data A dan sheet 2 data B
Reply #2235

Leave comment

Alamat email Anda tidak akan dipublikasikan. Required fields are marked *

news-1701

yakinjp

yakinjp

rtp yakinjp

yakinjp

yakinjp

yakin jp

yakinjp id

maujp

maujp

maujp

\

sabung ayam online

sabung ayam online

SLOT MAHJONG

sabung ayam online

article 0000141

article 0000142

article 0000143

article 0000144

article 0000145

article 0000146

article 0000147

article 0000148

article 0000149

article 0000150

article 0000151

article 0000152

article 0000153

article 0000154

article 0000155

article 0000156

article 0000157

article 0000158

article 0000159

article 0000160

article 0000161

article 0000162

article 0000163

article 0000164

article 0000165

article 0000166

article 0000167

article 0000168

article 0000169

article 0000170

article 0000171

article 0000172

article 0000173

article 0000174

article 0000175

article 0000176

article 0000177

article 0000178

article 0000179

article 0000180

article 0000181

article 0000182

article 0000183

article 0000184

article 0000185

article 0000186

article 0000187

article 0000188

article 0000189

article 0000190

article 00046

article 00047

article 00048

article 00049

article 00050

article 00051

article 00052

article 00053

article 00054

article 00055

article 00056

article 00057

article 00058

article 00059

article 00060

article 00061

article 00062

article 00063

article 00064

article 00065

article 00066

article 00067

article 00068

article 00069

article 00070

article 00071

article 00072

article 00073

article 00074

article 00075

article 00076

article 00077

article 00078

article 00079

article 00080

article 00081

article 00082

article 00083

article 00084

article 00085

article 00086

article 00087

article 00088

article 00089

article 00090

article 00091

article 00092

article 00093

article 00094

article 00095

article 888836

article 888837

article 888838

article 888839

article 888840

article 888841

article 888842

article 888843

article 888844

article 888845

article 888846

article 888847

article 888848

article 888849

article 888850

article 888851

article 888852

article 888853

article 888854

article 888855

article 888856

article 888857

article 888858

article 888859

article 888860

article 888861

article 888862

article 888863

article 888864

article 888865

articel 000000171

articel 000000172

articel 000000173

articel 000000174

articel 000000175

articel 000000176

articel 000000177

articel 000000178

articel 000000179

articel 000000180

articel 000000181

articel 000000182

articel 000000183

articel 000000184

articel 000000185

articel 000000186

articel 000000187

articel 000000188

articel 000000189

articel 000000190

articel 000000191

articel 000000192

articel 000000193

articel 000000194

articel 000000195

articel 000000196

articel 000000197

articel 000000198

articel 000000199

articel 000000200

articel 000000201

articel 000000202

articel 000000203

articel 000000204

articel 000000205

articel 000000206

articel 000000207

articel 000000208

articel 000000209

articel 000000210

articel 000000211

articel 000000212

articel 000000213

articel 000000214

articel 000000215

articel 000000216

articel 000000217

articel 000000218

articel 000000219

articel 000000220

article 2000136

article 2000137

article 2000138

article 2000139

article 2000140

article 2000141

article 2000142

article 2000143

article 2000144

article 2000145

article 2000146

article 2000147

article 2000148

article 2000149

article 2000150

article 2000151

article 2000152

article 2000153

article 2000154

article 2000155

article 2000156

article 2000157

article 2000158

article 2000159

article 2000160

article 2000161

article 2000162

article 2000163

article 2000164

article 2000165

article 2000166

article 2000167

article 2000168

article 2000169

article 2000170

article 2000171

article 2000172

article 2000173

article 2000174

article 2000175

article 2000176

article 2000177

article 2000178

article 2000179

article 2000180

article 2000181

article 2000182

article 2000183

article 2000184

article 2000185

article 838000421

article 838000422

article 838000423

article 838000424

article 838000425

article 838000426

article 838000427

article 838000428

article 838000429

article 838000430

article 838000431

article 838000432

article 838000433

article 838000434

article 838000435

article 838000436

article 838000437

article 838000438

article 838000439

article 838000440

article 838000441

article 838000442

article 838000443

article 838000444

article 838000445

article 838000446

article 838000447

article 838000448

article 838000449

article 838000450

article 838000451

article 838000452

article 838000453

article 838000454

article 838000455

article 838000456

article 838000457

article 838000458

article 838000459

article 838000460

news-1701
news-1701

yakinjp

yakinjp

rtp yakinjp

yakinjp

yakinjp

yakin jp

yakinjp id

maujp

maujp

maujp

\

sabung ayam online

sabung ayam online

SLOT MAHJONG

sabung ayam online

article 0000141

article 0000142

article 0000143

article 0000144

article 0000145

article 0000146

article 0000147

article 0000148

article 0000149

article 0000150

article 0000151

article 0000152

article 0000153

article 0000154

article 0000155

article 0000156

article 0000157

article 0000158

article 0000159

article 0000160

article 0000161

article 0000162

article 0000163

article 0000164

article 0000165

article 0000166

article 0000167

article 0000168

article 0000169

article 0000170

article 0000171

article 0000172

article 0000173

article 0000174

article 0000175

article 0000176

article 0000177

article 0000178

article 0000179

article 0000180

article 0000181

article 0000182

article 0000183

article 0000184

article 0000185

article 0000186

article 0000187

article 0000188

article 0000189

article 0000190

article 00046

article 00047

article 00048

article 00049

article 00050

article 00051

article 00052

article 00053

article 00054

article 00055

article 00056

article 00057

article 00058

article 00059

article 00060

article 00061

article 00062

article 00063

article 00064

article 00065

article 00066

article 00067

article 00068

article 00069

article 00070

article 00071

article 00072

article 00073

article 00074

article 00075

article 00076

article 00077

article 00078

article 00079

article 00080

article 00081

article 00082

article 00083

article 00084

article 00085

article 00086

article 00087

article 00088

article 00089

article 00090

article 00091

article 00092

article 00093

article 00094

article 00095

article 888836

article 888837

article 888838

article 888839

article 888840

article 888841

article 888842

article 888843

article 888844

article 888845

article 888846

article 888847

article 888848

article 888849

article 888850

article 888851

article 888852

article 888853

article 888854

article 888855

article 888856

article 888857

article 888858

article 888859

article 888860

article 888861

article 888862

article 888863

article 888864

article 888865

articel 000000171

articel 000000172

articel 000000173

articel 000000174

articel 000000175

articel 000000176

articel 000000177

articel 000000178

articel 000000179

articel 000000180

articel 000000181

articel 000000182

articel 000000183

articel 000000184

articel 000000185

articel 000000186

articel 000000187

articel 000000188

articel 000000189

articel 000000190

articel 000000191

articel 000000192

articel 000000193

articel 000000194

articel 000000195

articel 000000196

articel 000000197

articel 000000198

articel 000000199

articel 000000200

articel 000000201

articel 000000202

articel 000000203

articel 000000204

articel 000000205

articel 000000206

articel 000000207

articel 000000208

articel 000000209

articel 000000210

articel 000000211

articel 000000212

articel 000000213

articel 000000214

articel 000000215

articel 000000216

articel 000000217

articel 000000218

articel 000000219

articel 000000220

article 2000136

article 2000137

article 2000138

article 2000139

article 2000140

article 2000141

article 2000142

article 2000143

article 2000144

article 2000145

article 2000146

article 2000147

article 2000148

article 2000149

article 2000150

article 2000151

article 2000152

article 2000153

article 2000154

article 2000155

article 2000156

article 2000157

article 2000158

article 2000159

article 2000160

article 2000161

article 2000162

article 2000163

article 2000164

article 2000165

article 2000166

article 2000167

article 2000168

article 2000169

article 2000170

article 2000171

article 2000172

article 2000173

article 2000174

article 2000175

article 2000176

article 2000177

article 2000178

article 2000179

article 2000180

article 2000181

article 2000182

article 2000183

article 2000184

article 2000185

article 838000421

article 838000422

article 838000423

article 838000424

article 838000425

article 838000426

article 838000427

article 838000428

article 838000429

article 838000430

article 838000431

article 838000432

article 838000433

article 838000434

article 838000435

article 838000436

article 838000437

article 838000438

article 838000439

article 838000440

article 838000441

article 838000442

article 838000443

article 838000444

article 838000445

article 838000446

article 838000447

article 838000448

article 838000449

article 838000450

article 838000451

article 838000452

article 838000453

article 838000454

article 838000455

article 838000456

article 838000457

article 838000458

article 838000459

article 838000460

news-1701
content-1701

sabung ayam online

yakinjp

yakinjp

rtp yakinjp

slot thailand

yakinjp

yakinjp

yakin jp

yakinjp id

maujp

maujp

maujp

maujp

slot mahjong

SGP Pools

slot mahjong

sabung ayam online

slot mahjong

SLOT THAILAND

article 888000081

article 888000082

article 888000083

article 888000084

article 888000085

article 888000086

article 888000087

article 888000088

article 888000089

article 888000090

article 888000091

article 888000092

article 888000093

article 888000094

article 888000095

article 888000096

article 888000097

article 888000098

article 888000099

article 888000100

cuaca 898100126

cuaca 898100127

cuaca 898100128

cuaca 898100129

cuaca 898100130

cuaca 898100131

cuaca 898100132

cuaca 898100133

cuaca 898100134

cuaca 898100135

cuaca 898100136

cuaca 898100137

cuaca 898100138

cuaca 898100139

cuaca 898100140

cuaca 898100141

cuaca 898100142

cuaca 898100143

cuaca 898100144

cuaca 898100145

cuaca 898100146

cuaca 898100147

cuaca 898100148

cuaca 898100149

cuaca 898100150

cuaca 898100151

cuaca 898100152

cuaca 898100153

cuaca 898100154

cuaca 898100155

cuaca 898100156

cuaca 898100157

cuaca 898100158

cuaca 898100159

cuaca 898100160

cuaca 898100161

cuaca 898100162

cuaca 898100163

cuaca 898100164

cuaca 898100165

cuaca 898100166

cuaca 898100167

cuaca 898100168

cuaca 898100169

cuaca 898100170

cuaca 898100171

cuaca 898100172

cuaca 898100173

cuaca 898100174

cuaca 898100175

article 710000151

article 710000152

article 710000153

article 710000154

article 710000155

article 710000156

article 710000157

article 710000158

article 710000159

article 710000160

article 710000161

article 710000162

article 710000163

article 710000164

article 710000165

article 710000166

article 710000167

article 710000168

article 710000169

article 710000170

article 710000171

article 710000172

article 710000173

article 710000174

article 710000175

article 710000176

article 710000177

article 710000178

article 710000179

article 710000180

article 710000181

article 710000182

article 710000183

article 710000184

article 710000185

article 710000186

article 710000187

article 710000188

article 710000189

article 710000190

article 710000191

article 710000192

article 710000193

article 710000194

article 710000195

article 710000196

article 710000197

article 710000198

article 710000199

article 710000200

psda 438000036

psda 438000037

psda 438000038

psda 438000039

psda 438000040

psda 438000041

psda 438000042

psda 438000043

psda 438000044

psda 438000045

psda 438000046

psda 438000047

psda 438000048

psda 438000049

psda 438000050

psda 438000051

psda 438000052

psda 438000053

psda 438000054

psda 438000055

psda 438000056

psda 438000057

psda 438000058

psda 438000059

psda 438000060

psda 438000061

psda 438000062

psda 438000063

psda 438000064

psda 438000065

psda 438000066

psda 438000067

psda 438000068

psda 438000069

psda 438000070

psda 438000071

psda 438000072

psda 438000073

psda 438000074

psda 438000075

psda 438000076

psda 438000077

psda 438000078

psda 438000079

psda 438000080

psda 438000081

psda 438000082

psda 438000083

psda 438000084

psda 438000085

psda 438000086

psda 438000087

psda 438000088

psda 438000089

psda 438000090

psda 438000091

psda 438000092

psda 438000093

psda 438000094

psda 438000095

psda 438000096

psda 438000097

psda 438000098

psda 438000099

psda 438000100

psda 438000101

psda 438000102

psda 438000103

psda 438000104

psda 438000105

psda 438000106

psda 438000107

psda 438000108

psda 438000109

content-1701