如何合并 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(但可以指定)并将值作为输出。
我正在尝试做一些事情,例如在每个单元格中逐一引用时获取所有值。也许一个例子有助于说明。
示例:
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(但可以指定)并将值作为输出。