重新保存时文件大小会更改

时间:2015-09-22 15:06:12

标签: excel hssf

我目前正在使用Java中的HSSFWorkbook库生成.xls文件,下游系统正在解析该文件以读取某些数据。最近,我们遇到了一个问题,即文件遇到了缺少预期值的异常,尽管我自己和下游系统都没有进行更改。

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

预计文件大小会发生这种变化吗?

我猜这可能与Excel有关,可以添加额外的空白单元格/空白,这些空白单元格/空白在最初构建文件时不包括在内,但不太确定是什么进行的。我无法访问下游解析器,因此无法准确了解其中发生的情况。

我尝试使用cmp函数比较Linux中的两个.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"。 之后有很多行,但我认为可能更好地关注发生的第一个差异。

0 个答案:

没有答案