我认为我在这里做的事情根本上是错误的。我想在不使用循环的情况下获取给定单元格范围内的值(使用循环获取/设置大量数据的值似乎非常慢,所以我想我会尝试一次获取大块数据)。
作为一个小例子,假设我有一个 Excel 电子表格,其中包含单元格 A1、A3 和 A5 中的值。我想将这些值拉到一个列表中。但不幸的是,当我执行下面的代码时,我只得到了 A1 的值。不是其他任何人。
import win32com.client as win32
excel = win32.gencache.EnsureDispatch('Excel.Application')
excel.Visible = True
wb = excel.Workbooks.Add()
ws = wb.Worksheets("Sheet1")
val = wb.ActiveSheet.Range('A1,A3,A5').Value
print val
如果我要说,想要一个连续的值列表,下面的行可以做到这一点:
val = wb.ActiveSheet.Range('A1:A5').Value
它给了我一个清单。但由于我想要的值可能不是连续的,所以这种方法行不通。这些值将始终来自同一列(在此示例中为“A”),但不一定是连续的行。
希望这是有道理的。如果不是,我可以澄清一下。感谢您的任何帮助!:)