###前提・実現したいこと
ITの業種ではありませんが、仕事を効率化するためにプログラミングを始めました。
故に、見苦しい質問、お許しください。。。
python3を使って、csvファイルのデータを読み込んで、決まった規則に従って、別のxlsxファイルへ
書き込むという単純なシステムを作りたいと思っています。
はじめはmacで作って実行した結果、狙い通りのアウトプットが得られたのですが、
同じシステムをwindowsで動作させたいと思い、軽い気持ちで同じコードを入力したら
エラーが出てしまいました。
中身としてはどうやら出力先のエクセルシートを認識できないというものなのですが、
理由がわからずに立往生を喰らっています。。。
###発生している問題・エラーメッセージ
出てきたエラーメッセージは以下の通りです。↓
KeyError Traceback (most recent call last)
<ipython-input-2-a9c5cbcb8923> in <module>()
15
16 #処理シートの指定
---> 17 sheet = wb.get_sheet_by_name("sheet1")
18
19 for(num,row) in enumerate(rows):
C:\Users\nino1\Anaconda3\lib\site-packages\openpyxl\compat_init_.py in new_func(*args, **kwargs)
58 lineno=_code.co_firstlineno + 1
59 )
---> 60 return obj(*args, **kwargs)
61 return new_func
62
C:\Users\nino1\Anaconda3\lib\site-packages\openpyxl\workbook\workbook.py in get_sheet_by_name(self, name)
203
204 """
--> 205 return self[name]
206
207 def contains(self, key):
C:\Users\nino1\Anaconda3\lib\site-packages\openpyxl\workbook\workbook.py in getitem(self, key)
229 if sheet.title == key:
230 return sheet
--> 231 raise KeyError("Worksheet {0} does not exist.".format(key))
232
233 def delitem(self, key):
KeyError: 'Worksheet sheet1 does not exist.'
###該当のソースコード
python
1import csv 2 3def getCsvData(targetFile) : 4 csvData = [] 5 f = open(targetFile, 'r') 6 dataReader = csv.reader(f) 7 8 for row in dataReader: 9 csvData.append(row) 10 return csvData 11 12#1 python3 13import openpyxl, pprint 14import xlrd 15 16targetSheets = [] 17inputExcel = '/Users/npy31/Downloads/python/test/target.xlsx' 18outputExcel = inputExcel.replace('.xlsx', '_result.xlsx') 19 20#csvファイル読み込み 21hoge = '/Users/npy31/Downloads/python/test/input.csv' 22rows = getCsvData(hoge) 23 24book = xlrd.open_workbook(inputExcel) 25wb = openpyxl.load_workbook(inputExcel) 26 27#処理シートの指定 28sheet = wb.get_sheet_by_name("sheet1") 29 30for(num,row) in enumerate(rows): 31 number = row[0] 32 hatyo = row[1] 33 val = rpw[2] 34 35 targetRow = 5+ num 36 37 sheet['B' + str(targetRow)].value = number 38 sheet['C' + str(targetRow)].value = sample 39 sheet['D' + str(targetRow)].value = val 40wb.save(outputExcwl) 41print('完了')
###試したこと
恥ずかしながら手も足も出ていません。。。
###補足情報(言語/FW/ツール等のバージョンなど)
〇python3.6.1
〇上記プログラムはmacだと正常に動作
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/21 16:09