實務工作上,我們很可能會遇到需要對每張工作表的某一固定位置儲存格求和的情況。比如說,E5儲存格存放每個月的業績總額,以下的程式碼可以求得一整年的總營業額。
# 跨工作表求和
from openpyxl import load_workbook
path = 'D:/sample.xlsx'
wb = load_workbook(path)
data = []
for ws in wb.worksheets: # 拜訪每張工作表
data.append(ws['E5'].value) # 將E5的值加入data列表
print(sum(data)) # 印出data列表中各元素的和
# 改用較淺白一點的寫法:
ans = 0
for ws in wb.worksheets:
ans += ws['E5'].value
print(ans)
以下的程式碼則是用更具Python風格、更精簡且更漂亮的列表推導式(List Comprehension)來輕鬆達成同樣的功能。
ans = sum([ws['E5'].value for ws in wb.worksheets])
print(ans)