ディレクトリから Excel ワークブックを開き、最初のワークシートの名前を変更して、最初のワークシートと後続のワークシートでストアド プロシージャを実行することになっているこの python スクリプトがあります。スクリプトを実行するとエラーが表示されます - 'str' オブジェクト属性 'title' は読み取り専用です。ヘルプや提案をいただければ幸いです。
import os
import pyodbc
import openpyxl
from openpyxl import load_workbook
dirList = os.listdir("""\\Raw_Data\\HSRx""")
#database connection
#loop through excel workbooks
#loop through excel sheets in each workbook
#run stored proc on each worksheet
#close files and disconnect to sql server
conn = pyodbc.connect('DRIVER={SQLServer};SERVER=localhost;DATABASE=mydb;UID=myname;PWD=mypwd')
cursor = conn.cursor()
for n in dirList:
path =os.path.join("""\\Raw_Data\\HSRx""",n)
workbook = openpyxl.reader.excel.load_workbook(path)
worksheets = workbook.get_sheet_names()
sheet = ['None','None']
i = 0
print n
for worksheet in worksheets:
worksheet.title = "Sheetone"
sheet[i] = "Sheetone"
i += 1
print worksheet
cursor.execute("""exec SP_IMPORT_HSRx_Ins ?, ?, ?""",n,sheet[0],sheet[1])
cursor.commit()
conn.close()
トレースバックは次のとおりです。
CS NOV20 12.xlsx Traceback (most recent call):
File "HSRXRecons.py", line 25, in <module> worksheet.title = "Sheetone"
AttributeError: 'str' object attribute 'title' is read-only