我使用pywin32来读取和写入excel。现在我知道的唯一方法是访问Range.Value但是,我通常不会事先知道完整excel表的大小。 所以此刻我逐行阅读,直到找到完全空行。这可能很慢。
当然我会尝试读取数据块等技巧 - 然后我必须找到最佳的块大小。
您是否了解其他方法(可能是某些内部Excel功能)或其他更快的方法?
答案 0 :(得分: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文档。
答案 1 :(得分:2)
如何使用Worksheet.UsedRange属性获取整个范围?
答案 2 :(得分:2)
在VBA中,我们经常使用End
语句,如下所示:
Worksheets("sheet1").Cells(Rows.Count, "A").End(xlUp).Row
这可以帮助您找到列的最后一个使用过的单元格(但是,我不知道如何将此方法扩展到pywin
)