2

私はこれが多くのことを求めていることを知っていますが、Excelドキュメント内でpythonを使用して列を検索したり、行を検索したりする方法をかなり調べました。

ただし、これらのソリューションでは、アクセスできない場合に別のパッケージをインポートする必要があります。これに対する私の主な動機は、ドキュメント内にシェーダーがリストされている既製の Excel ドキュメントを利用し、簡単な検索に基づいてそれらを抽出することです。

python を使用して Excel ドキュメントを読み取ることに成功した人はいますか? もしそうなら、名前付きの行と名前付きの列を一致させることができましたか?


編集:必ずしも私の質問に答えるとは限りませんが、それが最も近い解決策であるため、回答が選択されました。ただし、ユーザーとそのExcelドキュメントが同じ列と行を使用して使用可能なデータベースを取得するというコンテキストを考えると、それでも非常に合理的なソリューションを提供します.

TL;DR:

外部パッケージを使用せずに列と行を比較してデータ セットを取得する簡単な方法はありません。データを配列として抽出し、どの「列」がどれであるかを指定する方が簡単です。

4

4 に答える 4

3

組み込みのcsv モジュールを使用して CSV ファイルを読み取ることもできるため、外部モジュールをインストールする必要はありません。

import csv
with open('names.csv') as csvfile:
     reader = csv.DictReader(csvfile)
     for row in reader:
         print(row['first_name'], row['last_name'])

リーダーのコンテンツ全体を取得してリストに詰め込むと、リストにはすべての行が含まれ、各行は最初の行のヘッダーを使用する辞書になります。特定のセルに到達するには、次のようにします。

records = []
with open('names.csv') as csvfile:
     reader = csv.reader(csvfile)
     for row in reader:
         records.append(row)

# cel "A4" would be
records[0][3]
于 2015-04-16T18:51:28.943 に答える
1

Excel ファイルをファイルとして保存し.csv、データをインポートして、引数をnumpy.genfromtxt使用してテスト ファイルを解析します。delimiter=','

例えば:

import numpy
data = numpy.genfromtxt("my_file.csv", delimiter=",")
# do stuff with data
于 2015-04-15T22:42:27.003 に答える
0

モジュール xlrd は既に python パッケージに含まれており、非常に使いやすいです。

import xlrd
xlsFile = xlrd.open_workbook(path)
sheetName = xlsFile.sheets()[0].name

for s in xlsFile.sheets():
    for row in range(s.nrows):
        print s.cell(row, 1)
于 2015-04-16T13:45:52.827 に答える