8-6-3
將值套用到樣板的表格中
您沒有觀看影片的權限
請先登入,登入後,確認您的權限後,即可觀看影片。
- 先在 signup.docx 加入表格,如:
- 複製資料的基本用法:
$templateProcessor->cloneRow('欄A', 2);
// 第1筆資料
$templateProcessor->setValue('欄A#1', '值A');
$templateProcessor->setValue('欄B#1', '值B');
$templateProcessor->setValue('欄C#1', '值C');
// 第2筆資料
$templateProcessor->setValue('欄A#2', '值A');
$templateProcessor->setValue('欄B#2', '值B');
$templateProcessor->setValue('欄C#2', '值C');
- 編輯
word.php
製作表格內容並套用之
<?php
use Xmf\Request;
use XoopsModules\Tad_signup\Tad_signup_actions;
use XoopsModules\Tad_signup\Tad_signup_data;
use \PhpOffice\PhpWord\TemplateProcessor;
/*-----------引入檔案區--------------*/
require_once __DIR__ . '/header.php';
require_once XOOPS_ROOT_PATH . '/modules/tadtools/vendor/autoload.php';
/*--略--*/
$signup = Tad_signup_data::get_all($action['id']);
$templateProcessor->cloneRow('id', count($signup));
$i = 1;
foreach ($signup as $id => $signup_data) {
$iteam = [];
foreach ($signup_data['tdc'] as $head => $user_data) {
$iteam[] = $head . ':' . implode('、', $user_data);
}
$data = implode('<w:br/>', $iteam);
if ($signup_data['accept'] === '1') {
$accept = '錄取';
} elseif ($signup_data['accept'] === '0') {
$accept = '未錄取';
} else {
$accept = '尚未設定';
}
$templateProcessor->setValue("id#{$i}", $id);
$templateProcessor->setValue("accept#{$i}", $accept);
$templateProcessor->setValue("data#{$i}", $data);
$i++;
}
header('Content-Type: application/vnd.ms-word');
header("Content-Disposition: attachment;filename={$action['title']}報名名單.docx");
header('Cache-Control: max-age=0');
$templateProcessor->saveAs('php://output');
link to https://github.com/tadlearn/tad_signup/commit/881e8e967ca202e1cd578943b3e3b2402acfc77f \