已經解決
import os
import openpyxl
from openpyxl.utils import column_index_from_string
# 創建一個新的 Excel 文件
output_workbook = openpyxl.Workbook()
output_sheet = output_workbook.active
# 蒐索當前目錄中的所有 Excel 文件
path='D:/python/測試資料夾'
for file_name in os.listdir(path):
if file_name.endswith('.xlsx'):
# 加載工作簿
wb = openpyxl.load_workbook(filename=path+"/"+file_name)
# 獲取最後一個工作表
ws = wb.worksheets[-1]
# 循環搜索包含“保留款”且值為 0 的行
# for row in ws.iter_rows(min_row=1, max_row=ws.max_row, min_col=1, max_col=ws.max_column):
# for cell in row:
# if cell.value == '保留款':
# next_cell = row[column_index_from_string(cell.column) + 1]
# if next_cell.value == 0:
# # 文件名被寫入輸出工作表
# output_sheet.append([file_name])
# break
for index,row in enumerate(ws.iter_rows(min_row=1, max_row=ws.max_row, min_col=1, max_col=ws.max_column)):
for cell in row:
if cell.value == '保 留 款':
next_cell = row[10]
if next_cell.value != 0:
# 文件名被寫入輸出工作表
print(file_name)
output_sheet.append([file_name])
break
# 將結果保存到 Excel 文件中
output_workbook.save(path+"/"+'output.xlsx')
import os
import openpyxl
# 創建新的 Excel 文件
output_workbook = openpyxl.Workbook()
output_worksheet = output_workbook.active
# 設置要查找的單元格坐標(假設為 A1)
cell_coordinate = 'A1'
# 在當前目錄中查找所有 Excel 文件
for filename in os.listdir('.'):
if filename.endswith('.xlsx'):
# 打開 Excel 文件
workbook = openpyxl.load_workbook(filename)
# 選擇工作表
worksheet = workbook['Sheet1']
# 查找保留款欄位所在的行
for row in worksheet.iter_rows():
for cell in row:
if cell.value == '保留款':
row_num = cell.row
break
# 查找指定單元格的值是否為 0
cell = worksheet.cell(row=row_num, column=2) # 在保留款欄位旁的欄位中查找
if cell.value == 0:
# 將文件名寫入輸出工作表
output_worksheet.append([filename])
# 保存輸出工作簿
output_workbook.save('output.xlsx')
想問一下這是用甚麼語言寫得,
我Excel只會用VBA寫,
一、紀錄保留款列位置
二、找出要判斷=0的欄位置。
if cells(row,col) = 0 then
輸出
end if
我看到保留款那一列,要判斷是否為0的欄位是在"金額"欄位底下,
算下來應該是第五欄。應該是cells(row,5)
然後可以試試看
cell = worksheet.cell(row=row_num, column=2)
if cell.value == 0:
改成
worksheet.cell(row, 5) ==0,
然後VBA放變數的話,
row=row_num,column=2 提出來
cell = worksheet.cell(row, col)
最後就是看能不能下停止點,去debug。
看
if cell.value == 0:
# 將文件名寫入輸出工作表
output_worksheet.append([filename])
這列是不是確實有抓到數據。
或是cell = worksheet.cell(row=row_num, column=2)
row是否有沒有數字。
小弟才疏學淺,希望能提供不同思路給你