如何合并 Excel 中多个单元格引用中的值 by Python?

How to combine value in multiple cell references in Excel by Python?

我正在尝试做一些事情,例如在每个单元格中逐一引用时获取所有值。也许一个例子有助于说明。

示例:

A B C
=B2 ='I am' & C2 'Peter

示例 2 - 在数量方面:

A B C D
=B2 =C2*D2 12 56

所以我想在读取cell A2

时得到一个concat字符串'I am Peter'或672(来自12*56)

我试过的代码:

from openpyxl import load_workbook
import pandas as pd
wb = load_workbook(filename = 'new.xlsx')
sheet_names = wb.get_sheet_names()
name = sheet_names[0]
sheet_ranges = wb[name]
df = pd.DataFrame(sheet_ranges.values)
print(df)

公式会变成'NaN'

有什么实现它的建议吗?谢谢!

openpyxl要么支持公式,要么支持公式的值。您可以 select 加载工作簿时使用 data_only 参数。

您可以像下面这样更改您的代码:

from openpyxl import load_workbook
import pandas as pd

wb = load_workbook(filename='new.xlsx', data_only=True)
sheet_names = wb.get_sheet_names()
name = sheet_names[0]
sheet_ranges = wb[name]
df = pd.DataFrame(sheet_ranges.values)
print(df)

如果你想得到单元格的实际值,你必须使用data_only=True

wb = load_workbook(filename = 'new.xlsx', data_only=True)

看这里:Read Excel cell value and not the formula computing it -openpyxl

反正你用的是pandas,直接上去更方便:

import pandas as pd
df = pd.read_excel('new.xlsx')
print(df)

它获取第一个 sheet(但可以指定)并将值作为输出。