min_row
:可以回傳工作表有資料的最小列數max_row
:可以回傳工作表有資料的最大列數min_column
:可以回傳工作表有資料的最小欄數max_column
:可以回傳工作表有資料的最大欄數
#ch3_1.py
import openpyxl
fn = "out1_4.xlsx"
wb = openpyxl.load_workbook(fn,data_only=True)
ws = wb.active
print(f"工作表有資料最小列數 = {ws.min_row}")
print(f"工作表有資料最大列數 = {ws.max_row}")
print(f"工作表有資料最小欄數 = {ws.min_column}")
print(f"工作表有資料最大欄數 = {ws.max_column}")
ws.iter_rows()
在特定區間內,逐列遍歷
ws.iter_rows(min_row,max_row,min_col,max_col)
ws.iter_cols()
在特定區間內,逐欄(行)遍歷
ws.iter_rows(min_row,max_row,min_col,max_col)
以下是要進行的excel表,數據不多,但比較好釐清一些觀念,所以可以自己用更多的資料進行分析!
for row in ws.iter_rows(min_row=2, max_row=10, min_col=1, max_col=4):
for cell in row:
print(cell.value, end=' ')
print()
執行結果
for col in ws.iter_cols(min_row=2, max_row=10, min_col=1, max_col=4):
for cell in col:
print(cell.value, end=' ')
print()
執行結果
total_revenue = 0
for row in ws.iter_rows(min_row=2, max_row=10, min_col=4, max_col=4): # D 欄 "收入"
for cell in row:
total_revenue += cell.value
print(f"總收入是: {total_revenue}")
執行結果
max_price = 0
item_name = ""
for row in ws.iter_rows(min_row=2, max_row=10, min_col=1, max_col=2): # 遍歷 A (品項) 和 B (單價) 欄
item, price = row # 每行有兩個欄位,item 是品項,price 是單價
if price.value > max_price:
max_price = price.value
item_name = item.value # 更新品項名稱
print(f"單價最高的品項是: {item_name},最高單價為: {max_price}")
執行結果
max_sold = 0
item_name = ""
for row in ws.iter_rows(min_row=2, max_row=10, min_col=1, max_col=3): # 遍歷 A 到 C 欄
item, price, sold = row
if sold.value > max_sold:
max_sold = sold.value
item_name = item.value
print(f"售出最多的品項是: {item_name},數量為: {max_sold}")
執行結果