python - 根据行号格式化行
问题描述
我正在尝试根据行号使用 openpyxl 格式化行。这是我的尝试:
for row in ws2.iter_rows(min_row=3, min_col=3, max_col=26):
if ((row-3)//4)+1 % 2 == 0:
for cell in row:
cell.fill = PatternFill(bgColor="A0ACEA", fill_type="solid")
else:
for cell in row:
cell.fill = PatternFill(bgColor="D3D7F0", fill_type="solid")
我收到以下错误。我明白这意味着什么,但我不知道如何解决它。
if ((row-3)//4)+1 % 2 == 0:
TypeError: unsupported operand type(s) for -: 'tuple' and 'int'
解决方案
您在第一个 for 循环中获得的每一行都是一个元组,而不是一个 int。当你尝试时row-3
,你会得到一个错误,因为你不能对元组和整数进行算术运算。
你得到的是行本身,而不是行的索引。这正是enumerate
它的用途。
尝试这个:
for i, row in enumerate(ws2.iter_rows(min_row=3, min_col=3, max_col=26)):
if ((i-3)//4)+1 % 2 == 0:
推荐阅读
- express - Express js ip 规范化
- r - R在每张表上应用row_to_names函数后合并多个excel表
- c++ - 如何使用多次调用的 openssl evp_encryptupdate 进行加密?
- php - HTML视频音频工作但视频为空白
- swift - HKLiveWorkoutDataSource - 如何跟踪 ElevationAscended 和 ElevationDescended?
- java - 没有从日历中选择日期..我已经解决了这个问题。问题已解决
- python - 在 Django Guardian 中,我如何确定哪个组授予用户对对象实例的权限?
- java - Java Rest API 订阅新值
- asp.net - IIS 从子文件夹重定向到不同的域
- ios - 没有 VStack 没有错误。有没有不需要写VStack的情况?