[問題] xlwings判斷範圍內其中一格的值

看板Python作者 (低調奢華有內涵)時間1年前 (2022/09/04 19:38), 1年前編輯推噓2(2016)
留言18則, 3人參與, 1年前最新討論串1/1
請問使用xlwings 如果我有一個excel表如下 date 1101 1102 1103 1104 1107 2021/8/27 47.45 44.2 22.05 20.8 2021/8/30 47.6 44.7 22.05 20.75 2021/8/31 48.45 44.9 22.35 20.85 2021/9/1 48.4 45.65 22.55 21.15 2021/9/2 47.9 44.85 22.4 21 我想要判斷這整個範圍('A1:F6')只要其中一格是None 就print('yes') 其他就print('no') 要怎麼打呢? 我用if 判斷其中一格是None都沒問題 但是儲存格改成範圍後 都只會回傳no 請問要怎麼打呢? 謝謝 代碼如下 if sheet.range((2,6),(2,6)).value or sheet.range((2,7),(2,7)).value is None: print('Yes') else: print('No') ===>都只會回傳NO -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.115.70.141 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1662291524.A.8AB.html

09/04 19:59, 1年前 , 1F
if (sheet.range((2,6),(2,6)).value is None) or (she
09/04 19:59, 1F

09/04 19:59, 1年前 , 2F
et.range((2,7),(2,7)).value is None):
09/04 19:59, 2F

09/04 20:43, 1年前 , 3F
====
09/04 20:43, 3F

09/04 21:05, 1年前 , 4F
可以了 我在想想怎麼變成i 謝謝
09/04 21:05, 4F

09/04 21:22, 1年前 , 5F
是不是不能直接用(sheet.range((2,2),(i,j)).value is
09/04 21:22, 5F

09/04 21:23, 1年前 , 6F
None): 這樣 要用While?
09/04 21:23, 6F

09/04 21:49, 1年前 , 7F
不能 我想到的是用領個for迴圈偵測
09/04 21:49, 7F

09/04 21:51, 1年前 , 8F
兩個迴圈偵測 https://paste.ee/p/Kk0cU
09/04 21:51, 8F
謝謝回答 不過會跳出TypeError: 'float' object is not iterable 我是寫成 # for i in range(6,15): # i1 = i - 1 # i2 = i - 2 # i3 = i - 3 # i4 = i - 4 # if (sma5_sheet.cells[i,2].value is None) or (sma5_sheet.cells[i1,2].value is None) or ((sma5_sheet.cells[i2,2].value is None)) or (sma5_sheet.cells[i3,2].value is None) or (sma5_sheet.cells[i4,2].value is None): # print('Yes') # else: # print('No') 每一格都判斷一次 這樣是有用的 但是就變成很長一串 如果要變成60的話要弄到i60 請問有沒有更快的寫法呢? 謝謝 ※ 編輯: Pettitte1 (59.115.70.141 臺灣), 09/04/2022 22:07:31

09/04 21:52, 1年前 , 9F
但這方法沒到很好 應該能用function包裝跑幾比快
09/04 21:52, 9F

09/04 21:52, 1年前 , 10F
而且有一些問題
09/04 21:52, 10F

09/04 22:15, 1年前 , 11F
對 這就是我說的問題 因為你的測資有很多可能
09/04 22:15, 11F

09/04 22:16, 1年前 , 12F
要把程式兩個為圈改成一個迴圈
09/04 22:16, 12F

09/04 22:19, 1年前 , 13F
如果範圍是('A1:F6') 理論上正常
09/04 22:19, 13F

09/04 22:20, 1年前 , 14F
但你丟了其他 可能是A1:A6 之類就會跳ERROR
09/04 22:20, 14F

09/04 23:05, 1年前 , 15F
有any可以用吧
09/04 23:05, 15F

09/05 08:45, 1年前 , 16F

09/05 16:34, 1年前 , 17F
any可以用 不過all比較適合我 謝謝囉
09/05 16:34, 17F

09/05 16:45, 1年前 , 18F
all is not None與any is None等價,你開心就好...
09/05 16:45, 18F
文章代碼(AID): #1Z58v4Yh (Python)