少し助けてもらえることを願っています。私は、DownTimeと題された1つのExcelワークブックからデータを取り出し、コイルが経験した "コード"と一致するコイル(製品)番号の辞書を作成しようとしています。私はこの部分を達成することができました、それはかなり簡単です。1つのExcelブックから辞書を作成し、別のブックとキーを一致させて値を貼り付けます。
私は、コイル番号を別のExcelワークブックと一致させ、対応する「コード」に貼り付ける方法です。だからここ
は、私がこれまで持っているもので、次のように
import openpyxl
from collections import defaultdict
DT = openpyxl.load_workbook('DownTime.xlsm')
bl2 = DT.get_sheet_by_name('BL2')
CS = openpyxl.load_workbook('CoilSummary.xlsm')
line = CS.get_sheet_by_name('BL2')
#opening needed workbooks with specific worksheets
coil =[]
rc = []
code = defaultdict(set)
cnum = ''
next_row = 2
col = 32
for row in range(2, bl2.max_row + 1):
coil = bl2['K' + str(row)].value
rc = bl2['D' + str(row)].value
code[coil].add(rc)
# Creating a dictionary that represents each coil with corresponding codes
for key,value in code.items():
cnum = line['B' + str(row)].value
if cnum == key:
line.write(next_row, col, value)
next_row+=1
# Attempting to match coil numbers with dictionary and column B
# if the key is present, paste the value in column AF
CS.close()
DT.close()
辞書のサンプル出力はなります
('M30434269': {106, 107, 173}, 'M30434270': {132, 424, 106, 173, 188}, 'M30434271': {194, 426, 202, 106, 173}})
は約22,000のエントリがあります。だから私は達成したいものを改めて表明する
:
私は、私はワークブックのダウンタイムから作られたこの辞書を取るCoilSummaryの列でキーと一致し、キーは、セルエントリと一致した場合、ペーストしたいですテーブルの最後の空白のセルに値を設定します。
例:
"CoilNum" "Date" "Shift" "info1" "info2" "Code"
M30322386 03/03/2017 06:48:30 3 1052 1722 ' '
M30322390 03/03/2017 05:18:26 3 703 1662 ' '
私は辞書のキーと「CoilNum」と一致し、「コード」に値をペーストしたいと思います。
私はそれを十分に説明したかったと思います。コードの助けを借りたり、参考のためにウェブサイトを指したりすると、非常に感謝しています。私はちょうど手でこれらのコードのすべてを入力する必要はありません!
ありがとうございました!