当我的Excel文件中第一行的内容(包含2016-01-20之类的日期)与明天的日期匹配时,我试图让我的程序执行特定的任务,分配给变量" d"。
以下是代码的摘录:
reader = openpyxl.load_workbook(sys.argv[1])
sheet = reader.active
for row in range(4, sheet.max_row + 1):
i = date.today()
print i
d = date.today() + timedelta(days=1)
if row[0] == d:
sms_count = 0
total_sms_count = 0
#do some task
但是,我收到了错误:
Traceback (most recent call last):
File "SMS_Sender.py", line 49, in <module>
if row[0] == d:
TypeError: 'int' object has no attribute '__getitem__'
Geralds-MacBook-Pro:demos geraldkwok$
任何人都可以告诉我为什么我无法将Excel文件列中的日期与变量&#34; d&#34; - 我能做些什么来解决它?
谢谢。
答案 0 :(得分:1)
好的,对不起,我们所有的评论都有些令人困惑。我们的意思如下:
for row in range(4, sheet.max_row + 1):
# do something
说:对于4的范围内的每个整数,直到sheet.max_row + 1,做一些事情。
例如,您必须打开Excel文件(using xlrd or pandas is possible)并将其行读入某些列表rows
。然后,你可以这样做:
for row in rows:
你会得到一个包含句子的row
!
=============================================== ====================== 编辑:
示例代码:
# Open the sheet
reader = openpyxl.load_workbook(sys.argv[1])
sheet = reader.active
# Get the day of tomorrow
d = date.today() + timedelta(days=1)
# For each row, compare first cell and day of tomorrow
for rowNum in range(1, sheet.max_row+1):
firstCell = sheet.cell(row=rowNum, column=1)
if int(firstCell) == d:
# Do some task
我没有测试它,但我认为应该这样做。