重新保存时更改文件大小

我目前正在使用Java中的HSSFWorkbook库生成一个.xls文件,下游系统正在parsing这个文件来读取一些数据。 最近,我们遇到了一个问题,即文件遇到缺less期望值的例外,尽pipe我自己也没有下游系统进行更改。

现在奇怪的是,如果文件被打开并重新保存,没有任何更改,文件被正确parsing。 发生保存时,我们也会看到文件大小从大约6kb变为26kb。

这是文件大小的预期变化吗?

我猜测这可能是与Excel添加额外的空白单元格/空格,这是不包括在文件最初build成时,但不太确定发生了什么事情。 我没有访问下游parsing器,所以不能确切知道那里发生了什么。

我已经尝试在Linux中使用cmp函数比较两个.xls文件,但还没有提出任何有用的发现。 我有一些示例文件的行为,我注意到,但我不能附加在这里,我不能访问任何文件共享网站(封锁)。

是否有任何工具可以用来自己进行更好的比较,以及我应该寻找哪些可能导致此问题的特殊字符等?

当我在Linux上运行以下命令来分析差异时:

cmp -l file1。 file2.xls | gawk'{printf“%08X%02X%02X \ n”,$ 1,strtonum(0 $ 2),strtonum(0 $ 3)}'> analysis.txt

这是输出的开始:

  00000019 3B 3E 00000031 00 32 0000003D 09 FE 0000003E 00 FF 0000003F 00 FF 00000040 00 FF 00000041 01 00 0000004D 0A 31 00000201 52 09 00000202 00 08 00000203 6F 10 00000205 6F 00 00000206 00 06 00000207 74 05 00000209 20 54 0000020A 00 38 0000020B 45 CD 0000020C 00 07 0000020D 6E C9 0000020E 00 C0 0000020F 74 01 00000211 72 06 00000212 00 07 00000213 79 00 00000215 00 E1 00000217 00 02 00000219 00 B0 0000021A 00 04 0000021B 00 C1 0000021D 00 02 00000221 00 E2 

格式是“byteLocationOfDiff byteFromFirstFile byteFromSecondFile”。 之后有更多的线条,但我认为最好把重点放在第一次出现的差异上。