1

Excelファイルを読み取る方法を探しています(書き込みも重要ではありませんが)。MS は 2007 形式用の OO XML ツールキットを提供しており、ツールキットは問題ないと聞いたので、97-2003 形式を意味します。

私がこれまで行ってきたことは、信じられないほど多くの問題と欠点がある OleDB (Microsoft Jet) を使用しただけです :)

多くの無料ライブラリ (つまり、Codeplex 上) があることは知っていますが、それらは OldeDb を使用しています (そのため、同じ問題に悩まされています)。
私が見つけたが、まだ試していない唯一のものはhttp://exceldatareader.codeplex.com/で、明らかに Excel ファイルのバイナリ読み取りを行っています。

あなたが使用した、または読んだことのあるライブラリについて、あなたの推薦と証言を聞きたいです。

編集: わかりにくかったら申し訳ありませんが、.NET ライブラリのことです。

4

4 に答える 4

2

あなたの制約が何であるかはわかりませんが、もし私があなただったら (そして、これは話した経験です、私を信じてください)、Excel 以外のもので Excel ファイルを読むことは避けます。私の推奨事項は、シンプルに保ち、CSV に固執することです。ほとんどのライブラリ (xlrd付属) は Excel の基本機能のみをサポートし (グラフやピボットテーブルはサポートしていません)、CSV も同様です。

于 2010-10-08T18:45:38.000 に答える
1

特定の言語の好みはありましたか?
Python に慣れている場合は、xlrdを心からお勧めします。

以下のコード サンプルほど簡単にはなりません。
ワークブックのシートから特定のパターンを検索します。

import re, xlrd

def re_search(fname, query):
    ''' iterate through sheets of workbook searching for `query` '''
    book = xlrd.open_workbook(fname) 
    for sheet in book.sheets(): 
        for rowx in xrange(sheet.nrows): 
            for colx in xrange(sheet.ncols): 
                cell = sheet.cell(rowx, colx) 
                if cell.ctype == xlrd.XL_CELL_TEXT and query.search(cell.value):
                    yield cell.value

if __name__ == '__main__':
    my_pattern = re.compile('[A-Z]{3} (.*)')

    for matched_re in xlresearch('my_xl_file.xls', my_pattern):
        print matched_re
于 2010-10-08T17:54:28.373 に答える
0

あなたの場合はわかりませんが、マシンに Excel がインストールされている場合は、OLE インターフェイスを介して使用できます。

于 2010-10-10T16:02:10.317 に答える