実現したいこと
ダウンロードした.xlsxのファイルをpandasのデータフレームで開きたいです。
前提
大量の.xlsxファイルがあります。
これらは一度直接開いてから、上書き保存するとpandasで読み込めるのですが、
そのままpd.read_excelしても読み込めません。
どうやら中身が圧縮されたxmlファイルで構成されており、そのまま開けないようです。
発生している問題・エラーメッセージ
KeyError: "There is no item named '[Content_Types].xml' in the archive"
該当のソースコード
python
1import pandas as pd 2fname = 'file.xlsx' 3df = pd.read_excel(fname) 4print(df)
試したこと
中身はこのような階層でした。
encordingを変えたりもしましたが、読み込めませんでした。
どなたかヒントだけでも良いので助けていただきたいです。
python
1from zipfile import ZipFile, ZIP_DEFLATED, BadZipfile 2import xml.etree.ElementTree as ET 3 4archive = ZipFile(fname) 5for _i in archive.infolist(): 6 print('zip info: {}'.format(_i.filename)) 7 8# 出力 9zip info: xl/worksheets/sheet1.xml 10zip info: _rels/.rels 11zip info: xl/styles.xml 12zip info: [content_types].xml 13zip info: xl/_rels/workbook.xml.rels 14zip info: xl/sharedstrings.xml 15zip info: xl/workbook.xml
補足情報①
pandasで問題なく読み込めるファイル(一度直接開いて上書き保存したもの)の階層を追記
一度上書き保存したら※のファイルが増えますが、なぜ増えるのかがわからないです。
zip info: [Content_Types].xml zip info: _rels/.rels zip info: xl/_rels/workbook.xml.rels zip info: xl/workbook.xml zip info: xl/styles.xml zip info: xl/theme/theme1.xml ※ zip info: xl/worksheets/sheet1.xml zip info: xl/sharedStrings.xml zip info: docProps/core.xml ※ zip info: docProps/app.xml ※
補足情報②
https://qiita.com/ty21ky/items/44d0f6079440247b8698
拡張子を.xlsxを.odsに変更して、掲載の試してみましたが
KeyError: '.ods'
となりました。
回答1件
あなたの回答
tips
プレビュー