[問題] excel填入資料問題

作者: qaz950270 (E.T)   2025-01-19 22:55:06
各位好,目前正在使用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
希望各位能提供我一點我的迴圈的問題出在哪裡,謝謝各位
作者: lycantrope (阿寬)   2025-01-20 08:42:00
有可能len_file1 < len(column_c_file1)

Links booklink

Contact Us: admin [ a t ] ucptt.com