2011-09-26 54 views
3

我使用pywin32讀寫excel。現在唯一的方法是訪問Range.Value,但我通常不會事先知道整個excel表的大小。 所以現在我一行一行地閱讀,直到找到一條完全空的行。這可能很慢。閱讀大型Excel表格(猜測大小)

當然我會嘗試像閱讀數據塊這樣的技巧 - 然後我必須找到一個最佳的塊大小。

你知道另一種方法(也許一些內部的Excel函數)或更快的其他方法嗎?

回答

2

在VBA中,我們經常使用End聲明是這樣的:

Worksheets("sheet1").Cells(Rows.Count, "A").End(xlUp).Row 

,可以幫助您找到一列的最後使用的電池(然而,我不知道該怎麼這種方法擴展到pywin

+0

謝謝。這可能工作。順便說一句,在pywin中都是一樣的 - 可能映射某種方式:) – Gerenuk

2

如何通過Worksheet.UsedRange屬性獲取整個範圍?

+0

有趣。它像最大的填充行嗎?如果我在工作表上只有一個表格,它可能會起作用:) – Gerenuk

+0

@Gerenuk:當您想要選擇工作表中的所有內容時,這很有用。如果你有很多表格,範圍將包括所有的表格。 –

3

您可以使用xlrd打開工作簿並閱讀特定工作表的大小。這很快。

提示:book = xlrd.open_workbook("myfile.xls")那麼你通過sheet = book.sheet_by_index(sheetx)sheet = book.sheet_by_name(sheet_name)得到Sheet對象,你必須sheet.nrows財產與在給定表中的行數。

這是API文檔。