• 请不要在回答技术问题时复制粘贴 AI 生成的内容
sinORcos
V2EX  ›  程序员

WPS 格式越来越多,但是这个封闭格式却没有可靠的在线预览可用

  •  
  •   sinORcos · 18h 46m ago · 2816 views
    最近在搞一个内部用的程序开发,因为单位里近几年用 wps 和 et 格式的文件越来越多,所以不得不考虑兼容 wps 和 et 格式的在线预览问题。

    找遍全网也没发现可靠的在线预览可用,官方倒是有一个开放平台,但是一方面一定要走官方的平台才行,不能做到纯前端渲染,而且还要花钱,还是先充值后扣费,我们领导是非常抠的,不可能同意预览个文档还要花钱这种事。

    没办法,只好用 pywpsrpc 调用服务器上的 linux 桌面版把所有 wps 和 et 格式的文件都转成 pdf 格式,再使用 pdf.js 做在线预览。不仅要额外保存 pdf 格式的文件,文件处理的管线也变长了,很烦躁。

    无法理解 WPS 官方的这种政策,我就要个预览,不要编辑,结果“开放平台”把预览和编辑绑在一起卖,预览还不能只走前端渲染,这开放了个鬼啊!关键是我用 word 和 excel 是可以打开 wps 和 et 格式的,都能正常显示,怎么搞个纯前端的预览这么难呢?金山这政策还怎么推广自己的格式呢?哦对了,强行推广嘛,有政府撑腰怕什么呢
    Supplement 1  ·  16h 9m ago
    同志们,经过测试,我确定了一个大概大多数人没有关注到的小细节。

    前面也说了,我偶然发现使用 word 和 excel 是可以打开 wps 文件和 et 文件的,且内容显示正常。所以我就突发奇想,把 wps 文件和 et 文件的扩展名分别改为 doc 和 xls ,然后直接双击就可以使用 word 和 excel 打开,我又使用了 github 上的 flyfish-dev/file-viewer 项目提供的在线 demo 测试了一下,也能正常打开,且内容准确无误。

    嗯,这个世界真是个巨大的草台班子。
    30 replies    2026-08-27 10:21:46 +08:00
    DsuineGP
        1
    DsuineGP  
       18h 16m ago
    石墨文档, 有免费的私有部署版本
    pckillers
        2
    pckillers  
       18h 10m ago
    实际上 docx 才是开放标准吧。wps 与 doc 都是能进历史垃圾堆的封闭标准。
    catamaran
        3
    catamaran  
       18h 10m ago
    客户要下载 et 格式的文件,直接生成 docx ,改一下扩展名完事
    bbsabc2
        4
    bbsabc2  
       18h 6m ago
    下发通知 全部使用 docx 格式。
    sinORcos
        5
    sinORcos  
    OP
       17h 53m ago
    @bbsabc2 #4 我说了不算
    sinORcos
        6
    sinORcos  
    OP
       17h 48m ago
    @pckillers #2 是的,docx 和 xlsx 才是真正的开放标准,我认为任何在文档文件格式这个领域搞封闭标准的都应该拖出去弹小鸡鸡弹到死
    sinORcos
        7
    sinORcos  
    OP
       17h 19m ago
    @DsuineGP #1 石墨的免费版本好像不支持私有化部署吧?
    Kavcc
        8
    Kavcc  
       17h 14m ago
    AI 给的方案是用 libreoffice 转换为 pdf 进行预览,上传时自动转换为 pdf ,关联到原始文件,测试了一下满足基本预览需求。

    ```md
    # WPS / Office 在线预览

    基于 PHP + MySQL 的本地文件预览程序,支持 doc/docx/xls/xlsx/ppt/pptx/pdf 在线查看。

    ## 部署步骤

    1. 把 `wps-viewer/` 目录放到你的 Web 根目录(如 `htdocs/` 或 `www/`)。
    2. 修改 `config.php` 中的数据库账号密码(默认库名 `wps_viewer`,程序会自动建库建表)。
    3. 确保 `wps-viewer/uploads/` 与 `wps-viewer/cache/` 可写。
    4. 启动服务器(任选其一):
    - 直接用 PHP 内置服务器:`php -S 127.0.0.1:8080 -t wps-viewer`
    - 或放入 Apache/Nginx + PHP 环境,访问 `index.php`。
    5. 浏览器打开 `http://127.0.0.1:8080/` 上传文件即可预览。

    ## 预览策略

    | 格式 | 渲染方式 |
    |------|----------|
    | docx | 浏览器端 mammoth.js 转 HTML |
    | xls / xlsx | 浏览器端 SheetJS 转表格 |
    | pdf | pdf.js / iframe 直接显示 |
    | doc / ppt / pptx | LibreOffice 转 PDF 后显示 |
    | wps / et / dps ( WPS 专有) | LibreOffice 转 PDF 后显示 |

    > WPS 专有格式(.wps 文字 / .et 表格 / .dps 演示)均通过 LibreOffice 导入再转 PDF ,依赖本地安装 LibreOffice 。若转换失败,页面会提示下载原文件。

    ## 关于旧格式( doc/ppt )

    doc/ppt 需要本地安装 LibreOffice 。在 `config.php` 中填好 `soffice` 路径,或确保程序能自动探测到。未安装时,页面会提示直接下载原文件。

    ## 文件说明

    - `index.php` 上传 + 文件列表
    - `upload.php` 上传接口(写入 MySQL 元数据 + 落盘)
    - `preview.php` 按类型分发预览
    - `serve.php` 安全读取原始文件
    - `convert.php` LibreOffice 转 PDF
    - `view_pdf.php` 读取转换后的 PDF
    - `db.php` 数据库连接与建表
    - `config.php` 配置项

    ```
    Kavcc
        9
    Kavcc  
       17h 11m ago
    @catamaran 直接改就会收到警告⚠

    此文件仅 WPS 能打开,操作当前文件会造成文件损坏
    • 此文件为私密文档,请使用 WPS Office 打开
    个人用户:访问 WPS 官方网站下载 http://www.wps.cn
    企业用户:请联系企业管理员获取最新版本
    • 请勿对文件进行任何操作
    对文件进行编辑或另存为操作,会导致数据丢失,无法恢复
    busier
        10
    busier  
       16h 58m ago
    政治任务的产物,还真当这玩意是市场需求
    xyooyx
        11
    xyooyx  
       16h 1m ago
    后缀只决定文件打开方式,不影响文件内容,只是可视化软件一般都会根据文件后缀筛选可选文件。如果用指令打开,你把后缀改成 et_hello_word 一样可以打开
    weixind
        12
    weixind  
       15h 32m ago   ❤️ 1
    商业软件收费无可厚非。

    "不可能同意预览个文档还要花钱"是你们老板的问题,不是 wps 的问题。

    而且他们家收费不贵,小流量一个月几百块。你搞个服务器转文档的钱也得这个价,还不一定能保证可用性。
    PopRain
        13
    PopRain  
       12h 40m ago
    @weixind 所有的内部文档都贡献给 wps 随便看?
    PopRain
        14
    PopRain  
       12h 38m ago
    改后缀可能的原因:Office Open XML ( OOXML ) 是由微软主导开发的基于 XML 和 ZIP 压缩技术的开放文档格式标准,于 2006 年被纳入 ECMA-376 标准,2008 年正式成为国际标准( ISO/IEC 29500 )。它是微软 Office 套件( Word 、Excel 、PowerPoint 等)从 2007 版起的默认文件格式(如.docx 、.xlsx 、.pptx ),核心是将文档内容拆解为结构化的 XML 文件,并打包为 ZIP 压缩包,实现内容透明化与跨平台兼容。
    e23nome
        15
    e23nome  
       12h 25m ago
    @sinORcos docx/xlsx 并不是开放标准。如果真的是开放标准,你见过哪个文档/表格编辑器可以
    1. 100%渲染出和 word/excel 一样的结果;
    2. 能编辑后保存 docx/xlsx ,然后用 word/excel 打开,保持所有编辑的渲染结果一致。

    office 其实有很多私有实现与所谓标准不一致的地方。
    sinORcos
        16
    sinORcos  
    OP
       11h 56m ago
    @weixind #12 我从不反对商业软件收费,但是一个文件格式,我连看看内容都要收费是不是不太合理?编辑能力收费我觉得一点问题都没有,预览和编辑捆绑就不太能让人接受
    sinORcos
        17
    sinORcos  
    OP
       11h 53m ago
    @PopRain #14 实测过了,.wps 和.et 格式能识别出两种类型,ooxml 类型的改成 docx 和 xlsx 可以无任何提示直接打开; OLE/BIFF 类型的改成 doc 和 xls 可以无任何提示直接打开
    sinORcos
        18
    sinORcos  
    OP
       11h 49m ago
    @e23nome #15 这一点老哥你说的对,标准是公开的,但是微软在渲染和实现上肯定是没少塞私货
    ysc3839
        19
    ysc3839  
       11h 36m ago via Android
    WPS 大约是 2005 版就把自己的.wps 格式改为基于微软的.doc 格式了。
    sevenfxx
        20
    sevenfxx  
       10h 47m ago
    wps 格式就是老版的 office 格式,把扩展名改为 doc,xls 完全兼容
    weixind
        21
    weixind  
       9h 10m ago
    @PopRain #13

    进可以购买 WPS WebOffice 私有化,退可以就不用 wps 。我只是提建议,没有拿枪逼着一定要用 wps 的云服务。大可不必反问我。已 block 。
    woyaojizhu8
        22
    woyaojizhu8  
       8h 0m ago
    中国的公司搞的凡是叫做“开放平台”的,都是可控开放,就是把你该有的权利拿走,再卖一点点给你
    exiahan
        23
    exiahan  
       5h 23m ago
    那个追加内容倒不是什么稀奇事,也不是什么草台班子,因为很早之前 wps 和 msoffice 过有过格式兼容协议,WPS 某种程度上被这件事坑了。 - https://paper.people.com.cn/zgjjzk/html/2008-11/24/content_145597.htm

    WPS 早期还是可以的,不过现在么。。。因为某些环境必须要用一下 WPS ,结果居然打开一个 word 文件后不登录就不能编辑,反正没搞懂这到底是什么狗屁逻辑。是的,不是收费才能编辑,是必须要登录联网。。。
    hhacker
        24
    hhacker  
       3h 20m ago
    这就不得不说一下 wps 如果不登录的话, 对于 word/excel 就无法使用绝大多数常用的编辑功能了
    kokutou
        25
    kokutou  
       2h 49m ago via Android
    wps 就是 doc 在没有密码和特殊的东西的情况
    et 就是 xls
    docx
        26
    docx  
       2h 42m ago via iPhone   ❤️ 1
    经典国产,拿来改改就说是自己的,打着兼容的名字搞免费推广,故意做一些障碍限制,等市场上来以后猛猛收钱
    propc
        27
    propc  
       1h 39m ago
    @docx 你已经明白了,嘻嘻~~
    pengyvz
        28
    pengyvz  
       1h 17m ago
    之前在「微碌」公众号的《 WPS 文件格式是否属于国产办公格式?一场复活 21 年前 WPS Office 2005 For Linux 的探索之旅》一文中看到一个说法:「文件格式这一核心功能设计上,WPS Office 2005 来了个壮士断腕,完全放弃了 WPS Office 2003 和之前自研的 wps/et/dps 专有格式。WPS Office 2005 在保存文件时,无论保存为“.doc/.xls/.ppt”,还是保存为“.wps/.et/.dps”,其保存的文件格式,实质上都只用了一个标准,那就就是微软 Office 2003 和之前版本所使用的专有二进制格式,也就是前文所说的“Office Binary File Formats”。」
    congminhcap246
        29
    congminhcap246  
       50 mins ago
    想到了去年做的一个在线预览哈哈,兼容主流标准。https://freedocumentviewer.com/
    Mithril
        30
    Mithril  
       13 mins ago
    @sinORcos 我自己做过 Office 文档解析,就是直接搞 OOXML 。主要是处理 Word ,Excel ,PPT 。里面全是一坨屎。

    虽然标准在那摆着,大部分内容也都能处理,但真到处理细节的时候,那真的是要多恶心有多恶心。到处都找不到文档,也不知道某个效果是怎么写进去的。

    比如光是一个表格的合并单元格,它就有好几个版本的实现方法,你可能看起来都是一样的表格,但 XML 里存的是完全不一样的结构。还有 Smart Art 这种鬼东西。你光是处理里面的文字还行,至于怎么正确显示绘制出来,想都不要想。

    你就做去吧,到时候你就发现,可能大部分文档你都能处理,但有的就是会有样式出问题。所以针对只是单纯显示,不需要编辑的情况,调用官方程序,直接打印成 PDF ,然后 PDF.js 绘制出来,就是最好的办法。

    这也是对开发最友好的,不然业务部门看着样式不对,天天找你报 Bug 。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5938 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 117ms · UTC 02:35 · PVG 10:35 · LAX 19:35 · JFK 22:35
    ♥ Do have faith in what you're doing.