仕事でexcelとpythonを使った業務効率化を使おうと今日から勉強を始めたのですが、恥ずかしながら初手からつまずいております。
pandsとopenoyxlをインストールしたうえで下記のようなプログラムを実行すると「sample1.xlsx」というファイルが作成されて開くとプログラム通りの内容が記述されていました。
ここまではいいのですが、再度実行するとエラーになりました。
対照実験を行ったときに原因が「sample1のエクセルファイルが存在すること」だと考えました。
私はこのプログラムをもとに内容を書き換えて、自身のプログラムを作りたいのですが、新規保存がデフォルトになっっているとその実現が大変困難です。
お知恵をお貸しいただけますと幸いです。
エラー文:
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
python
1import openpyxl as px 2import random 3 4# excelのシートの中のA1,B1,C1,D1にDay,Product,Place,Feeと書き込む 5wb = px.Workbook() 6ws = wb.active 7sheet = wb.worksheets[0] 8ws.title = 'sheet_1' 9ws['A1'] = '月日' 10ws['B1'] = '製品' 11ws['C1'] = '支店' 12ws['D1'] = '利益' 13 14# B列に製品1と製品2のどちらかをランダム生成する 15for k in range(2, 501): 16 a = ('製品1', '製品2') 17 ws['B'+ str(k)] = random.choice(a) 18 19# C列に企業1と企業2のどちらかをランダム生成する 20for m in range(2, 501): 21 b = ('支店1', '支店2') 22 ws['C'+ str(m)] = random.choice(b) 23 24# D列に80~155の範囲の値の中から数字をランダムに生成する 25for n in range(2, 501): 26 ws['D'+ str(n)] = random.randint(10000, 100000) 27 28#ランダムに生成する月日の範囲を2020-1-1~2020―12-17と決める 29from datetime import timedelta 30from datetime import date 31from random import randrange 32import random 33start_date = date(2020, 1, 1) 34end_date = date(2020, 12, 17) 35 36time_between_dates = end_date - start_date 37days_between_dates = time_between_dates.days 38random_number_of_days = random.randrange(days_between_dates) 39random_date = start_date + timedelta(days=random_number_of_days) 40 41 #A列に2020―1-1~2020―12―17の範囲でランダムに生成する 42for p in range(2, 500): 43 start_date = date(2020, 1, 1) 44 end_date = date(2020, 12, 17) 45 46 time_between_dates = end_date - start_date 47 days_between_dates = time_between_dates.days 48 random_number_of_days = random.randrange(days_between_dates) 49 random_date = start_date + timedelta(days=random_number_of_days) 50 51 ws['A'+ str(p)] = (random_date) 52 #セルの大きさ調整 53 sheet.column_dimensions['A'].width = 13 54 55#変更内容を保存する 56wb.save('sample1.xlsx') 57