0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

変な文字が入ってて開けないエクセルをコマンドとかでなんとかして開けるようにする

Posted at

開けないエクセル(xlsx)

業務系システムまわりで単純にデータをエクスポートしたのに開けないエクセルが出来上がることがある。
出るエラーは
「〜〜の一部の内容に問題が見つかりました。〜〜」
で「はい」を押して開いてもほぼ中身がない状態になり、もう意味をなしてない。

原因

単純なデータのみだとだいたいどこかのセル内に制御文字などが紛れてる。
xlsx形式はzipと同等なので拡張子変えれば解凍できる。
その中に xl/sharedStrings.xml というファイルがあり、その中にセル内の文字データが入ってる。
で&#で検索すると  みたいに入ってることがある。

コマンドでなんとかする

unzipでsharedStrings.xmlを出してやってxmllintかける
unzip -p エクセルファイル.xlsx xl/sharedStrings.xml | xmllint --format -
でやるとエラーになってる箇所を出してくれる。

エラーがわかれば

できればコマンドでsedかけて元のzipに戻す、ができたらいいけどなんか簡単でなかった。
なんとvimでzipファイル内を直接編集できるので、vimで置換かけて保存。
無事に開けるようになりました。

余談

なんかrubyとかそのへんの言語で簡単にエラー箇所がわかればいいな、と思ったが意外によしなにエラー箇所を出してくれないみたいだった。なのでちょっと手間ではあるが上記方法に落ち着いた。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?