读取Excel文件:将日期变量与Excel内容匹配时出错

时间:2016-01-20 06:43:23

标签: python excel datetime

当我的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; - 我能做些什么来解决它?

谢谢。

1 个答案:

答案 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

我没有测试它,但我认为应该这样做。