这是我的代码。 path2是创建和修改的新文件的路径。 .xlsx文件中确实存在包含“4/1/2017”
的单元格wb = openpyxl.load_workbook(path2, read_only=False)
ws = wb.active
for row in ws.iter_rows():
for cell in row:
if cell.internal_value == "4/1/2017":
print(cell.value)
cell.internal_value = endDate
wb.save(path2)
答案 0 :(得分:1)
您正在将单元格值与字符串"4/1/2017"
进行比较,但该单元格实际上可能包含由Excel格式化的日期值,看起来像4/1/2017' in the spreadsheet. If the cell actually contains a date, then
openpyxl will read it as a
datetime `object,你需要使用正确的值来测试日期时间的单元格值。
import datetime
if cell.value == datetime.datetime(2017, 4, 1):
print(cell.value)
日期的cell.internal_value
是float
值,这是Excel存储日期的方式。如果要对此进行测试,则需要将其与日期的浮点表示进行比较。
如果您有一个指定日期的字符串,您可以使用datetime.datetime.strptime()
将字符串转换为日期时间对象,以便与单元格内容进行比较。
date = datetime.datetime.strptime("4/1/2017", "%m/%d/%Y")
if cell.value == date:
print(cell.value)