如何使用嵌套 for 循环将列表列表中的项目插入 excel 单元格?

How to insert items from list of list into excel cells using nested for loops?

我使用日历模块将当月的天数保存在列表中。我希望日期(又名项目)显示在我创建的 excel 文件中。

在我的代码中,我使用 for 循环来遍历指定范围的单元格并在每隔一行中插入当前月份的日期。

# Importing classes from modules
from openpyxl import Workbook
from openpyxl import load_workbook
from openpyxl.utils import get_column_letter
import datetime
import calendar

# Creating a workbook
dest_filename = r"C:\Users\abbas\OneDrive\Desktop\Prog\Flex\Working houres.xlsx"
wb = load_workbook(dest_filename)
ws = wb.active
ws.title = "Working hours"

# Current date
ws["B1"] = datetime.datetime.now().strftime("%Y")
ws["C1"] = datetime.datetime.now().strftime("%b")
ws["E1"] = datetime.datetime.now().strftime("%a")

#days_in_the_month = calendar.monthcalendar(2022,5)
days_in_the_month = list(calendar.Calendar(firstweekday=0).monthdayscalendar(2022, 5))
cell_range = ws.iter_rows(min_row=4, max_row=15, min_col=2, max_col=8) 

for rows in cell_range:
    for cell in rows:
        if cell.value is None:    
            cell.value = days_in_the_month[cell]
        elif cell.value is not None:
            continue
                
wb.save("Working hours.xlsx")

有人可以向我解释一下如何将列表 days_of_the_month 中的日期插入第 4、6、8、10、12 和 14 行的单元格中吗?

以及此错误的含义:

    cell.value = days_in_the_month[cell]
TypeError: list indices must be integers or slices, not Cell

我一直在尝试理解嵌套循环并反复试验,以了解为什么我无法在没有成功的情况下解决这个问题。

因为 cell 不是整数,所以这不是一个有效的语句,因为您正在尝试访问列表中的索引。

我认为是这样的:

for rows in cell_range:
    for cell in rows:
        if cell.row % 2 == 0:
            cell.value = days_in_the_month[(cell.row // 2) - 4][cell.column - 2]  # Subtracting 4 and 2 from rows and cols as they are the starting offsets.

应该可以解决问题。