为了账号安全,请及时绑定邮箱和手机立即绑定

在 Laravel 5.8 的 PHPWord 中生成 Word 文件

在 Laravel 5.8 的 PHPWord 中生成 Word 文件

PHP
莫回无 2022-07-09 16:42:02
我是 Laravel 的初学者,我在我的项目中使用 Laravel 5.8。我有生成PDF文件的功能:public function getCalendar(Request $request){        $month = $request->input('month');        if ($month == null) {            $now = Carbon::now();            $month =  $now->month;        }        $events = $this->frontendGateway->getEventCalendarDownload($request, $month);        $logo = public_path('assets/images/logo3.jpg');        $pdf = \PDF::loadView('prints.events-view', ['events' => $events, 'logo' => $logo]);        $pdf->setOptions(['isPhpEnabled' => true, 'dpi' => 150, 'setIsRemoteEnabled' => true]);        $pdf->setPaper('A4', 'letter');        return $pdf->download('Event Calendar' .  '-' . now()->toDateString() . '.pdf');    }我的刀片:<div id="header" class="fontSize14">    <table width="100%">        <tr>            <td align="left" style="width: 20%;">                <img src="{{ $logo }}" class="logo" />            </td>            <td align="left" style="width: 80%;">                <span class="fontSize19"><b>My name</b></span><br />                street<br />            </td>        </tr>    </table></div><div id="content" class="fontSize11">    <b class="fontSize19">Calendar</b><br /><br />    <table width="100%">        <thead style="background-color: lightgray;">            <tr>                <th>#</th>                <th>Data</th>                <th>Godzina</th>                <th>Nazwa imprezy</th>                <th>Miejsce</th>            </tr>        </thead>        <tbody>            @foreach($events as $event)            @php                $hourFromX = explode(":", $event->hour_from);                $hourToX = explode(":", $event->hour_to);                $hourFrom = $hourFromX['0'].":".$hourFromX['1'];                $hourTo = $hourToX['0'].":".$hourToX['1'];            @endphp            <tr>                <th scope="row">{{ $loop->iteration }}</th>            <td>{{ $event->date_from }}</td>如何将我的数据和视图添加到 Word?
查看完整描述

1 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

对于您需要渲染并分配给变量的视图:


$view_content = View::make('prints.events-view', ['events' => $events, 'logo' => $logo])->render();

然后通过这个库创建一个word文档并将内容附加到


// Creating the new document...

$phpWord = new \PhpOffice\PhpWord\PhpWord();


/* Note: any element you append to a document must reside inside of a Section. */


 // Adding an empty Section to the document...

$section = $phpWord->addSection();


// Adding Text element to the Section having font styled by default...

$section->addText($view_content);


// Saving the document as HTML file...

$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');

$file_name = 'event_calendar_' .  '-' . now()->toDateString() . '.doc';


$objWriter->save(public_path($file_name));

然后文件的 URL 将是 url($file_name)


查看完整回答
反对 回复 2022-07-09
  • 1 回答
  • 0 关注
  • 211 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信