Skip to content

Commit 0ecd972

Browse files
committed
using package to export excel from anggota table, please run composer install
1 parent 5d9a2c7 commit 0ecd972

File tree

4 files changed

+718
-6
lines changed

4 files changed

+718
-6
lines changed

app/Filament/Resources/Anggotas/Pages/ListAnggotas.php

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,14 @@
33
namespace App\Filament\Resources\Anggotas\Pages;
44

55
use App\Filament\Resources\Anggotas\AnggotaResource;
6+
use Carbon\Carbon;
67
use Filament\Actions\CreateAction;
8+
// use Filament\Forms\Components\Builder;
79
use Filament\Resources\Pages\ListRecords;
10+
use pxlrbt\FilamentExcel\Columns\Column;
11+
use pxlrbt\FilamentExcel\Actions\ExportAction;
12+
use pxlrbt\FilamentExcel\Exports\ExcelExport;
13+
use Illuminate\Database\Eloquent\Builder;
814

915
class ListAnggotas extends ListRecords
1016
{
@@ -14,6 +20,45 @@ protected function getHeaderActions(): array
1420
{
1521
return [
1622
CreateAction::make(),
23+
ExportAction::make()
24+
->label('Ekspor ke Excel')
25+
->exports([
26+
ExcelExport::make()
27+
->fromTable()
28+
->modifyQueryUsing(function (Builder $query) {
29+
return $query->whereHas('user', function (Builder $userQuery) {
30+
$userQuery->whereHas('roles', function (Builder $roleQuery) {
31+
$roleQuery->where('name', 'Anggota');
32+
});
33+
});
34+
})
35+
->withFilename('Data Anggota - ' . date('Y-m-d'))
36+
->withColumns([
37+
Column::make('nama')->heading('Nama'),
38+
Column::make('kelamin')->heading('Jenis Kelamin'),
39+
Column::make('tempat_tanggal_lahir')
40+
->heading('Tempat, Tanggal Lahir')
41+
->formatStateUsing(function ($record) {
42+
if (empty($record->tanggal_lahir)) {
43+
return $record->tempat_lahir ?? null;
44+
}
45+
$tanggal = Carbon::parse($record->tanggal_lahir)
46+
->locale('id')
47+
->translatedFormat('d F Y');
48+
return $record->tempat_lahir . ', ' . $tanggal;
49+
}),
50+
Column::make('alamat')->heading('Alamat'),
51+
Column::make('no_wa')->heading('No. WA'),
52+
Column::make('jurusan.nama_jurusan')->heading('Jurusan'),
53+
Column::make('tahun_masuk_kuliah')->heading('Masuk Kuliah'),
54+
Column::make('tahun_lk1')->heading('Tahun LK1'),
55+
Column::make('tahun_lk2')->heading('Tahun LK2'),
56+
Column::make('tahun_lk3')->heading('Tahun LK3'),
57+
Column::make('tahun_lkk')->heading('Tahun LKK'),
58+
Column::make('komisariat.nama')->heading('Komisariat'),
59+
Column::make('prestasi')->heading('Prestasi'),
60+
])
61+
]),
1762
];
1863
}
1964
}

app/Filament/Resources/Anggotas/Tables/AnggotasTable.php

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace App\Filament\Resources\Anggotas\Tables;
44

5+
use Carbon\Carbon;
56
use Filament\Tables;
67
use Filament\Tables\Table;
78
use Filament\Tables\Columns\TextColumn;
@@ -26,12 +27,21 @@ public static function configure(Table $table): Table
2627
->label('Jenis Kelamin')
2728
->sortable(),
2829

29-
// Tempat & Tanggal Lahir
3030
TextColumn::make('tempat_lahir')
31-
->label('Tempat Lahir'),
32-
TextColumn::make('tanggal_lahir')
33-
->label('Tanggal Lahir')
34-
->date('d M Y'),
31+
->label('Tempat, Tanggal Lahir')
32+
->formatStateUsing(function ($record) {
33+
// Jika tanggal lahir kosong, hanya tampilkan tempat lahir
34+
if (empty($record->tanggal_lahir)) {
35+
return $record->tempat_lahir ?? '-';
36+
}
37+
// Format tanggal ke Bahasa Indonesia
38+
$tanggal = Carbon::parse($record->tanggal_lahir)
39+
->locale('id')
40+
->translatedFormat('d F Y'); // 'F' untuk nama bulan lengkap
41+
// Gabungkan keduanya
42+
return $record->tempat_lahir . ', ' . $tanggal;
43+
})
44+
->searchable(['tempat_lahir', 'tanggal_lahir']), // Buat bisa dicari
3545

3646
// Alamat
3747
TextColumn::make('alamat')

composer.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
"laravel/framework": "^12.0",
1212
"laravel/tinker": "^2.10.1",
1313
"livewire/volt": "^1.7.0",
14+
"pxlrbt/filament-excel": "^3.1",
1415
"spatie/laravel-permission": "^6.21"
1516
},
1617
"require-dev": {

0 commit comments

Comments
 (0)