从数据库生成模板
generate template from database
我正在尝试使用 PhpWord 库使用 Laravel 生成 Word 文件。
我搜索了这个库的文档以及它是如何工作的,我发现我应该已经有一个模板可以使用了。
但在我的例子中,我应该从数据库创建这个模板,然后生成这个 word 格式的文件。
我正在尝试以下代码:
$preambule = DB::table('modele_contrat')->select('preambule')->where('id_modele_contrat', $value['id_modele_contrat'])->value('preambule');
$phpWord = new \PhpOffice\PhpWord\PhpWord();
$section = $phpWord->addSection();
$text = $section->addText($preambule);
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save('testt.docx');
return response()->download(public_path('testt.docx'));
但在这种情况下文件无法打开并出现错误,在文件内容中检测到问题。
但是当我更改这一行的代码时:
$text = $section->addText($preambule);
至:
$text = $section->addText("hello");
文件正常打开。
当我执行 dd($preambule) 查看这个变量的值时,我得到了存储在数据库列中的值,一个 varchar 元素。
$preambule = DB::table('modele_contrat')->where('id_modele_contrat', $value['id_modele_contrat'])->value('preambule');
$phpWord = new \PhpOffice\PhpWord\PhpWord();
$sectionStyle = array(
//'orientation' => 'landscape',
'marginTop' => 600,
'marginRight' => 600,
'marginBottom' => 600,
'marginLeft' => 600,
//'text-align' => 'right',
'footerHeight' => 100
);
$section = $phpWord->addSection($sectionStyle);
$section->addText($preambule);
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
try {
$objWriter->save(storage_path('preambule.docx'));
} catch (Exception $e) {
}
return response()->download(storage_path('preambule.docx'));
我正在尝试使用 PhpWord 库使用 Laravel 生成 Word 文件。
我搜索了这个库的文档以及它是如何工作的,我发现我应该已经有一个模板可以使用了。
但在我的例子中,我应该从数据库创建这个模板,然后生成这个 word 格式的文件。
我正在尝试以下代码:
$preambule = DB::table('modele_contrat')->select('preambule')->where('id_modele_contrat', $value['id_modele_contrat'])->value('preambule');
$phpWord = new \PhpOffice\PhpWord\PhpWord();
$section = $phpWord->addSection();
$text = $section->addText($preambule);
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
$objWriter->save('testt.docx');
return response()->download(public_path('testt.docx'));
但在这种情况下文件无法打开并出现错误,在文件内容中检测到问题。
但是当我更改这一行的代码时:
$text = $section->addText($preambule);
至:
$text = $section->addText("hello");
文件正常打开。
当我执行 dd($preambule) 查看这个变量的值时,我得到了存储在数据库列中的值,一个 varchar 元素。
$preambule = DB::table('modele_contrat')->where('id_modele_contrat', $value['id_modele_contrat'])->value('preambule');
$phpWord = new \PhpOffice\PhpWord\PhpWord();
$sectionStyle = array(
//'orientation' => 'landscape',
'marginTop' => 600,
'marginRight' => 600,
'marginBottom' => 600,
'marginLeft' => 600,
//'text-align' => 'right',
'footerHeight' => 100
);
$section = $phpWord->addSection($sectionStyle);
$section->addText($preambule);
$objWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, 'Word2007');
try {
$objWriter->save(storage_path('preambule.docx'));
} catch (Exception $e) {
}
return response()->download(storage_path('preambule.docx'));