Liunx下实现在线预览office文档
2021-08-31 本文已影响0人
洛奇lodge
概述
- 服务器上的excle文件,希望能够在网页上预览
- 在网上找了很多种方案,有的是通过pandas实现,对于简单excle表格可行的,但是涉及到表格样式、合并单元格等格式是无法实现的。有的通过第三方接口实现,但是有些是需要收费的,有些免费的,但不能进行私有化部署,对于数据敏感的文件是不安全的
实现方案
- 第三方成熟产品方案
https://cloud.tencent.com/developer/article/1420677?from=article.detail.1806752 - 通过开源软件,将excle进行转换html,网页获取html渲染
LibreOffice : https://zh-cn.libreoffice.org/
OpenOffice: http://www.openoffice.org/zh-cn/
LibreOffice 和OpenOffice选择:https://www.linuxdashen.com/openoffice%E4%B8%8Elibreoffice%EF%BC%8C%E5%93%AA%E4%B8%AA%E6%9B%B4%E9%80%82%E5%90%88%E4%BD%A0
实施过程
- 根据以上方案选择了LibreOffice实现需求功能
- 在Liunx安装LibreOffice,下载路径https://downloadarchive.documentfoundation.org/libreoffice/old/
在Centos6.5版本服务器安装,安装LibreOffice5.4.7.2版本
根据自己系统版本选择LibreOffice版本,尽可能适合的版本,
不然系统的一些驱动会因版本过低,运行不了LibreOffice,
在升级系统驱动 与 使用LibreOffice低版本 选择中,我选择低版本LibreOffice
tar -zxvf LibreOffice_5.4.7.2_Linux_x86-64_rpm.tar.gz
cd LibreOffice_5.4.7.2_Linux_x86-64_rpm/RPMS
sudo yum install *.rpm
由于LibreOffice依赖java环境,需要安装java
java -version # 查看是否已安装java
yum -y list java* # 查看yum包有哪些版本java
yum -y install java-1.8.0-openjdk* # 安装java
- 安装完成执行以下命令,进行转换文件测试
# /opt/libreoffice5.4/program/soffice命令可以配置在环境变量,直接soffice调用
/opt/libreoffice5.4/program/soffice --headless --invisible --convert-to html demo.xlsx --outdir /data/static/
- 通过上诉命令,将excle转换为html,存放在指定某个目录下通过我们的服务器访问html渲染在网页上
<iframe src="/static/demo.html" height="95vh" width="95vw"></iframe>