使用 Openpyxl 读取 Excel 个文件
Read Excel File Using Openpyxl
我想使用 openpyxl 将 excel 文件的每一行保存在列表中。
wb = load_workbook('Shop.xlsx')
ws = wb.active
l = []
a_column = ws['A']
b_column = ws['B']
for x in range(len(a_column)):
l.append([a_column[x].value, b_column[x].value])
print(l)
输出:[[A1, B1], [A2, B2]]
它有效,但有人知道更好的方法吗?
例如,该列表仅适用于 A 的长度。
您可以使用 itertools.zip_longest
:
a_values = [cell.value for cell in a_column]
b_values = [cell.value for cell in b_column]
list(itertools.zip_longest(a_values, b_values))
#=> [('A1', 'B1'), ('A2', 'B2'), ('A3', 'B3'), (None, 'B4'), (None, 'B5')]
您可以用 ws.iter_rows()
在一行中完成此操作
l = [row for row in ws.iter_rows(max_col=2, values_only=True)]
值得注意的是,openpyxl 在 Excel 中找到的最大列长度可能会受到包含 None
的单元格的影响,这些单元格低于您认为数据结束的位置。
我想使用 openpyxl 将 excel 文件的每一行保存在列表中。
wb = load_workbook('Shop.xlsx')
ws = wb.active
l = []
a_column = ws['A']
b_column = ws['B']
for x in range(len(a_column)):
l.append([a_column[x].value, b_column[x].value])
print(l)
输出:[[A1, B1], [A2, B2]]
它有效,但有人知道更好的方法吗?
例如,该列表仅适用于 A 的长度。
您可以使用 itertools.zip_longest
:
a_values = [cell.value for cell in a_column]
b_values = [cell.value for cell in b_column]
list(itertools.zip_longest(a_values, b_values))
#=> [('A1', 'B1'), ('A2', 'B2'), ('A3', 'B3'), (None, 'B4'), (None, 'B5')]
您可以用 ws.iter_rows()
l = [row for row in ws.iter_rows(max_col=2, values_only=True)]
值得注意的是,openpyxl 在 Excel 中找到的最大列长度可能会受到包含 None
的单元格的影响,这些单元格低于您认为数据结束的位置。