์ด ์ฝ๋๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
<html>
<h1>{{ $report->title }}</h1>
<br/>
<h2>{{ $report->description }}</h2>
<br/>
<p>{{ __('excel.dateLabel') }} {{ $date }}</p>
<br/>
<table>
<thead>
<tr>
<th>{{ __('excel.firstColumn') }}</th>
<th>{{ __('excel.secondColumn') }}</th>
<th>{{ __('excel.thirdColumn') }}</th>
<th>{{ __('excel.fourthColumn') }}</th>
</tr>
</thead>
</table>
</html>
๊ทธ๋ฌ๋ ํด๋์ค ๋๋ ์คํ์ผ ํ๊ทธ๋ฅผ ์ฌ์ฉํ ๋๋ ๋ฐฐ๊ฒฝ์ ์์ ๋ง ์ฌ์ฉํฉ๋๋ค. ์์, ๊ธ๊ผด ๋๊ป .... ์๋ํ์ง ์์ต๋๋ค.
<html>
<h1>{{ $report->title }}</h1>
<br/>
<h2>{{ $report->description }}</h2>
<br/>
<p>{{ __('excel.dateLabel') }} {{ $date }}</p>
<br/>
<table>
<thead>
<tr>
<th style="font-weight : bold">{{ __('excel.firstColumn') }}</th>
<th>{{ __('excel.secondColumn') }}</th>
<th>{{ __('excel.thirdColumn') }}</th>
<th>{{ __('excel.fourthColumn') }}</th>
</tr>
</thead>
</table>
</html>
3.0์ ๋ ์ด์ ๋ธ๋ ์ด๋ ๋ทฐ๋ฅผ ํตํ ์คํ์ผ๋ง์ ์ง์ํ์ง ์์ต๋๋ค. ์ด ์์
์ ์ํํ๋ ค๋ฉด PhpSpreadsheet ๋ฉ์๋ $worksheet->getStyle('B2:G8')
๋ฅผ ์ฌ์ฉํด์ผํฉ๋๋ค.
๋ฌธ์์์ PhpSpreadsheet ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ๋ฐฉ๋ฒ์ ์ฝ์ผ์ญ์์ค : https://laravel-excel.maatwebsite.nl/docs/3.0/export/extending
@patrickbrouwers ์ฌ์ฉ
@ shadoWalker89 ๊ทธ๊ฒ์ ๋ง์ ๋ฌธ์ ๋ฅผ ์ผ์ผ์ผฐ๊ณ ์ ์งํ๊ธฐ ์ด๋ ค์ ์ต๋๋ค. ์ฑ๋ฅ ์ ํ๋ ์์๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ๊ฒฐ์ฝ ์ฌ์ฉํ์ง ์์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ทธ๊ฒ์ ๋ค์ ๊ตฌํํ์ง ์์ ๊ฒ์ด๋ฉฐ ๋ชจ๋์๊ฒ PhpSpreadsheet ์คํ์ผ๋ง ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋๋ก ์ ์ํฉ๋๋ค.
์ปค๋ฎค๋ํฐ์ ๋๊ตฐ๊ฐ๊ฐ ๊ทธ๊ฒ์ ์ ์งํ๊ณ ์ถ๋ค๋ฉด HtmlReader ์ฉ ํจํค์ง๋ฅผ ๋ง๋๋ ๊ฒ์ด ์ข์ต๋๋ค. HtmlReader๋ฅผ ์ฌ์ฉ์ ์ง์ / ์์ฒด ๊ตฌํ์ผ๋ก ๋ฐ๊ฟ ์์๊ฒ๋์ด ๊ธฐ์ฉ๋๋ค.
๋๋ ๊ทธ๊ฒ์ ๋ค์ ์ด๊ณ ๋๊ตฐ๊ฐ๊ฐ ๋๊ณ ์ถ์ดํ๋์ง ๋ณผ ๊ฒ์ด๋ค.
๋ณด๊ธฐ์์ ํ์ผ์ ๋ง๋ค๋ ค๊ณ ํ์ง๋ง ์ผ๋ถ ์ ์ ๋๊บผ์ด ํ ๋๋ฆฌ๋ฅผ ์ ์ฉํ๋ ค๊ณ ํฉ๋๋ค. https://laravel-excel.maatwebsite.nl/docs/3.0/export/extending ์์ ์์ ๋ฅผ ์ฌ์ฉํ๊ณ
๊ทธ๋ฐ ๊ฒ์ ๋ฌ์ฑํ๋ ๋ฐฉ๋ฒ์ ๋ ๋ช ํํ๊ฒํ๊ธฐ ์ํด ๊ฑฐ๊ธฐ์ ์ค์ ์ถ๊ฐ ํ ์ ์์ต๋๊น? ๋๋ ๋ง์ ์ฌ๋๋ค์ด ๊ทธ๋ฌํ ์๋ก๋ถํฐ ์ด์ต์ ์ป์ ๊ฒ์ด๋ผ๊ณ ํ์ ํฉ๋๋ค.
๋๋ ๋ชจ๋ ๋ฌธ์๋ฅผ ์ฌ๋ฌ ๋ฒ ์ดํด ๋ณด์์ง๋ง ์ฌ์ ํ ๋์ฒํ๋ค :(
๊ฐ์ฌ!
@LastxTemplar PhpSpreadsheet (https://phpspreadsheet.readthedocs.io/en/develop/)์ ๋ฌธ์๋ฅผ ํ์ธํด์ผํฉ๋๋ค. PhpSpreadsheet๊ฐ ์ ๊ณตํ๋ ๋ชจ๋ ๋ฐฉ๋ฒ์ ๋ค์ ๋ฌธ์ํ ํ ์๋ ์์ต๋๋ค.
์ข์, ์ ์ด๋ ๋ฌธ์์ ์์ ๋ก ๋ทฐ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ ์ค๋ ๋ฐฉ๋ฒ์ ๋ํ ํฌ์ธํฐ๋ฅผ ์ ๊ณต ํ ์ ์์ต๋๊น? phpspreadsheet์ laravel-excel ๋ฌธ์๋ฅผ ๋๋ํ ์ฝ๊ณ ์๋๋ฐ ์ด๋ป๊ฒ ํ ์ ์๋์ง ์ดํดํ๊ธฐ๊ฐ ์ฌ์ ํ ์ด๋ ต์ต๋๋ค.
๋์ํ๋ค๋ฉด ๋ฌธ์์ ์ข ๋ ์ค์ฉ์ ์ธ ์์ ๋ฅผ ์ ๊ณตํ๋ ค๊ณ ๋ ธ๋ ฅํ ๊ฒ์ ๋๋ค. ํ์ฌ ๋ฌธ์๋ ๋งค์ฐ ๊ธฐ์ ์ ์ด๋ฉฐ ์ ๋ณด๊ฐ ์ฃผ์ด์ง๋ฉด ๋น ๋ฅธ ์์์ ์ป๊ธฐ๊ฐ ์ด๋ ต์ต๋๋ค.
๋ฌด์จ ๋ง์ธ์ง ๋ชจ๋ฅด๊ฒ ์ด์? https://laravel-excel.maatwebsite.nl/docs/3.0/export/from-view ๋ ๋งค์ฐ ์ค์ฉ์ ์ ๋๊น?
HTMLReader์์ด Blade์์ ๋์ ๋ณด๊ธฐ๋ฅผ ์ด๋ป๊ฒ ์คํ์ผ๋งํฉ๋๊น? ํ์ฅ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ๋ด ๋ฐ์ดํฐ๊ฐ ์ข์ ํ์ด๋ ์ด๋ก ์ด๋์ ์๋์ง ์ ์ ์๊ธฐ ๋๋ฌธ์ : /
๋ด๋ณด๋ด๊ณ , ์ด๊ณ , ์ขํ๋ฅผ ํ์ธํ๊ณ , ์ขํ๋ฅผ ์ฌ์ฉ ํ์๊ฒ ์ต๋๊น? ๋์๊ฒ ๋ก์ผ ๊ณผํ์ฒ๋ผ ๋ค๋ฆฌ์ง ์์ต๋๊น?
https://phpspreadsheet.readthedocs.io/en/develop/topics/recipes/#styles
๋ชจ๋ ๋ด๋ณด๋ด๊ธฐ๊ฐ ๊ณ ์ ํ๊ธฐ ๋๋ฌธ์ ์ขํ๋ฅผ ํ์ธํ๊ธฐ ์ํด ๋ด๋ณด๋ด๊ณ ์ด ์ ์์ต๋๋ค.
์ด ๊ฒฝ์ฐ ์ ๊ฐ ๋์ธ ์์๋ ์ผ์ ์์ต๋๋ค. ๋น์ ์ ๊ทธ๊ฒ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ๋ฌด์ธ๊ฐ๋ฅผ ์ง์ ๊ฐ๋ฐํด์ผ ํ ๊ฒ์ ๋๋ค. ์์ ์ธ๊ธํ๋ฏ์ด : ๋๊ตฌ๋ ์ด์ HtmlReader๋ฅผ ์์ ๋กญ๊ฒ ์ ์ง ๊ด๋ฆฌ ํ ์ โโ์์ต๋๋ค.
h1 ๋๋ h2 ๋๋ h3์ด ์๋ํ๋ ์ด์ ๋ ๋ฌด์์ ๋๊น? :)
PhpSpreadsheet์ HtmlReader๋ฅผ ํ์ธํ์ญ์์ค. ๊ฑฐ๊ธฐ์์๋ ๋ชจ๋ ๊ฒ์ด ์ฆ์ ์ง์๋ฉ๋๋ค. ์ฐ๋ฆฌ๋ ์ฌ์ฉ์ ์ ์๋ฅผ ๊ตฌํํ์ง ์์์ต๋๋ค.
PhpSpreadsheet์ HtmlReader๋ ์ด๊ฒ์ ์ฐธ์กฐํ์ง ์์ต๋๋ค. URL์ด ์์ต๋๊น? PhpSpreadsheet ์น ์ฌ์ดํธ์๋ ์ ํ ์ฌํญ์ด ์์ง๋ง ๋์ด๋์ด ์์ง ์์ต๋๋ค.
๊ณ ๋ง์์ :)
๋๋ ์ด์ด ์ข์ ์ฌ๋์ด ์๋๋๋ค : / ์คํ์ผ ์์์ Excel์์ ์๋ํ์ง ์์ต๋๋ค (macOS ๋ฐ Windows) macOS ๋ฐ Numbers์ ๋ฏธ๋ฆฌ๋ณด๊ธฐ์์๋ง ์๋ํฉ๋๋ค : /
์๋ ํ์ธ์.
๋ฌด์จ ๋ง์ธ์ง ๋ชจ๋ฅด๊ฒ ์ด์? https://laravel-excel.maatwebsite.nl/docs/3.0/export/from-view ๋ ๋งค์ฐ ์ค์ฉ์ ์ ๋๊น?
์ข ๋ ๊ตฌ์ฒด์ ์ธ ์ฌ์ฉ ์ฌ๋ก ์์์ฒ๋ผ ์ค์ฉ์ ์ด๋ผ๋ ๋ป์ด์์ต๋๋ค. ์๋ฅผ ๋ค์ด FromView ๊ด์ฌ์ฌ๋ฅผ ์ฌ์ฉํ๊ณ ๋์ค์ A3์์ D5๊น์ง์ ์ ์ ์คํ์ผ์ ์ถ๊ฐํ๋ ค๋ฉด ์ด๋ป๊ฒํด์ผํฉ๋๊น? FromView ๋ฐ WithEvents ๋ฌธ์ ๋ฅผ ๋์์ ์ถ๊ฐ ํ ์ ์์ต๋๊น?
์, ๊ฑฐ์ ๋ชจ๋ ๊ด์ฌ์ฌ๋ฅผ ๋์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ฌธ์์๋ ๋ฌธ์ ๋ฅผ ๊ฒฐํฉํ๋ ์ฌ๋ฌ ์๊ฐ ์์ต๋๋ค.
๋์ ์ฃผ์
์ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค.ํ์ง๋ง ์ ์๊ฒ๋ ํจ๊ณผ๊ฐ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ญ๊ฐ ๋น ์ง ๊ฒ ๊ฐ์ต๋๋ค.
์ด๋ค ์์ ์์ ์๊ฐ์ด ์๋ค๋ฉด์ด ์์ ์ ์ดํด๋ณผ ์ ์์ต๋๊น?
์๋ง๋ ๋๋ ๊ฑฐ๊ธฐ์์ ๋ถ๋ช ํ ๊ฒ์ ๋์น๊ณ ์๊ณ , MS Excel๋ก ์์ฑ ๋ ํ์ผ์ ์ด ๋ ๋ฐฉํฅ์ด ์ฌ์ ํ ์ธ๋ก ์ธ ๊ฒฝ์ฐ ์ ์ด๋ ์ผ๋ถ ํ์์ ์์์๋ณด๊ณ ์ถ์ต๋๋ค.
์์ ์ ์ด๋ฒคํธ ํด๋์ค์ ๋ค์ ์คํ์ด์ค๋ฅผ ๊ฐ์ ธ ์ค์ง ์์ต๋๋ค. ๊ทธ๋์ ๊ทธ๊ฒ์ ๋ ผ๋ฆฌ์ ์ผ๋ก ์๋ํ์ง ์์ต๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ์ด๋ฒคํธ ๋ชฉ๋ก์ https://laravel-excel.maatwebsite.nl/docs/3.0/export/extending ์ ์ฐธ์กฐ
๊ณ ๋ง์์ Patrick, ๊ทธ๊ฒ ํธ๋ฆญ์ํ์ต๋๋ค!
์๋ฌด๋ ์ด๊ฒ์ ์ง์ํ๊ธฐ๋ฅผ ์ด๋งํ์ง ์๊ธฐ ๋๋ฌธ์ ์ด๊ฒ์ ๋ซ๋ ๊ฒ;)
์๋ ํ์ธ์, ๊ตต์ ์คํ์ผ์ ๋์ ํ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌ ํ ์ โโ์์ต๋๊น? ๊ทธ๋ฃนํ ๋ ํ์ ๋ช ๊ฐ ๋์ดํด์ผํ๊ณ ๊ฐ ๊ทธ๋ฃน ์์ ๊ตต์ ๋ฒ๋ก๋ฅผ ์ถ๊ฐํด์ผํฉ๋๋ค. ๋ฌธ์ ๋ ๊ทธ๋ฃน๋น ํ ์๋ฅผ ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ํ ์์น๋ฅผ ์ ํํ ์์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ ์๋ํ์ง ์์ต๋๋ค.
$event->sheet->getStyle('A1:N1')->applyFromArray([
'font' => [
'bold' => true
]
]);
์คํ์ผ์ ๋งค์ฐ ์ฝ๊ฒ ์ค์ ํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒํ๋ ค๋ฉด ๊ฐ th ๋๋ td ํ๊ทธ์ ์คํ์ผ์ ์ค์ ํ์ญ์์ค. ์๋ฅผ ๋ค์ด, ์คํ์ผ์ ๋ณ์์ ์ฐ๊ณ ํ๊ทธ์ ์คํ์ผ ์์ฑ์ ๋ณ์๋ฅผ ์ฝ์ ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ํ ๋๋ฆฌ ๋ฐ ๊ธฐํ ์คํ์ผ์ ์ฝ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค
๋ชจ๋ ๋งคํฌ๋ก๋ฅผ ์ด๋์ ๋ฃ์ ๊ฒ์ ์ ์ํฉ๋๊น?
์๋น์ค ์ ๊ณต์