AttributeError: ‘str’ object has no attribute ‘strftime’というエラー解決について、私のケースをご紹介します。
どんな時に起こった?
ExcelのA4セルの値(2024/1/22)をB1セルに、strftimeを使って(2024/01/22)の表示形式で代入しようとしたとき、今回のエラーが発生。
その時のコードがこちら。
エラーメッセージからわかること
7行目のws.cell(1,2).value.strftime…の部分が問題だと色付きで指摘されている。
エラーメッセージより、「ws.cell(1,2).valueがstr(文字列)です。strftimeは使用することができません。」
エラーの原因を調べて解決する
ws.cell(1,2).valueの値の型をtype()を使って調べてみると、エラーで指摘されたようにstrだった。
この値を、number_formatプロパティで年月日に変換、B1セルに代入したところ、エラーが解消されて希望通りに出力されました。
修正したコードはこちらです。
import openpyxl
from datetime import datetime
wb=openpyxl.load_workbook("日程.xlsx")
ws=wb.worksheets[0]
ws.cell(1,2).value=ws.cell(4,1).value
ws.cell(1,2).number_format="yyyy/mm/dd"
wb.save("日程1.xlsx")
※number_formatを使用しても、datetime型には変換されません。以前の記事内容に誤りがあったため訂正いたします。