PHP到Word模板

时间:2014-04-10 20:57:42

标签: php .doc

嗨,我很感激有人帮忙,我相信之前可能会有人问过。

我目前有一个MySQL数据库,可由我自己的PHP前端访问。我已经可以输出到基本的word文档,但我非常需要的是以下内容:

我想将现有的word文档设置为公司模板,请注意,关键是我不想将数据导出到空白文档中。

我有哪些选项/如何设置它以便应用程序将数据发送到单词(XML或类似文件)然后获取文字以将数据放在正确的位置(如邮件合并)?

提前感谢您的帮助。

更新:具体来说,我正在制作检验报告,所以我不打算从表中合并100个记录,我想在建筑工地上进行检查,然后使用方法来获取当前记录,并将其导出到模板word文档

2 个答案:

答案 0 :(得分:1)

我已经在PHP中为Laravel 5.4编写了一个可以在wrklst/docxmustache执行此操作的类。如果你不使用Laravel,你仍然可以检查这一点,以了解操作word文档需要什么。

还有很多其他课程可以解决这个问题:

答案 1 :(得分:0)

要在PHP中执行填充的Microsoft Word邮件合并或Moustache模板,可以使用Aspose.Words Cloud SDK for PHP。这是一种商业产品,但免费计划每月提供150次免费API调用。

<?php

require_once('D:\xampp\htdocs\aspose-words-cloud-php-master\vendor\autoload.php');

//TODO: Get your Client Id and Secret at https://dashboard.aspose.cloud (free registration is required).

$ClientSecret="xxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
$ClientId="xxxxx-xxxx-xxxx-xxxx-xxxxxxxxx";

$wordsApi = new Aspose\Words\WordsApi($ClientId,$ClientSecret);

try {
        
$templateName = "SampleMailMergeTemplate.docx";
$outputName = "ExecuteMailMerge_output.docx";
$remoteFolder="Temp";
#read mailmerge data
$data = file_get_contents("SampleMailMergeTemplateData.txt");

##upload template file to storage
$uploadRequest = new Aspose\Words\Model\Requests\UploadFileRequest($templateName,$remoteFolder."/".$templateName,null);
$wordsApi->uploadFile($uploadRequest);

##Execute MailMerge
$request = new Aspose\Words\Model\Requests\ExecuteMailMergeRequest($templateName, $data, $remoteFolder,null, null, null, null,null, null, false, $remoteFolder."/".$outputName);
$result = $wordsApi->executeMailMerge($request);
        
##Download file 
$request = new Aspose\Words\Model\Requests\DownloadFileRequest($remoteFolder."/".$outputName,NULL,NULL);
$result = $wordsApi->downloadFile($request);
copy($result->getPathName(),"MailMerge_output.docx");
print_r($result);
    
} catch (Exception $e) {
    echo  "Something went wrong: ",  $e->getMessage(), "\n";
    PHP_EOL;
}

?>

P.S:我是Aspose的开发人员。