2

Python は EXCEL と通信しています...特定の列データの行を検索/検索できるようにする方法を見つける必要があります。今、行全体を 1 つずつスキャンしています... FIND/SEARCH/REPLACE のような関数があれば便利です.... pyExcelerator または xlrd モジュールでこれらの機能が表示されません.. win32com を使用したくありませんモジュール!それは私のツールウィンドウをベースにします!

Python を介して Excel の行を検索/検索する....何かアイデアはありますか?

4

4 に答える 4

6

@John Fouhy: [私は xlwt のメンテナーであり、xlrd の作成者です]

pyExcelerator のスプレッドシート読み取り部分は非常に非推奨となったため、xlwt から完全に姿を消しました。Excel 2.0 から 11.0 (Excel 2003) まで、または互換性のあるソフトウェアで作成された XLS ファイルを Python 2.1+ を使用して読み取るには、xlrd を使用します

その「単純な最適化」は、xlrd では必要ありません。

import xlrd
book = xlrd.open_workbook("foo.xls")
sheet = book.sheet_by_number(0) # alternatively: sheet_by_name("Budget")
for row_index in xrange(sheet.nrows): 
    for col_index in xrange(sheet.ncols):
于 2009-06-06T03:12:29.693 に答える
2

できません。これらのツールは検索機能を提供しません。ループ内でデータを反復処理し、自分で検索する必要があります。ごめん。

于 2009-04-22T20:22:54.253 に答える
0

pyExcelerator を使用すると、最初に最大の行インデックスと列インデックスを見つけて (そしてそれらを格納して)、単純な最適化を行うことができます。これにより、(row, i) for i in range(maxcol+1)すべての辞書キーを反復処理する代わりに反復処理を行うことができます。キーのセットに値をマッピングする辞書を調べて構築したい場合を除き、これが最善の方法かもしれません。

ちなみに、pyExcelerator を使用してスプレッドシートを作成している場合は、いくつかのバグがあることに注意してください。2 30 から 2 32 (またはそのあたり)までの整数を書き込むものに遭遇しました。最近、元の作者に連絡するのは明らかに難しいのでxlwt、(既知の) バグを修正するフォークです。スプレッドシートを作成する場合は、pyExcelerator のドロップイン代替品です。あなたはできるしimport xlwt as pyExcelerator、他に何も変えることはできません。ただし、スプレッドシートは読み取れません。

于 2009-04-22T22:55:56.803 に答える