aman.maurya / office-exporter
此库可以生成MsWord和OpenDoc等文档文件
dev-master
2020-08-10 09:36 UTC
Requires
- php: >=5.6.40
This package is auto-updated.
Last update: 2024-09-10 19:09:27 UTC
README
此库可以生成MsWord和OpenDoc等文档文件
安装
要安装库,只需
$ composer require aman.maurya/office-exporter @dev
需求
php: >=5.6.40
入门
- 首先,您需要在文字处理软件(Microsoft Office 2007及以上版本)中创建扩展名为[.docx]的模板。
- 然后从文字处理软件模板中提取主内容文件。这可以通过php脚本或手动完成,例如,在此示例中我选择了手动过程,详情请见这里。
- 将XML文件转换为XSLT样式表。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> .... </xsl:template> </xsl:stylesheet>
- 从数据库结果生成XML表单。
基本
require __DIR__ . 'vendor/autoload.php'; use OfficeExporter\Xml; $xml = new Xml('employee'); $xml->setData('row', [ 'name' => 'Vivian Warner', 'empId' => '123', ]); $xml->setData('row', [ 'name' => 'Shane Lloyd', 'empId' => '456', ]); $xml->generateXml(); <!-- Output --> <?xml version="1.0" encoding="UTF-8"?> <employee> <row> <name>Vivian Warner</name> <empId>123</empId> </row> <row> <name>Shane Lloyd</name> <empId>456</empId> </row> </employee>
高级
require __DIR__ . 'vendor/autoload.php'; use OfficeExporter\Xml; $xml = new Xml('employee'); $xml->setData('row.name:vivian|age:13|address:123 street', [ 'name' => 'Vivian Warner', 'empId.department:Engg' => '123', ]); $xml->setData('row.name:vivian|age:30|address:456 street', [ 'names' => [ ['name' => 'person 1'], ['phones' => [ ['phone' => '9023XXXXXXXX'], ['phone' => '9223XXXXXXXX'] ]], ], 'empId.department:IT' => '456', ]); $xml->generateXml(); <!-- Output --> <?xml version="1.0" encoding="UTF-8"?> <employee> <row name="vivian" age="13" address="123 street"> <name>Vivian Warner</name> <empId department="Engg">123</empId> </row> <row name="vivian" age="30" address="456 street"> <names> <name>person 1</name> </names> <names> <phones> <phone>9023XXXXXXXX</phone> </phones> <phones> <phone>9223XXXXXXXX</phone> </phones> </names> <empId department="IT">456</empId> </row> </employee>
- 合并XML和XSLT以生成新的ZIP存档。
$download->setDocTemplate('sample_word.docx'); $download->setXsltSource('document.xslt');
从文字处理软件模板中提取主内容文件的步骤
- 使用模板创建文字文件。
- 将文字文件从.docx更改为.zip,然后提取该zip文件。
- 进入提取文件夹中的word文件夹。
- 进入该文件夹,复制document.xml文件并将其粘贴到提取文件夹外的任何位置,然后删除所有提取的文件。
- 现在将document.xml文件转换为XSLT样式表
- 将word.zip文件转换回word.docx文件。
快速入门和示例
require __DIR__ . 'vendor/autoload.php'; use OfficeExporter\Xml; use OfficeExporter\MsWord; $xml = new Xml('employee'); $xml->setData('row', [ 'name' => 'Vivian Warner', 'empId' => '123', ]); $xml->setData('row', [ 'name' => 'Shane Lloyd', 'empId' => '456', ]); $xml->generateXml(); $xmlString = $xml->__toString(); $download = new MsWord($xmlString); $download->setDocTemplate('sample_word.docx'); $download->setXsltSource('document.xslt'); $download->create('sample.docx');