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

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

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

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

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

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

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

    嗯,这个世界真是个巨大的草台班子。
    19 replies    2026-08-26 22:59:22 +08:00
    DsuineGP
        1
    DsuineGP  
       7h 24m ago
    石墨文档, 有免费的私有部署版本
    pckillers
        2
    pckillers  
       7h 18m ago
    实际上 docx 才是开放标准吧。wps 与 doc 都是能进历史垃圾堆的封闭标准。
    catamaran
        3
    catamaran  
       7h 18m ago
    客户要下载 et 格式的文件,直接生成 docx ,改一下扩展名完事
    bbsabc2
        4
    bbsabc2  
       7h 14m ago
    下发通知 全部使用 docx 格式。
    sinORcos
        5
    sinORcos  
    OP
       7h 1m ago
    @bbsabc2 #4 我说了不算
    sinORcos
        6
    sinORcos  
    OP
       6h 56m ago
    @pckillers #2 是的,docx 和 xlsx 才是真正的开放标准,我认为任何在文档文件格式这个领域搞封闭标准的都应该拖出去弹小鸡鸡弹到死
    sinORcos
        7
    sinORcos  
    OP
       6h 27m ago
    @DsuineGP #1 石墨的免费版本好像不支持私有化部署吧?
    Kavcc
        8
    Kavcc  
       6h 21m 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  
       6h 19m ago
    @catamaran 直接改就会收到警告⚠

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

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

    而且他们家收费不贵,小流量一个月几百块。你搞个服务器转文档的钱也得这个价,还不一定能保证可用性。
    PopRain
        13
    PopRain  
       1h 48m ago
    @weixind 所有的内部文档都贡献给 wps 随便看?
    PopRain
        14
    PopRain  
       1h 46m 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  
       1h 33m ago
    @sinORcos docx/xlsx 并不是开放标准。如果真的是开放标准,你见过哪个文档/表格编辑器可以
    1. 100%渲染出和 word/excel 一样的结果;
    2. 能编辑后保存 docx/xlsx ,然后用 word/excel 打开,保持所有编辑的渲染结果一致。

    office 其实有很多私有实现与所谓标准不一致的地方。
    sinORcos
        16
    sinORcos  
    OP
       1h 3m ago
    @weixind #12 我从不反对商业软件收费,但是一个文件格式,我连看看内容都要收费是不是不太合理?编辑能力收费我觉得一点问题都没有,预览和编辑捆绑就不太能让人接受
    sinORcos
        17
    sinORcos  
    OP
       1h 0m ago
    @PopRain #14 实测过了,.wps 和.et 格式能识别出两种类型,ooxml 类型的改成 docx 和 xlsx 可以无任何提示直接打开; OLE/BIFF 类型的改成 doc 和 xls 可以无任何提示直接打开
    sinORcos
        18
    sinORcos  
    OP
       57 mins ago
    @e23nome #15 这一点老哥你说的对,标准是公开的,但是微软在渲染和实现上肯定是没少塞私货
    ysc3839
        19
    ysc3839  
       44 mins ago via Android
    WPS 大约是 2005 版就把自己的.wps 格式改为基于微软的.doc 格式了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2763 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 15:43 · PVG 23:43 · LAX 08:43 · JFK 11:43
    ♥ Do have faith in what you're doing.