最近在做一个网站建设项目时,客户有大量的资料是word文档,为方便用户浏览,要求访问者不用下载,而是直接在线浏览。直接在线浏览的方式有html网页、PDF文档和flash。为了兼容移动端的访问和新的浏览器用户,flash首先不被考虑。就只剩下html和PDF,因PDF无法直接在内容页面中展示,所以最终只有html。如果是手动的来生成和编辑html文件,工作量会非常大,经过网上查询资料和不断的实践,最终实现了想的效果。今天绵阳动力网络公司为大家来介绍具体的方法和相关代码。
一、安装PHPOffice插件:
1、composer require phpoffice/phpword
/* 通过composer安装 PHPOffice 需要科学上网 或者用中国镜像:https://www.phpcomposer.com/ */
2、安装成功可看到 vendor文件夹
3、使用方法 :
require 'vendor/autoload.php';
$phpWord = \PhpOffice\PhpWord\IOFactory::load('./4.docx');
$xmlWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, "HTML");
$xmlWriter ->save('./ceshi.htm');
4、官方
/* 官方案例:https://phpword.readthedocs.io/en/latest/general.html github: https://github.com/PHPOffice/PhpSpreadsheet */
二、通过python
from win32com import client as wc
import sys
def saveHtm():
# print(wordPath)
# print(htmPath)
wordPath='E:/1.doc'
htmPath='E:/1.htm'
word = wc.Dispatch('Word.Application')
print(word)
doc = word.Documents.Open('E:/1.doc')
doc.SaveAs("E:/1.htm", 8) //转化为htm格式
doc.SvaeAs("E:/1.fpt",17)
doc.Close()
word.Quit()
if __name__ == '__main__':
saveHtm()
三、同时Offic API直接在网页显示word文档。
src="http://view.officeapps.live.com/op/view.aspx?src=公网上能访问的word文档地址" > 例 src=http://view.officeapps.live.com/op/view.aspxsrc=newteach.pbworks.com%2Ff%2Fele%2Bnewsletter.docx
四、通过com组件
需要所在宿主机,有offic的环境,Linxu下不能使用
实例扩展:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>接收上传文件</title>
<?php
$conn = @new COM("ADODB.Connection");
$connstr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" . realpath("person.mdb");
$conn->Open($connstr);
$uploaddir = 'uploads/';
if(!is_dir($uploaddir)){
mkdir($uploaddir);
}
$filename =$_FILES['filename']['name'];
$filename =substr($_FILES['filename']["name"],0,strpos($_FILES['filename']["name"],"."));
echo $filename;
echo "<br>";
$uploadfile = $uploaddir.$filename.substr($_FILES['filename']["name"],strpos($_FILES['filename']["name"],"."));
//目录名.文件名.后缀名
echo $uploadfile;
echo "<br>";
$temploadfile = $_FILES['filename']['tmp_name'];
echo $temploadfile;
echo "<br>";
move_uploaded_file($temploadfile , $uploadfile); //移动文件
$path = $_SERVER['SCRIPT_FILENAME'];
$filepath = $_SERVER["PHP_SELF"];
$path = substr($path,0,strpos($path,$filepath));
echo $path;
echo "<br>";
echo $filepath;
$htmlpath = $path."/shiyan4/".$uploadfile;
echo "<br>";
echo $htmlpath;
word2html($htmlpath);
//$query =@mysql_query( "Insert into $username(fname,file)values('$filename','$uploadfile')")or die("error");
?>
<?php
//http://tieba.baidu.com/f?kz=13975389
function word2html($wfilepath)
{
$word=new COM("Word.Application") or die("无法打开 MS Word");
$word->visible = 1 ;
$word->Documents->Open($wfilepath)or die("无法打开这个文件");
$htmlpath=substr($wfilepath,0,-4);
$word->ActiveDocument->SaveAs($htmlpath,8);
$word->quit(0);
}
print( "Word转html完成!" );
?>
</head>
<body>
</body>
</html>
好了,PHP将word文档自动转为html网页的四种方法就全部介绍给大家了,希望对你的网站建设项目有所帮助。