Excelをunzipして図形の情報を確認する


アニメ『ラブライブ!サンシャイン!!』

避けていたわけではないですが、ラブライブをよくわかってません。どこから見ればよいんだか。でも、面白そうなので見ます。
さぼってた時期をのぞいたら二カ月ぐらい絵の練習してますが、最近自分がどれだけアニメキャラを見ていなかったかわかってきました。そもそも現実でも、目が悪い上に人の顔を覚えるのが大変なので、会社に同じ背丈の新人さん二人いると、双子?って思ってしまいます。しばらくすると全然違うことに気が付くんですけどね。まずは目を鍛えれば、きっと絵も上手くなるのでしょう。

「Excelでお絵かき」と同様、Excelの図形描画で描きました。もう誰を描いているんだか分からないと思いますが。

今回は、お描きが主題ではなく、Excelの解凍になります。Excelをlinux上で解凍して、このお描きExcelファイルの内容を見ていきましょう。
drawing.xlsxという名前で保存したら、

linuxのコマンドラインで、unzipします。(unzipコマンドがない場合は、sudo apt-get install zipでインストールしておきます)

takk@deb8:~/Desktop$ unzip drawing.xlsx -d drawing
Archive:  drawing.xlsx
  inflating: drawing/[Content_Types].xml  
  inflating: drawing/_rels/.rels     
  inflating: drawing/xl/_rels/workbook.xml.rels  
  inflating: drawing/xl/workbook.xml  
  inflating: drawing/xl/theme/theme1.xml  
  inflating: drawing/xl/worksheets/_rels/sheet1.xml.rels  
  inflating: drawing/xl/worksheets/sheet2.xml  
  inflating: drawing/xl/worksheets/sheet3.xml  
  inflating: drawing/xl/drawings/drawing1.xml  
  inflating: drawing/xl/styles.xml   
  inflating: drawing/xl/worksheets/sheet1.xml  
  inflating: drawing/docProps/core.xml  
  inflating: drawing/docProps/app.xml  
takk@deb8:~/Desktop$ 

解凍後のディレクトリ中のファイルの種類をfileコマンドで確認します。

takk@deb8:~/Desktop$ cd drawing
takk@deb8:~/Desktop/drawing$ find | xargs file
.:                                     directory
./docProps:                            directory
./docProps/app.xml:                    XML document text
./docProps/core.xml:                   XML document text
./[Content_Types].xml:                 XML document text
./xl:                                  directory
./xl/drawings:                         directory
./xl/drawings/drawing1.xml:            XML document text
./xl/styles.xml:                       XML document text
./xl/worksheets:                       directory
./xl/worksheets/sheet1.xml:            XML document text
./xl/worksheets/sheet3.xml:            XML document text
./xl/worksheets/_rels:                 directory
./xl/worksheets/_rels/sheet1.xml.rels: XML document text
./xl/worksheets/sheet2.xml:            XML document text
./xl/theme:                            directory
./xl/theme/theme1.xml:                 XML document text
./xl/_rels:                            directory
./xl/_rels/workbook.xml.rels:          XML document text
./xl/workbook.xml:                     XML document text
./_rels:                               directory
./_rels/.rels:                         XML document text
takk@deb8:~/Desktop/drawing$ 

見ての通り、全部XMLテキストです。

お描きのデータがあるファイルは、
./xl/drawings/drawing1.xmlです。
このファイルの行数を確認してみましょう。

takk@deb8:~/Desktop/drawing$ wc -l xl/drawings/drawing1.xml
1 xl/drawings/drawing1.xml
takk@deb8:~/Desktop/drawing$ 

一行。つまり改行されていないのでとても見にくいです。
複数行に分けたいと思います。XMLなので、”/>”が出現する箇所で改行を入れるとちょうど良いです。

takk@deb8:~/Desktop/drawing$ sed 's/\/>/\/>\n/g' < xl/drawings/drawing1.xml > result.txt
takk@deb8:~/Desktop/drawing$ 

冒頭部分のみチラ見してみます。

takk@deb8:~/Desktop/drawing$ head !$
head result.txt
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<xdr:wsdr xmlns:xdr="http://schemas.openxmlformats.org/drawingml/2006/spreadsheetdrawing" xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main"><xdr:twocellanchor><xdr:from><xdr:col>3</xdr:col><xdr:coloff>416517</xdr:coloff><xdr:row>6</xdr:row><xdr:rowoff>75339</xdr:rowoff></xdr:from><xdr:to><xdr:col>4</xdr:col><xdr:coloff>474635</xdr:coloff><xdr:row>14</xdr:row><xdr:rowoff>116775</xdr:rowoff></xdr:to><xdr:sp macro="" textlink=""><xdr:nvsppr><xdr:cnvpr id="3" name="フリーフォーム 2"/>
<xdr:cnvsppr/>
</xdr:nvsppr><xdr:sppr><a:xfrm><a:off x="2470042" y="1102102"/>
<a:ext cx="742627" cy="1410453"/>
</a:xfrm><a:custgeom><a:avlst/>
<a:gdlst><a:gd name="connsitex0" fmla="*/ 742627 w 742627"/>
<a:gd name="connsitey0" fmla="*/ 131305 h 1410453"/>
<a:gd name="connsitex1" fmla="*/ 623161 w 742627"/>
<a:gd name="connsitey1" fmla="*/ 270144 h 1410453"/>
takk@deb8:~/desktop/drawing$ 

行数を確認します。

takk@deb8:~/Desktop/drawing$ wc -l !$
wc -l result.txt
1649 result.txt
takk@deb8:~/Desktop/drawing$ 

情報量多いですね。また別の機会に調べることにします。

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA