請問xlwings如何獲取有資料的所有行數和列數?

時間 2021-06-02 14:22:45

1樓:

import

xlwings

asxw=xw

.(visible

=False

,add_book

=False)wb

=.books

.open(r

'工作簿1.xlsx')ws

=wb.sheets

['Sheet1']ws

.used_range

.shape

如果有中間有空格或者後面有空格的話,openpyxl的Sheet.max_row、Sheet.max_column是不準確的(有可能返回的是65536行或1048576行),而且openpyxl無法開啟加密的Excel,xlwings由於使用了與VBA一致的API,因此只要VBA有的方法,xlwings都有;同時xlwings與pandas結合的也很好;最後實踐過程中openpyxl對excel內建格式支援的不夠好,比如修改完工作簿另存為時,合併單元格的邊框會丟失)。

2樓:

原諒我的無知。。。主要也就Python剛入門,文件看了許久也就一知半解。xlwings的強大之處是可以呼叫VBA,那麼就好解決了,即用VBA的「UsedRange」。

受這篇帖子啟發:

補充:若是之前有空行(列),則只返回有資料的行(列)數,最後需要再將前面的空行數加上(感謝 @哭吧叫吧 提醒)。

nrow = sheet1.api.UsedRange.Rows.count

ncol = sheet1.api.UsedRange.Columns.count

以下為原帖:

也可以用:

rng = sheet1.range('A1').expand()

nrow = rng.last_cell.row

ncol = rng.last_cell.column

獲取行數的話,openpyxl感覺好很多,xlwings有點問題,要是A1及附近單元格內容為空,獲取值有誤(感覺類似ctrl+down和ctrl+right的結果)。

3樓:Clint

rng=sheet1.range('A1').expand('table')

nrows=rng.rows.count

ncols=rng.columns.count在py3.6中驗證通過

請問反射獲取指定方法,實參如何根據形參實現自動型別提公升的功能?

wkGCaSS 我做過類似的東西 第一步篩選所有可以呼叫的方法 即方法名稱相同,方法每個parameter都是argument型別的父類或者可以由argument隱式轉換得到 第二步在篩選結果中找出引數需要轉換次數最少的方法 例如引數 int,double 有方法 int,double Number...

想知道如何擁有數學思維?

春華選課說 數理思維是數學學科的延展,是應試教育對素質教育的嫁接。相比於傳統數學學科,數理思維的外延更廣,融合了數學 兒童心理 腦科學等多種科目的綜合學科,側重對於學生邏輯思維能力和判斷能力的培養,提公升學生多元思維和綜合素養能力。儘管這個概念聽起來相對前沿,但其實真正算起來,它並不是近一兩年的新生...

如何看待 Pirah 語沒有數字?

jointer 有個少和多就可以表示數字了,排列組合即可。設少 1 多 2 空位 0,則是3進製。根據少和多排列的位置就可以表示任何整數了,十位的少表示例如1到12可表示為 1 空空少 2 空空多 3 空少空 4 空少少 5 空少多 6 空多空 7 空多少 8 空多多 9 少空空 10 少空少 11...