PHPWord模板,通过查询结果不填充值

循环我得到这个错误:PHPWord模板,通过查询结果不填充值

Fatal error: Uncaught exception 'Exception' with message 'Could not close zip file.' in /home/dyken/public_html/PHPWord/Template.php:109 Stack trace: #0 /home/dyken/public_html/lettersWord.php(40): PHPWord_Template->save('MemberLetters.d...') #1 {main} thrown in /home/dyken/public_html/PHPWord/Template.php on line 109 

我有这样的代码:

$sql = "SELECT distinct p.person_id, fname_mi, lname, company_name, 

addr1, addr2, city, st, zip, greeting, email, fullName

FROM person p

INNER JOIN person_category c

on c.person_id = p.person_id

WHERE category_id = 1

order by lname, fname_mi, company_name";

$result = mysqli_query($dlink,$sql);

require_once 'PHPWord.php';

while ($row = mysqli_fetch_array($result)) {

$PHPWord = new PHPWord();

$document = $PHPWord->loadTemplate('letters/testLetter.docx');

$document->setValue('Value1', $row[1]);

$document->setValue('Value2', $row[2]);

$document->setValue('Value3', $row[3]);

$document->setValue('Value4', $row[4]);

$document->setValue('Value5', $row[5]);

$document->setValue('Value6', $row[6]);

$document->setValue('Value7', $row[7]);

$document->setValue('Value8', $row[8]);

$document->setValue('Value9', $row[9]);

$document->setValue('Value10', $row[10]);

$document->setValue('Value11', $row[11]);

$file = 'MemberLetters.docx' . $row[0];

$document->save($file);

if(!$file) {

// File doesn't exist, output error

die('file not found');

}

else {

header("Cache-Control: public");

header("Content-Description: File Transfer");

header("Content-Disposition: attachment; filename=$file");

header("Content-Type: application/vnd.openxmlformats-officedocument.wordprocessingml.document");

header("Content-Transfer-Encoding: binary");

readfile($file);

}

unlink($file);

exit;

}

testLetter.docx包含此:

${Value1} ${Value2} 

${Value3}

${Value4}

${Value5}

${Value6}, ${Value7} ${Value8}

我无法获得查询来填充字母中的值。

查询在网站的其他地方产生结果,所以我知道这是有效的。

$dlink是我$host, $user, $password$dbname连接

我收到文件,在文件夹中的信件,但没有那么多,因为我希望和他们的testLetter.docx所有的精确副本与${Value1}等,而不是从数据我的查询。

我已经尝试了代码的不同变体,但我永远不会得到我的任何查询结果代替$Values。有人可以帮助我吗?我是PHPWord的新手。

回答:

我也有这一段时间的奋斗,它似乎是同一类问题。很显然,根据你创建文档的方式,word会生成不同类型的xml,例如,如果你在编写$ {Value1}时犯了一个错误,然后回过头来纠正它,那么生成的xml与你正确编写它的xml不同开始。

在互联网上搜索我发现这个代码在https://phpword.codeplex.com/workitem/49为我工作,也许可以为你工作。它是取代setValue方法的工作方式。

你也可以在http://phpword.codeplex.com/discussions/268012

找到更多关于我在说的内容

以上是 PHPWord模板,通过查询结果不填充值 的全部内容, 来源链接: utcz.com/qa/264549.html

回到顶部