#1 xgsong
由于项目需要,要用PHP读写Word文件(模板),开源的项目例如phpword,phpdocx等都测试过,但是都有各种各样的问题,phpword已经很长时间没有人维护了,基本处于报废的状态,phpdocx免费版貌似不能操作模板文件,createdocx类里面根本没有addtemplate的方法,和官网的教程差异太大,所以最后也放弃了。选来选去只能用COM来手工操作Office组件进行Word文件的读写,测试下来确实能够达到功能要求,但是写入中文会在中文后面留下一串乱码,很是烦人,没办法解决,请各位专家会诊,呵呵!主要代码贴在下面:
$word = new COM('word.application', null, CP_UTF8) or die('请安装Word');
$word->Visible = false;
try {
$word->Documents->Open($template_path.'test.doc') or die('无法打开文件');
$bookmarks = $word->ActiveDocument->Bookmarks->Count;
for ($i = 1; $i <= $bookmarks; $i++) {
$bookmark = $word->ActiveDocument->Bookmarks->Item($i);
$bookmark->Range->Text = trim(strval($bookmark_value[$bookmark->Name]));
}
$word->ActiveDocument->SaveAs($save_path.$file['file_name']);
$word->Quit();
} catch (Exception $e) {
header("Content-Type: text/html;charset=utf-8");
echo $e->getMessage();
$word->Quit();
exit;
}
2013-04-11 22:57:39