读取大型Excel表格(估算大小)

2 投票
3 回答
1448 浏览
提问于 2025-04-17 03:05

我正在使用pywin32来读取和写入Excel文件。目前我知道的唯一方法是通过Range.Value来访问数据,但我通常不知道整个Excel表格的大小。所以现在我只能一行一行地读取,直到找到一行完全空白的行。这种方法可能会比较慢。

当然,我会尝试一些技巧,比如读取数据块,这样我就需要找到一个合适的数据块大小。

你知道有没有其他的方法(也许是一些Excel内部的功能)或者其他更快的方式吗?

3 个回答

2

你可以试试用 Worksheet.UsedRange 这个属性来获取整个范围。

3

你可以使用 xlrd 这个库来打开一个工作簿,并查看特定工作表的大小。这个过程非常快。

提示:你可以用 book = xlrd.open_workbook("myfile.xls") 来打开文件,然后通过 sheet = book.sheet_by_index(sheetx) 或者 sheet = book.sheet_by_name(sheet_name) 来获取工作表对象。这样你就可以使用 sheet.nrows 属性来查看这个工作表中的行数。

这里有 API 的文档,可以帮助你更好地理解。

2

在VBA中,我们经常像这样使用End语句:

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

这个方法可以帮助你找到某一列中最后被使用的单元格(不过,我不知道如何把这个方法扩展到pywin中去)

撰写回答