1

私は現在、Java の HSSFWorkbook ライブラリを使用して .xls ファイルを生成しています。これは、ダウンストリーム システムが解析して一部のデータを読み取ります。最近、私自身も下流のシステムも変更を加えていないにもかかわらず、期待値が欠落しているという例外がファイルに発生するという問題に遭遇しました。

奇妙なことに、ファイルを開いて再保存すると、何も変更せずにファイルが正しく解析されます。また、保存が行われると、ファイル サイズが約 6kb から 26kb に変化します。

このファイル サイズの変更は予想されますか?

ファイルが最初に作成されたときに含まれていない余分な空白セル/空白をExcelに追加することと関係があると思いますが、何が起こっているのかよくわかりません. 下流のパーサーにアクセスできないので、そこで何が起こっているのか正確にはわかりません。

関数を使用して Linux で 2 つの .xls ファイルを比較してみましたcmpが、有用な結果は得られませんでした。注目している動作のサンプル ファイルがいくつかありますが、ここに添付できず、ファイル共有 Web サイトにアクセスできません (ブロックされています)。

自分でより良い比較を実行するために使用できるツールはありますか? また、この問題を引き起こす可能性のあるもの (特殊文字など) を探す必要がありますか?

Linux で次のコマンドを実行して違いを分析すると、次のようになります。

cmp -l ファイル 1. ファイル2.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」です。その後もたくさんの行がありますが、最初に発生する違いに焦点を当てた方が良いと思います。

4

0 に答える 0