首先使用composer安裝PHPWord
創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)長汀,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
composer require phpoffice/phpword
創(chuàng)建一個(gè)公共方法
function exportWorld()
{
$phpWord = new PhpWord();//實(shí)例化對象
$section = $phpWord-addSection();//新增一個(gè)空白頁
$section-addText('hello');//添加一個(gè)段落文字
$textrun = $section-addTextRun();//普通文字,一個(gè)段落,可以在后面追加文字
$textrun-addText('world');//在上面的文字后面添加文字
$textrun-addTextBreak(1);//文字換行,參數(shù)表示幾行
$section-addTextBreak(1);//段落直接換行
$section-addPageBreak();//添加換行符
//字體樣式
$fstyle = [
'name' ='宋體',? //字體
'size' = 12,? ? //大小
'color'= 'red',? //顏色
'bold' = true'? //加粗
];
//段落樣式
$pstyle = [
'align' ='center',? //對齊方式
'inden' = 2,? ? //縮進(jìn)
];
$section-addText('how are you!',$fstyle,$pstyle);//添加自定義文字樣式和段落樣式的
$objWriter = IOFactory::createWriter($phpWord, 'Word2007');
header('pragma:public');
header("Content-Disposition:attachmeng;filename=hello.doc");//設(shè)置導(dǎo)出保存的文件名
$objWriter-save('php://output');
}
以下舉例一些常用的參數(shù)配置
設(shè)置文檔屬性
$pro = $PHPWord-getProperties();
$pro-setCreator('Jankin');? ? ? ? //創(chuàng)建者
$pro-setCompany('apple');? ? ? ? //公司
$pro-setTitle('computer science');? ? ? ? //標(biāo)題
$pro-setDescription('this is computer science document.');//描述
$pro-setCategory('computer');? ? ? //分類
$pro-setLastModifiedBy('Jankin');? ? //最后修改者
$pro-setCreated( mktime(0, 0, 0, 8, 12, 2019) );//創(chuàng)建時(shí)間
$pro-setModified( mktime(0, 0, 0, 8, 12, 2010) );//修改時(shí)間
$pro-setSubject('computer science');//主題
$pro-setKeywords('science');//關(guān)鍵詞
設(shè)置常用頁面樣式
$pStyle = [
'orientation' = null,//頁面方向,默認(rèn)null是豎向,landscape是橫向
'marginTop' = 800,//上邊距
'marginLeft' = 800,//左邊距
'marginRight' = 800,//右邊距
'marginBottom' = 800,//下邊距
'borderTopSize' = 800,//上邊框尺寸
'borderTopColor' = 'red',//上邊框顏色
'borderLeftSize' = 800,//左邊框尺寸
'borderLeftColor' = 'red',//左邊框顏色
'borderRightSize' = 800,//右邊框尺寸
'borderRightColor' = 'red',//右邊框顏色
'borderBottomSize' = 800,//下邊框尺寸
'borderBottomColor' = 'red',//下邊框顏色
];
設(shè)置常用文本樣式
$pStyle = [
'size' = 12,//文字大小
'name' = '宋體',//字體名稱
'bold' = true,//加粗
'italic' = true,//斜體
'Color' = 'red',//顏色
];
原文鏈接 PHPWord導(dǎo)出Word
PHP 生成 word 文檔,可以考慮以下兩類辦法:
1. 利用 windows 系統(tǒng)提供的 com組件。
這種方法的原理,是使用 php 的調(diào)用 com 組件功能函數(shù),如果系統(tǒng)里安裝過 office 的服務(wù)器,就可以調(diào)用 word.application 。
2. 利用PHP將內(nèi)容寫入doc文件之中。
這種方法,難分為兩種,一種是生成mht格式寫入word,另一種是編寫純 HTML 格式寫入word。這種方法是基于 word 對 html 的良好支持。
如果沒有圖片要導(dǎo)出的話,可以使用以下簡單方式。
?php
header("Content-type:application/vnd.ms-word");
header("Content-Disposition:filename=zgfun.doc");
echo
"要導(dǎo)出的內(nèi)容一。\r\n";
echo
"要導(dǎo)出的第二行。";
?
=============
如果要導(dǎo)出帶圖片的,則需要使用把網(wǎng)頁保存為mht的格式下載。word可以直接打開。
從數(shù)據(jù)庫中讀取存儲(chǔ)了與用戶有關(guān)的資料,然后把這些資料放到一個(gè)以用戶ID(userid)命名的文件夾中,再在這個(gè)文件夾里創(chuàng)建一個(gè)userid.doc文件,用于存放取到的用戶資料,用戶資料包括文字類型、圖片。
$this-assign(別名', $this-model-getall($id));
ob_start();
//設(shè)置為一個(gè)下載類型
header("Content-type:application/octet-steam");
//可以請求網(wǎng)頁實(shí)體的一個(gè)或者多個(gè)子范圍字段
header("Accept-Ranges:bytes");
//將查詢結(jié)果導(dǎo)出到word
header("Content-type:application/vnd.ms-excel");
//把請求所得的內(nèi)容存為一個(gè)文件的時(shí)候提供一個(gè)默認(rèn)的文件名
header("Content-Disposition:filename=名稱-" . date("YmdHis") . ".doc");
//清除緩沖區(qū)內(nèi)容
ob_end_flush();
$this-display('路由頁面');
1首先下一個(gè)phpexcel
2下載完成的是一個(gè)壓縮文件,解壓放到你的項(xiàng)目目錄里
3.下面進(jìn)入代碼;
4.
//引入PHPExcel庫文件(路徑根據(jù)自己情況)
include './phpexcel/Classes/PHPExcel.php';
//創(chuàng)建對象
$excel = new PHPExcel();
//Excel表格式,這里簡略寫了8列
$letter = array('A','B','C','D','E','F','F','G');
//表頭數(shù)組
$tableheader = array('學(xué)號','姓名','性別','年齡','班級');
//填充表頭信息
for($i = 0;$i count($tableheader);$i++) {
$excel-getActiveSheet()-setCellValue("$letter[$i]1","$tableheader[$i]");
}
5.
//表格數(shù)組
$data = array(
array('1','小王','男','20','100'),
array('2','小李','男','20','101'),
array('3','小張','女','20','102'),
array('4','小趙','女','20','103')
);
//填充表格信息
for ($i = 2;$i = count($data) + 1;$i++) {
$j = 0;
foreach ($data[$i - 2] as $key=$value) {
$excel-getActiveSheet()-setCellValue("$letter[$j]$i","$value");
$j++;
}
}
6.
//創(chuàng)建Excel輸入對象
$write = new PHPExcel_Writer_Excel5($excel);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control:must-revalidate, post-check=0, pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-execl");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");;
header('Content-Disposition:attachment;filename="testdata.xls"');
header("Content-Transfer-Encoding:binary");
$write-save('php://output');
7.打開頁面,刷新的時(shí)候會(huì)彈出對話框,讓你選擇文件保存路徑和文件名稱,
8.打開表格后,數(shù)據(jù)和格式跟代碼中的一致,說明PHP導(dǎo)出的Excel是正確的。如果出現(xiàn)錯(cuò)誤,檢查一下你的表格數(shù)組和數(shù)據(jù)數(shù)組吧。