get_squared_range 到 excel 中的列表列表
get_squared_range to list of lists from excel
wb = openpyxl.load_workbook(filename = 'C:/Users/test.xlsx')
sheet = wb['sheet1']
len=sheet.max_row
vals1 = [v[0].value for v in sheet.get_squared_range(1,1,2,len)]
vals2 = [v[1].value for v in sheet.get_squared_range(1,1,2,len)]
但我想要这样的
vals12 = [v[0].value,v[1].value for v in sheet.get_squared_range(1,1,2,len)]
其中 vals12- 是维度为 (len x 2) 的矩阵
rows_iter = sheet.get_squared_range(1, 1, 2, sheet.max_row)
vals = [[cell.value for cell in row] for row in rows_iter]
注:
openpyxl
源代码指出 get_squared_range()
已弃用,您应该使用 iter_rows()
:
@deprecated("""
Use ws.iter_rows() or ws.iter_cols() depending whether you
want rows or columns returned.
""")
[docs] def get_squared_range(self, min_col, min_row, max_col, max_row):
要使用 iter_rows()
,请执行以下操作:
rows_iter = sheet.iter_rows(min_col=1, min_row=1, max_col=2, max_row=sheet.max_row)
vals = [[cell.value for cell in row] for row in rows_iter]
最简单的方法可能是:
values = [[cell.value for cell in col] for col in ws['A':'B']]
但您也可以在 ws.values
上使用 itertools.islice()
wb = openpyxl.load_workbook(filename = 'C:/Users/test.xlsx')
sheet = wb['sheet1']
len=sheet.max_row
vals1 = [v[0].value for v in sheet.get_squared_range(1,1,2,len)]
vals2 = [v[1].value for v in sheet.get_squared_range(1,1,2,len)]
但我想要这样的
vals12 = [v[0].value,v[1].value for v in sheet.get_squared_range(1,1,2,len)]
其中 vals12- 是维度为 (len x 2) 的矩阵
rows_iter = sheet.get_squared_range(1, 1, 2, sheet.max_row)
vals = [[cell.value for cell in row] for row in rows_iter]
注:
openpyxl
源代码指出 get_squared_range()
已弃用,您应该使用 iter_rows()
:
@deprecated(""" Use ws.iter_rows() or ws.iter_cols() depending whether you want rows or columns returned. """) [docs] def get_squared_range(self, min_col, min_row, max_col, max_row):
要使用 iter_rows()
,请执行以下操作:
rows_iter = sheet.iter_rows(min_col=1, min_row=1, max_col=2, max_row=sheet.max_row)
vals = [[cell.value for cell in row] for row in rows_iter]
最简单的方法可能是:
values = [[cell.value for cell in col] for col in ws['A':'B']]
但您也可以在 ws.values
itertools.islice()