2017-10-05 82 views
0

並列処理は初めてですが、複数のExcelファイルを同時に解析するようになっています。それは私がopenpyxlだけを使うときにはうまくいくが、それは基本的なXMLパーサである。XLWingsを並列処理で使用する

pywintypes.com_error: (-2147221008, 'CoInitialize has not been called.', None, None) 

これは私が初期化するために使用するコードはおおよそ次のとおりです。私はXLWingsを使用する部分が含まれている場合、私は次のエラーを取得する(私は、ファイルの検証目的のためにExcelで数式を評価する能力を活用するのが好き)新しいXLWingsインスタンスをロードしてワークブックをロードしてください:012WWingsにいくつかの同時実行インスタンスを開く方法はありますか? thisのようなことをやってみるべきですか?もしそうなら、私はどのように初期化がXLWingsにスレッドを渡すことで動作するか分からない。

答えて

1

解決策を見つけたので、実際には驚くほど簡単でした。私はちょうど私のxw.apps.add前pythoncomパッケージからpythoncom.CoInitialize()を追加しました()の呼び出し:

ParallelProcessController.py

LoadWorkbook.py

import xlwings as xw 
import pythoncom 

def openWorkbook(self, filePath): 

    pythoncom.CoInitialize() 

    app = xw.apps.add() 
    wb = app.books(filePath) #Note that this is called only once for each workbook. 
    app.quit()