
正文
PHP导出为Word格式
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
Html转Word
目测方法大概有两种:
1.直接把html代码写入word 以二进制的方式
2.通过mnt这个介质 生成word
方法一(推荐):
造了个轮子 https://packagist.org/packages/cshaptx4869/html2word
如果觉得好用 点个star再走呗 https://github.com/cshaptx4869/html2word
composer require cshaptx4869/html2word
方法二:
html文件直接写入word
注意:如果有图片的话,转为base64格式
<?php
/**
* @desc 方法一、生成word文档
* @param $content
* @param string $fileName
*/
function createWord($content = '', $fileName = '')
{
if (empty($content)) {
return;
}
$content='<html
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">
<meta charset="UTF-8" />'.$content.'</html>';
if (empty($fileName)) {
$fileName = date('YmdHis').'.doc';
}
file_put_contents($fileName, $content);
}/**
* @desc 方法二、生成word文档并下载
* @param $content
* @param string $fileName
*/
function downloadWord($content, $fileName=''){ if(empty($content)){
return;
}
if (empty($fileName)) {
$fileName = date('YmdHis').'.doc';
}
// header("location:xxx.doc");
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename={$fileName}"); $html = '<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml"
xmlns="http://www.w3.org/TR/REC-html40">';
$html .= '<head><meta http-equiv="Content-Type" content="text/html;charset="UTF-8" /></head>'; echo $html . '<body>'.$content .'</body></html>';
}createWord(file_get_contents('html2word.html'));
downloadWord(file_get_contents('html2word.html'));
参考:
https://www.cnblogs.com/phphuaibei/archive/2011/11/30/2269427.html
http://www.cnitblog.com/CoffeeCat/archive/2008/08/07/47753.html
https://segmentfault.com/a/1190000006290039





