pythonでExcelの.xlsxファイルを開こうとしていますが、その方法が見つかりません。pandasを使用してみましたが、 NumPyというライブラリを使用したいのですが、numpyをインストールしようとしましたが、それでもnumpyが見つかりません。
Xlrdライブラリも使用してみましたが、次のトレースバックがあります。
Traceback (most recent call last):
File "C:\test.py", line 3, in <module>
book = open_workbook('test.xlsx')
File "C:\Python27\lib\site-packages\xlrd\__init__.py", line 370, in open_workbook
biff_version = bk.getbof(XL_WORKBOOK_GLOBALS)
File "C:\Python27\lib\site-packages\xlrd\__init__.py", line 1323, in getbof
raise XLRDError('Expected BOF record; found 0x%04x' % opcode)
XLRDError: Expected BOF record; found 0x4b50
XLRDが.xlsxファイルを読み取れないためだと思いますか?
誰かアイデアがありますか?
編集:
import csv
with open('test.csv', 'rb') as csvfile:
data = csv.reader(csvfile, delimiter=',')
for row in data:
print "------------------"
print row
print "------------------"
for cell in row:
print cell
たぶん、.xlsxを.csvファイルにエクスポートできますか?
次に、試すことができます:
import csv
with open('file.csv','rb') as file:
contents = csv.reader(file)
[x for x in contents]
これは便利かもしれません: http://docs.python.org/2/library/csv.html#csv.reader
お役に立てば幸いです。
編集:
F13などの特定のセルを検索する場合は、マトリックスのようなネストされたリストを作成し、それらが各要素を参照するようにすることができます。
import csv
with open('file.csv','rb') as file:
contents = csv.reader(file)
matrix = list()
for row in contents:
matrix.append(row)
次に、matrix[5][12]
を使用してF13にアクセスします。
追伸:私はこれをテストしませんでした。 「row」が各セルを要素とするリストの場合、すべての行をマトリックスに追加し続けるため、最初のインデックスは行番号、2番目のインデックスは列番号です。
linuxディストリビューションを使用しているようです。私も同じ問題を抱えていましたが、これは「xlwt」ライブラリでは発生せず、「xlrd」でのみ発生します。私がしたことはこの問題を解決する正しい方法ではありませんが、それはうまくいけばすぐにその質問に答えることができればうまくいきます;私はWindowsに「xlrd」をインストールし、フォルダを取り、LinuxのLinuxに貼り付けました私のpythonコードがあり、それが機能したディレクトリ。
他の人もこれを読んでいることを私は知っているので-
次のモジュールをインストールできます(自動的にはありません) https://pypi.python.org/pypi/openpyxl
あなたはそれを使用する方法の素晴らしい内訳を得るために以下を読むことができます