V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hambut
V2EX  ›  问与答

如何通过文件头区别 wps offiice 和 ms office

  •  
  •   hambut · 2016-08-15 16:30:21 +08:00 · 2868 次点击
    这是一个创建于 2804 天前的主题,其中的信息可能已经有所发展或是发生改变。
    已经离职的一个客户端同学当时写了一个工具,读 execl 生成一个别的格式的数据文件

    发现只兼容 ms office 的格式,遇到 wps 系列的就闪退了

    现在我想在 svn 的 hook 上的 pre 阶段判断一下。。

    查了半天发现只能知道是不是 office ,但是不能更精细的知道是 wps 还是 ms 。
    8 条回复    2016-08-15 22:43:07 +08:00
    dong3580
        1
    dong3580  
       2016-08-15 16:37:55 +08:00
    无需区分,生成文档的时候规范 xls 文件头就行了,而且 mac/win 版的还会有编码区分。
    参考:
    http://www.iana.org/assignments/media-types/media-types.xhtml
    hambut
        2
    hambut  
    OP
       2016-08-15 17:01:22 +08:00
    @dong3580 道理我都懂,但是有句谚语,“程序写的懒就怕你乱按”,当时那位同学留了个 exe 就走了- -

    当时依稀的记得是 2 进制读取的方式,可能 wps 和 ms 有些不一样,遇到 wps 就闪退,所以才想在别的地方规避一下。
    harry890829
        3
    harry890829  
       2016-08-15 17:02:41 +08:00
    16 进制打开对比一下?没有源码?
    yangff
        4
    yangff  
       2016-08-15 17:10:21 +08:00
    闪退的就是 wps ,不闪退的就是 ms
    shimanooo
        5
    shimanooo  
       2016-08-15 17:20:06 +08:00
    xls? xlsx?
    后者可以 unzip 解压成一堆 xml
    dong3580
        6
    dong3580  
       2016-08-15 17:53:19 +08:00
    @harry890829
    此处无对比参照物,无源码,基本无解了,想改都不方便。
    hahiru
        7
    hahiru  
       2016-08-15 18:07:23 +08:00 via Android
    你分别用两个软件保存一遍相同数据的试试呗,看看同一个文件保存前后数据的变化。。。
    meloduet
        8
    meloduet  
       2016-08-15 22:43:07 +08:00
    直接对比十六进制的文件头不就行了. 你可以重写这个工具不一定要源码, 如果非要源码就反编译呗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2209 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:38 · PVG 08:38 · LAX 17:38 · JFK 20:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.