Python( CSVファイルではない)でExcel(XLS)ファイルを読み取るための最良の方法は何ですか。
このタスクを実行するためにPythonでデフォルトでサポートされている組み込みパッケージはありますか?
Python( CSVファイルではない)でExcel(XLS)ファイルを読み取るための最良の方法は何ですか。
このタスクを実行するためにPythonでデフォルトでサポートされている組み込みパッケージはありますか?
ファイルの読み取りにはxlrdを強くお勧めし.xls
ます。ただし、いくつかの制限があります ( xlrd github ページを参照):
警告
このライブラリは、.xls ファイル以外は読み取れなくなります。新しいファイル形式を読み取る代替手段については、 http://www.python-excel.org/を参照して ください。
以下もサポートされていませんが、安全かつ確実に無視されます。
- Charts, Macros, Pictures, any other embedded object, including embedded worksheets. - VBA modules - Formulas, but results of formula calculations are extracted. - Comments - Hyperlinks - Autofilters, advanced filters, pivot tables, conditional formatting, data validation
パスワードで保護されたファイルはサポートされていないため、このライブラリでは読み取ることができません。
voyager は、COM 自動化の使用について言及しました。数年前に自分でこれを行ったので、これを行うのは本当の PITA であることに注意してください。警告の数は膨大で、ドキュメントが不足していて面倒です。私は多くの奇妙なバグや落とし穴に出くわし、そのうちのいくつかは理解するのに何時間もかかりました.
更新: 新しい.xlsx
ファイルの場合、読み取りと書き込みに推奨されるライブラリはopenpyxlのようです(ありがとう、Ikar Pohorský)。
ここにリストされているライブラリのいずれか( JExcelApiに基づく Pyxlreader やxlwt など)を使用できます。また、ファイルの読み取りにExcel 自体を使用するための COM オートメーションを使用できますが、そのために、ソフトウェアの依存関係として Office を導入しています。これは常にオプションとは限りません。
Python Excelerator もこのタスクを処理します。http://ghantoos.org/2007/10/25/python-pyexcelerator-small-howto/
Debian と Ubuntu でも利用できます。
sudo apt-get install python-excelerator
(Python 以外の) プログラム xls2csv の実行を検討することもできます。xls ファイルをフィードすると、csv が返されます。
ファイルが本当に古い .xls である場合、これは、base open() と pandas を使用するだけで python3 で機能します。
df = pandas.read_csv(open(f, encoding = 'UTF-8'), sep='\t')
私が使用しているファイルはタブ区切りであることに注意してください。less またはテキスト エディターで .xls を読み取って、区切り文字を嗅ぎ分けることができる必要があります。
UTF-8 の問題が原因で、私は xlrd をうまく使いこなすことができませんでした。
古い Excel ファイルには、使用されている OLE 構造化ストレージ形式を読み取ることができるOleFileIO_PL モジュールがあります。