如何在 pandas / python 中查看 excel 电子表格的公式?
How can I see the formulas of an excel spreadsheet in pandas / python?
我想将 excel 电子表格读入 python / pandas,但使用的是公式而不是单元格结果。
例如,如果单元格 A1 为 25,单元格 B1 为 =A1,我希望我的数据框显示:
25 =A1
现在显示:
25 25
我该怎么做?
OpenPyXL
provides this capacity out-of-the-box. See here and here。一个例子:
from openpyxl import load_workbook
import pandas as pd
wb = load_workbook(filename = 'empty_book.xlsx')
sheet_names = wb.get_sheet_names()
name = sheet_names[0]
sheet_ranges = wb[name]
df = pd.DataFrame(sheet_ranges.values)
是的,这是可能的。我最近发现了一个以非常复杂的方式解决这个问题的包。它被称为便携式电子表格(可通过 pip install portable-spreadsheet
获得)。它基本上封装了xlsxwriter
。这是一个简单的例子:
import portable_spreadsheet as ps
sheet = ps.Spreadsheet.create_new_sheet(5, 5)
# Set values
sheet.iloc[0, 0] = 25 # Set A1
sheet.iloc[1, 0] = sheet.iloc[0, 0] # reference to A1
# Export to Excel
sheet.to_excel('output/sample.xlsx')
它的工作方式与 Pandas Dataframe 类似。
有一种方法可以使用 xlwings 和 pandas 模块来执行此操作。
xlwings 提供了一种通过 python 脚本自动化 excel 的方法。
创建一个“sample.xlsx”文件并在范围内添加随机公式(“A1”)。
下面是示例代码,它将从给定文件中读取值和公式:
import pandas as pd
import xlwings as xw
wbk = xw.Book('sample.xlsx')
ws = wbk.sheets[0]
print(ws.cells(1,1).value)
print(ws.cells(1,1).formula)
同样的事情也适用于射程。您可以将 range.value
分配给数据框,反之亦然。
如果你想获得大范围的公式,你也可以得到它,但它会 return 元组。
希望这在一定程度上有所帮助。
我想将 excel 电子表格读入 python / pandas,但使用的是公式而不是单元格结果。
例如,如果单元格 A1 为 25,单元格 B1 为 =A1,我希望我的数据框显示:
25 =A1
现在显示:
25 25
我该怎么做?
OpenPyXL
provides this capacity out-of-the-box. See here and here。一个例子:
from openpyxl import load_workbook
import pandas as pd
wb = load_workbook(filename = 'empty_book.xlsx')
sheet_names = wb.get_sheet_names()
name = sheet_names[0]
sheet_ranges = wb[name]
df = pd.DataFrame(sheet_ranges.values)
是的,这是可能的。我最近发现了一个以非常复杂的方式解决这个问题的包。它被称为便携式电子表格(可通过 pip install portable-spreadsheet
获得)。它基本上封装了xlsxwriter
。这是一个简单的例子:
import portable_spreadsheet as ps
sheet = ps.Spreadsheet.create_new_sheet(5, 5)
# Set values
sheet.iloc[0, 0] = 25 # Set A1
sheet.iloc[1, 0] = sheet.iloc[0, 0] # reference to A1
# Export to Excel
sheet.to_excel('output/sample.xlsx')
它的工作方式与 Pandas Dataframe 类似。
有一种方法可以使用 xlwings 和 pandas 模块来执行此操作。 xlwings 提供了一种通过 python 脚本自动化 excel 的方法。
创建一个“sample.xlsx”文件并在范围内添加随机公式(“A1”)。
下面是示例代码,它将从给定文件中读取值和公式:
import pandas as pd
import xlwings as xw
wbk = xw.Book('sample.xlsx')
ws = wbk.sheets[0]
print(ws.cells(1,1).value)
print(ws.cells(1,1).formula)
同样的事情也适用于射程。您可以将 range.value
分配给数据框,反之亦然。
如果你想获得大范围的公式,你也可以得到它,但它会 return 元组。
希望这在一定程度上有所帮助。