Laravel-excel: [질문] μƒμ„±λœ 엑셀을 V 3.1둜 첨뢀

에 λ§Œλ“  2018λ…„ 11μ›” 22일  Β·  8μ½”λ©˜νŠΈ  Β·  좜처: Maatwebsite/Laravel-Excel

버전

  • PHP 버전: 7.1.7
  • 라라벨 버전: 5.7.13
  • νŒ¨ν‚€μ§€ 버전: 3.1

μ„€λͺ…

μ•ˆλ…•ν•˜μ‹­λ‹ˆκΉŒ,
버전 3.1μ—μ„œ μƒμ„±λœ μ—‘μ…€ νŒŒμΌμ„ μ–΄λ–»κ²Œ 첨뢀할 수 μžˆλ‚˜μš”?

이전 버전(v.2)μ—μ„œλŠ” "->download()" 없이 create λ©”μ†Œλ“œλ₯Ό 톡해 κ°€λŠ₯ν–ˆμŠ΅λ‹ˆλ‹€.

이 λ°©λ²•μœΌλ‘œ μ‹œλ„ν•˜κ³  μžˆμ§€λ§Œ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

$filename = 'text.xlsx';
$attachment = Excel::download(new TestExport(), $filename);

\Mail::to('[email protected]')->send(new SendMail($attachment));

# Inside SendMail.php
public function __construct($attachment)
{
    $this->attachment = $attachment;
}

public function build()
{

    $mail = $this->from('[email protected]')
        ->subject('test attachment')
        ->markdown('emails.test_mail')
        ->attach($this->attachment);

    return $mail;
}

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

Excel ν΄λž˜μŠ€μ™€ 보호된 λ©”μ„œλ“œλ₯Ό μˆ˜μ •ν•˜μ§€ μ•Šκ³ λ„ μž‘λ™ν•˜λ„λ‘ ν•˜λŠ” μ†”λ£¨μ…˜μ„ μ°Ύμ•˜μŠ΅λ‹ˆλ‹€. 당신은 호좜 ν•  수 μžˆμŠ΅λ‹ˆλ‹€ getFile() λ‘œλΆ€ν„° Excel::download(/**/) . μ½”λ“œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

public function build()
    {
        return $this->markdown('emails.report')
            ->attach(
                Excel::download(
                    new AuditReport($this->audit), 
                    'report.xlsx'
                )->getFile(), ['as' => 'report.xlsx']
            );
    }

Excel::download() λŠ” BinaryFileResponse λ₯Ό λ°˜ν™˜ν•˜λ―€λ‘œ 직접 μž‘λ™ν•˜μ§€ μ•Šμ§€λ§Œ νŒŒμΌμ„ κ°€μ Έμ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

도움이 되기λ₯Ό λ°”λžλ‹ˆλ‹€ πŸ˜ƒ

λͺ¨λ“  8 λŒ“κΈ€

λ‚˜λŠ” λ˜‘κ°™μ€ 질문이 μžˆμŠ΅λ‹ˆλ‹€.

파일 λ‚΄μ—μ„œ protectedμ—μ„œ public export() λ©”μ„œλ“œλ‘œ λ³€κ²½λ˜λŠ” μ†”λ£¨μ…˜μ„ μ°Ύμ•˜μŠ΅λ‹ˆλ‹€.

maatwebsite\excel\src\Excel.php

ν–‰: 166

이런 μ‹μœΌλ‘œ μ½”λ“œλŠ” λ‹€μŒκ³Ό 같을 수 μžˆμŠ΅λ‹ˆλ‹€.
````
$attachment = μ—‘μ…€::export(new TestExport(), $filename);

[...]

$mail = $this->from('[email protected]')
->제λͺ©('μ²¨λΆ€νŒŒμΌ ν…ŒμŠ€νŠΈ')
->λ§ˆν¬λ‹€μš΄('emails.test_mail')
->attach($this->attachment, , ['as' => $filename]);
````

Excel ν΄λž˜μŠ€μ™€ 보호된 λ©”μ„œλ“œλ₯Ό μˆ˜μ •ν•˜μ§€ μ•Šκ³ λ„ μž‘λ™ν•˜λ„λ‘ ν•˜λŠ” μ†”λ£¨μ…˜μ„ μ°Ύμ•˜μŠ΅λ‹ˆλ‹€. 당신은 호좜 ν•  수 μžˆμŠ΅λ‹ˆλ‹€ getFile() λ‘œλΆ€ν„° Excel::download(/**/) . μ½”λ“œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

public function build()
    {
        return $this->markdown('emails.report')
            ->attach(
                Excel::download(
                    new AuditReport($this->audit), 
                    'report.xlsx'
                )->getFile(), ['as' => 'report.xlsx']
            );
    }

Excel::download() λŠ” BinaryFileResponse λ₯Ό λ°˜ν™˜ν•˜λ―€λ‘œ 직접 μž‘λ™ν•˜μ§€ μ•Šμ§€λ§Œ νŒŒμΌμ„ κ°€μ Έμ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

도움이 되기λ₯Ό λ°”λžλ‹ˆλ‹€ πŸ˜ƒ

Excel ν΄λž˜μŠ€μ™€ 보호된 λ©”μ„œλ“œλ₯Ό μˆ˜μ •ν•˜μ§€ μ•Šκ³ λ„ μž‘λ™ν•˜λ„λ‘ ν•˜λŠ” μ†”λ£¨μ…˜μ„ μ°Ύμ•˜μŠ΅λ‹ˆλ‹€. 당신은 호좜 ν•  수 μžˆμŠ΅λ‹ˆλ‹€ getFile() λ‘œλΆ€ν„° Excel::download(/**/) . μ½”λ“œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

public function build()
    {
        return $this->markdown('emails.report')
            ->attach(
                Excel::download(
                    new AuditReport($this->audit), 
                    'report.xlsx'
                )->getFile(), ['as' => 'report.xlsx']
            );
    }

Excel::download() λŠ” BinaryFileResponse λ₯Ό λ°˜ν™˜ν•˜λ―€λ‘œ 직접 μž‘λ™ν•˜μ§€ μ•Šμ§€λ§Œ νŒŒμΌμ„ κ°€μ Έμ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

도움이 되기λ₯Ό λ°”λžλ‹ˆλ‹€.

파일이 λ””μŠ€ν¬μ— 기둝될 λ•Œ μ„œλ²„μ˜ tmp 디렉토리에 μ£Όμ˜ν•˜μ‹­μ‹œμ˜€.

λ‚΄λ³΄λ‚΄κΈ°λŠ” 곡개 방법이어야 ν•©λ‹ˆλ‹€.

μ„œλ‘œ λ„μ™€μ€˜μ„œ κ³ λ§ˆμ›Œμš”! πŸ‘

λ‹€μŒμ€ νŒŒμΌμ„ λ‹€μš΄λ‘œλ“œ/μƒμ„±ν•˜μ§€ μ•Šκ³  μˆ˜ν–‰ν•˜λŠ” λ°©λ²•μž…λ‹ˆλ‹€.

use Maatwebsite\Excel\Excel as BaseExcel;
use Maatwebsite\Excel\Facades\Excel;

...

$filename = "{$this->po->po_memo}.xlsx";
$attachment = Excel::raw(new PurchaseOrderLinesExport($this->po), BaseExcel::XLSX);
$subject = "Purchase Order Invoice"

return $this->from($this->po->employee->email)
            ->subject($subject)
            ->view('emails.pom.send')
            ->text('emails.pom.send')
            ->attachData($attachment, $filename);

Excel ν΄λž˜μŠ€μ™€ 보호된 λ©”μ„œλ“œλ₯Ό μˆ˜μ •ν•˜μ§€ μ•Šκ³ λ„ μž‘λ™ν•˜λ„λ‘ ν•˜λŠ” μ†”λ£¨μ…˜μ„ μ°Ύμ•˜μŠ΅λ‹ˆλ‹€. 당신은 호좜 ν•  수 μžˆμŠ΅λ‹ˆλ‹€ getFile() λ‘œλΆ€ν„° Excel::download(/**/) . μ½”λ“œλŠ” λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

public function build()
    {
        return $this->markdown('emails.report')
            ->attach(
                Excel::download(
                    new AuditReport($this->audit), 
                    'report.xlsx'
                )->getFile(), ['as' => 'report.xlsx']
            );
    }

Excel::download() λŠ” BinaryFileResponse λ₯Ό λ°˜ν™˜ν•˜λ―€λ‘œ 직접 μž‘λ™ν•˜μ§€ μ•Šμ§€λ§Œ νŒŒμΌμ„ κ°€μ Έμ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€.

슀마일리 도움이 되길 λ°”λžλ‹ˆλ‹€

덕뢄에 μ €μ—κ²Œ νš¨κ³Όμ μ΄μ—ˆμŠ΅λ‹ˆλ‹€.

use Maatwebsite\Excel\Excel as BaseExcel;
use Maatwebsite\Excel\Facades\Excel;

...

$filename = "{$this->po->po_memo}.xlsx";
$attachment = Excel::raw(new PurchaseOrderLinesExport($this->po), BaseExcel::XLSX);

정말 κ°μ‚¬ν•©λ‹ˆλ‹€. λ‚˜λ₯Ό μœ„ν•œ 일이야

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰