Sử dụng excel trong laravel
Xin chào mọi người,hiện mình đang làm export từ database ra excel trong laravel, đang gặp phải 1 vấn đề là khi export chỉ cần lấy thông tin của 1 số trường thôi ,k cần lấy ra khóa ngoại của bảng ạ.![] Mình muốn xuất ra excel thông tin của tất cả các trường trừ khóa phụ,
3 CÂU TRẢ LỜI
bạn có thể xem ở đây nhé https://docs.laravel-excel.com/3.1/exports/collection.html Như trong docs thì đang chọn all, nhưng bạn muốn select cột nào thì chỉ cần đổi câu truy vấn là được. Và mình có 1 góp ý là khi tạo migration, việc liên kết khóa ngoại và khóa chính với nhau không sai nhưng nếu không quá cần thiết thì không nên làm vậy, vì như thế sẽ gây rất nhiều khó khăn trong việc thao tác với dữ liệu
vâng ,cảm ơn ạ,em làm được rồi ạ
Nếu bạn dùng Maatwebsite thì bạn có thể tham khảo ví dụ sau của mình, trong ví dụ mình chỉ lấy ra username với email
<?php
namespace App\Exports;
use App\Models\User;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
class UserExport implements FromCollection, WithHeadings
{
public function collection()
{
return User::query()->get(['username', 'email']);
}
//Thêm hàng tiêu đề cho bảng
public function headings() :array {
return ["Tên tài khoản", "Email"];
}
}
Trường hợp dùng query:
public function query(): Builder
{
return User::query()->select(['username', 'email']);
}
tks ban,hiện mình lấy ra được rồi à,nếu mình lấy thông tin của record trong data mà có type = 1 thì sử lý như nào ạ(mình đang làm thu chi trong ví,muốn excel ra mục chi và thu)
@khanh1234 nếu vậy thì sẽ viết ra 2 file export và thêm điều kiện ở mỗi file
public function collection() {
return User::query()->where('type', 1)->get(['username', 'email']);
}
@namduong3699 cảm ơn bạn ,mình làm được rồi ạ
@namduong3699 nếu về thời gian thì mình có sử lý được lấy ra time theo tháng không ạ,vd:tại thời điểm hiện tại lấy ra được thời gian đầu và cuối tháng trước đó
@khanh1234 bạn thêm điều kiện này vào nhé
public function collection() {
return User::query()->whereMonth(
'created_at', '=', Carbon::now()->subMonth()->month
)->get(['username', 'email']);
}
@namduong3699 nó ra file trắng bạn ạ,ví dụ ngày hôm nay là 7/4 lấy được ngày cuối tháng trước là 31/3
ngày đầu tháng trước là 1/3
rồi lấy các thu chi được tạo ra giới hạn trong 2 ngày đó bạn ạ
@namduong3699 Bạn ơi,mình lấy được tháng trước rồi ,mình muốn lấy các tháng hiện tại có trong data,nếu giờ là tháng 4,mốc là tháng 12 năm ngoái,mà trong data có t1,t2, hoặc t1,t3 or t1,2,3 thì sử lý như nào ạ,mình cảm ơn