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

2016-08-15 16:30:21 +08:00
 hambut
已经离职的一个客户端同学当时写了一个工具,读 execl 生成一个别的格式的数据文件

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

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

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

当时依稀的记得是 2 进制读取的方式,可能 wps 和 ms 有些不一样,遇到 wps 就闪退,所以才想在别的地方规避一下。
harry890829
2016-08-15 17:02:41 +08:00
16 进制打开对比一下?没有源码?
yangff
2016-08-15 17:10:21 +08:00
闪退的就是 wps ,不闪退的就是 ms
shimanooo
2016-08-15 17:20:06 +08:00
xls? xlsx?
后者可以 unzip 解压成一堆 xml
dong3580
2016-08-15 17:53:19 +08:00
@harry890829
此处无对比参照物,无源码,基本无解了,想改都不方便。
hahiru
2016-08-15 18:07:23 +08:00
你分别用两个软件保存一遍相同数据的试试呗,看看同一个文件保存前后数据的变化。。。
meloduet
2016-08-15 22:43:07 +08:00
直接对比十六进制的文件头不就行了. 你可以重写这个工具不一定要源码, 如果非要源码就反编译呗

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/299424

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX