Cara install PhpWord di Yii2

mumpung mood😀, ok kali ini dapat ide dari teman, walau ga ada kasus seprti ini paling ga saya senang coba coba dan berbagi, ok langsung aja,sesuai judul cara installnya, kita memalui composer, caranya bisa liat di githubnya langsung

 

Capture

krn dari komen komen di github phpword versi 0.13 masih dev jadi saya pake 0.12, tinggal ubah “v0.13. ” ke “*” ngambil versi stabil phpwordnya, hasilnya begini

Capture

selajutnya kita tambahkan di controller, yaa saya tambahkan di SiteController aja yaa, btw saya coba ngikuti kasus punya teman yaitu pake Template word yang sudah jadi, contoh saya gunakan bawaan dari sample phpwordnya,seperti dibawa ini

Capture

ok sciptnya begini, saya copas juga langsung dari sampel phpword


public function actionToword(){
$templateProcessor = new \PhpOffice\PhpWord\TemplateProcessor(\Yii::$app->basePath . '\web\resources\Sample_07_TemplateCloneRow.docx' );

// Variables on different parts of document
$templateProcessor->setValue('weekday', date('l')); // On section/content
$templateProcessor->setValue('time', date('H:i')); // On footer
$templateProcessor->setValue('serverName', realpath(__DIR__)); // On header

// Simple table
$templateProcessor->cloneRow('rowValue', 10);

$templateProcessor->setValue('rowValue#1', htmlspecialchars('Sun'));
$templateProcessor->setValue('rowValue#2', htmlspecialchars('Mercury'));
$templateProcessor->setValue('rowValue#3', htmlspecialchars('Venus'));
$templateProcessor->setValue('rowValue#4', htmlspecialchars('Earth'));
$templateProcessor->setValue('rowValue#5', htmlspecialchars('Mars'));
$templateProcessor->setValue('rowValue#6', htmlspecialchars('Jupiter'));
$templateProcessor->setValue('rowValue#7', htmlspecialchars('Saturn'));
$templateProcessor->setValue('rowValue#8', htmlspecialchars('Uranus'));
$templateProcessor->setValue('rowValue#9', htmlspecialchars('Neptun'));
$templateProcessor->setValue('rowValue#10', htmlspecialchars('Pluto'));

$templateProcessor->setValue('rowNumber#1', htmlspecialchars('1'));
$templateProcessor->setValue('rowNumber#2', htmlspecialchars('2'));
$templateProcessor->setValue('rowNumber#3', htmlspecialchars('3'));
$templateProcessor->setValue('rowNumber#4', htmlspecialchars('4'));
$templateProcessor->setValue('rowNumber#5', htmlspecialchars('5'));
$templateProcessor->setValue('rowNumber#6', htmlspecialchars('6'));
$templateProcessor->setValue('rowNumber#7', htmlspecialchars('7'));
$templateProcessor->setValue('rowNumber#8', htmlspecialchars('8'));
$templateProcessor->setValue('rowNumber#9', htmlspecialchars('9'));
$templateProcessor->setValue('rowNumber#10', htmlspecialchars('10'));

// Table with a spanned cell
$templateProcessor->cloneRow('userId', 3);

$templateProcessor->setValue('userId#1', htmlspecialchars('1'));
$templateProcessor->setValue('userFirstName#1', htmlspecialchars('James'));
$templateProcessor->setValue('userName#1', htmlspecialchars('Taylor'));
$templateProcessor->setValue('userPhone#1', htmlspecialchars('+1 428 889 773'));

$templateProcessor->setValue('userId#2', htmlspecialchars('2'));
$templateProcessor->setValue('userFirstName#2', htmlspecialchars('Robert'));
$templateProcessor->setValue('userName#2', htmlspecialchars('Bell'));
$templateProcessor->setValue('userPhone#2', htmlspecialchars('+1 428 889 774'));

$templateProcessor->setValue('userId#3', htmlspecialchars('3'));
$templateProcessor->setValue('userFirstName#3', htmlspecialchars('Michael'));
$templateProcessor->setValue('userName#3', htmlspecialchars('Ray'));
$templateProcessor->setValue('userPhone#3', htmlspecialchars('+1 428 889 775'));

$templateProcessor->saveAs(\Yii::$app->basePath . '\web\results\Sample_07_TemplateCloneRow.docx');
}

Ok langsung deh running, dan hasilnya

Capture

Gimana Ok kan, selamat berkarya kawan

[edit]

untuk versi PHP 7, ada error

Capture

untuk mengatasi Error tersebut, anda harus rename class string pada file string.php yang terdapat di folder G:\xampp\htdocs\advanced\vendor\phpoffice\phpword\src\PhpWord\Shared menjadi stringElement,terus buka file tersebut dan edit, class String jadiStringElement, selanjutnya edit file TemplateProcessor.php yang terdapat di vendor\phpoffice\phpword\src\PhpWord, ubah bagian, use PhpOffice\PhpWord\Shared\String > use PhpOffice\PhpWord\Shared\StringElement; terus ada class String jadi StringElement

 

 

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: