各位好,目前正在使用python将没有经过整理的raw data(csv档案)自动填入到
整理好的表格(xlsx)
问题背景:在整理好的表格里面会有算average以及t test的行数。
因此我想要在填入的时候如果遇到average和t test(有公式)
的那行数可以跳过然后填入到下一个空白单元格
问题描述:在遇到average和t test的时候数值有顺利跳过,但是他会把average和
t test给算在循环里面,导致我所有的数值没有办法完整的被填入
举例:raw data长度是35,因此xlsx应该要填入35个数值,但是有4个average、t
test不应该被填入也不该被计算在循环里面。但是实际上只有被填入了27个值
,后面8个都是空白的
workbook = load_workbook(file2)
sheet = workbook[sheet_name]
# 定义需要跳过的关键字列表
skip_keywords = ['ave.', 't-TEST', 't test']
fill_index = 0 # 用来标记数据填充的位置
for i in range(len_file1):
# 获取当前单元格
current_cell = sheet.cell(row=row_index_file2 + 2, column=i + 2)
cell_value = current_cell.value
# 如果单元格是公式(以 '=' 开头),跳过
if isinstance(cell_value, str) and cell_value.startswith('='):
continue
# 检查是否需要跳过当前列,根据关键字匹配
if any(keyword in str(cell_value or '') for keyword in skip_keywords):
continue
# 如果单元格值是 None 或 '-',进行填充
if cell_value in [None, '-']:
try:
current_cell.value = column_c_file1.iloc[fill_index]
fill_index += 1 # 增加填充索引
except IndexError:
print(f"警告:索引 {i} 超出列范围,无法填充!")
break
希望各位能提供我一点我的循环的问题出在哪里,谢谢各位