Excelのxlsxファイルの中身は、xml表現されたexcelデータがzipで固められていることは知られている。
で、いま、xlsxファイルが見られる環境じゃないのに(つまり、Excel2003しか持ってないのに)、xlsxファイルを見なきゃいけない状況になって、コンバーターとか使えば開けるんだろうけど、それも面倒なので、ZIPを回答してみてびっくらこ(@_@!)というので、メモメモ。
まず、xml表現されたexcelデータを獲得するまで
(1)「なんとかかんとか.xlsx」の拡張子を「なんとかかんとか.zip」に変える
(2)(WindowsXP以降のOSを使っていたら)(1)のファイルを右クリックして、
「すべてを展開」を選択、ZIPを解凍する
(3)できたフォルダ(「なんとかかんとか」)の中に、「xml表現されたexcelデータ」
が入っている。
このフォルダ(「なんとかかんとか」)をダブルクリック。
(4)中に、「xl」というフォルダがある。そこをダブルクリック
(5)「xl」フォルダの中に「worksheets」というフォルダがある。それをダブルクリック
(6)「worksheets」の中に、シートのxml表現されたものがある。それをダブルクリック。
→IEが入っていて、xmlがIEに結びついている場合。
そうでなければIEからそのファイルを開くなり、エディタで開くなり・・・
そうすると、シートのXML表現が見れるけど、それでびっくる一気飲み(@_@!)
構造はこんな感じ
worksheet sheetViews sheetView sheetData row c f v
つまり、データは、sheetDataタグ内にあり、rowで各行ずつ入っていて、その中に、いくつかのc(セル)タグがある。
このセルタグ8c)の
引数r がセルの位置("A1"とか、"E5"とか)をあらわし、
子要素vが値
子要素fが関数
をしめす。
ただし、文字列に関しては、vが値を示すのではなく、値のインデックスを示す。
(cタグの引数tがsのものが、文字列のようだ)
で、それら文字列は、(4)ででてきたxlフォルダの中、(つまり、worksheetsとフォルダと同列)に
sharedStrings.xmlというのがあって、そこに入っている。
そのxmlを開くと、siごとに文字があって、siの直下のtが文字列・・・なのはいいんだけど、
rPhっていうタグがあり、その中に、データが形態素解析された形で入ってるんですけど(@_@!)
まじっすかあ・・・
なんか、xlsxファイルすげー・・・
もちょっと、しらべてみたくなった。