使用PHPWORD 生成word文檔


昨日使用了PHPword生成WORD文檔,折騰了半天,終於折騰出來了。 特此記錄一下,分享給大家使用。

1、下載最新PHPWORD 類庫 http://phpword.codeplex.com/

2、解決中文亂碼問題。

a) 情況一

  1. /Writer/Word2007/Base.php文件內容349行,添加 $objWriter->writeAttribute('w:eastAsia', $font); // 添加這行
  2. Section.php中找到代碼$givenText = utf8_encode($text);,刪除或者注釋掉這行代碼,添加$givenText = iconv('gbk', 'utf-8', $text);
  3. 同時編輯PHPWord/Template.php,找到代碼$replace = utf8_encode($replace);,刪除或者注釋掉這行代碼,添加$replace = iconv( 'gbk','utf-8', $replace);
  4. $section->addText(iconv('utf-8','GB2312//IGNORE',$st));

 

b)情況二

I.

 

 3、解決注冊不了,與框架沖突問題(new 不到對象)

public static function Register() {
   return spl_autoload_register(array('PHPWord_Autoloader', 'Load'));
}

修改為

public static function Register() {
       $functions = spl_autoload_functions();
       if($functions){
           foreach ($functions as $v){
               spl_autoload_unregister($v);
           }
           $functions = array_merge(array(array('PHPWord_Autoloader', 'Load')),$functions);
           foreach ($functions as $v){
               spl_autoload_register($v);
           }
       }else{
           spl_autoload_register(array('PHPWord_Autoloader', 'Load'));
       }
}

以上,就可以解決問題啦。 折騰了半天,終於弄好了。

然后,就可按按照官方文檔,進行WORD生成了。 這里生成的是word2007的,如果還是使用word2007以下版本,自行下載安裝兼容包即可使用

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM