在 pandas 数据框上获取 Excel sheet 内容,但使用的是公式而不是值
get Excel sheet content on a pandas dataframe but with formulas not values
我想要一个 pandas 数据框,其中包含 excel 文件的内容
公式(如果有的话)。
所以从这个 test.xlsx
文件:
>>> from openpyxl import load_workbook
>>> sheet = load_workbook('test.xlsx', data_only=False).active
>>> for i in range(1, 4, 1):
>>> for j in range(1, 3, 1):
>>> print(sheet.cell(i, j).value)
>>>
4
a
3
b
=A1+A2
=B1&"_"&B2
>>>
如何获得这种 pandas 数据框?:
In [8]: df
Out[8]:
4 a
0 3 b
1 '=A1+A2' '=B1&"_"&B2'
现在我只得到值::
In [6]: import pandas as pd
In [7]: df = pd.read_excel('test.xlsx')
In [8]: df
Out[8]:
4 a
0 3 b
1 7 a_b
注意:我在Linux所以我不能使用xlwings
openpyxl 默认执行此操作,sheet.values
可用于构建 pandas 数据框:
>>> from openpyxl import load_workbook
>>> sheet = load_workbook('test.xlsx', data_only=False).active
>>> df = pd.DataFrame(sheet.values)
>>>
>>> df
0 4 a
1 3 b
2 =A2+A3 =B2&"_"&B3
>>>
我想要一个 pandas 数据框,其中包含 excel 文件的内容 公式(如果有的话)。
所以从这个 test.xlsx
文件:
>>> from openpyxl import load_workbook
>>> sheet = load_workbook('test.xlsx', data_only=False).active
>>> for i in range(1, 4, 1):
>>> for j in range(1, 3, 1):
>>> print(sheet.cell(i, j).value)
>>>
4
a
3
b
=A1+A2
=B1&"_"&B2
>>>
如何获得这种 pandas 数据框?:
In [8]: df
Out[8]:
4 a
0 3 b
1 '=A1+A2' '=B1&"_"&B2'
现在我只得到值::
In [6]: import pandas as pd
In [7]: df = pd.read_excel('test.xlsx')
In [8]: df
Out[8]:
4 a
0 3 b
1 7 a_b
注意:我在Linux所以我不能使用xlwings
openpyxl 默认执行此操作,sheet.values
可用于构建 pandas 数据框:
>>> from openpyxl import load_workbook
>>> sheet = load_workbook('test.xlsx', data_only=False).active
>>> df = pd.DataFrame(sheet.values)
>>>
>>> df
0 4 a
1 3 b
2 =A2+A3 =B2&"_"&B3
>>>