我在 conda 中进行了 Pycel 的 pip 安装。
我正在 Jupyter Notebook 中执行此操作。
%matplotlib inline
from pycel import ExcelCompiler
from IPython.display import FileLink
import matplotlib.pyplot as plt
filename = "../python/pycel_files/example.xlsx"
print("Loading {}...".format(filename))
# load & compile the file to a graph
excel = ExcelCompiler(filename=filename)
# test evaluation
print("B1 is {}".format(excel.evaluate('Sheet1!B1')))
print("B2=(B1+5) is {}".format(excel.evaluate('Sheet1!B2')))
输出:如预期
B1 is 10
B2=(B1+5) is 15
但是如果我现在这样做:
print("Setting B1 to 200")
excel.set_value('Sheet1!B1', 200)
print("B2 is now %s (the same should happen in Excel)" % excel.evaluate(
'Sheet1!B2'))
我在 Jupyter 中得到了预期的输出:
Setting B1 to 200
B2 is now 205 (the same should happen in Excel)
Issues:
- 但是在 Excel 中,单元格 B1 不会更新。 IE。它没有据称由 Pycel 设置的值 200。仍然显示10。
- 我在他们的例子中遇到了同样的问题Pycel 的 github .ipynb http://ttps://github.com/dgorissen/pycel/blob/master/notebooks/example.ipynb文件。有人可以确认他们是否也面临同样的问题并且这看起来像是一个错误吗?
- 另外,如果我对他们进行任何更改示例 Excel 文件 https://github.com/dgorissen/pycel/blob/master/example/example.xlsx& 使用他们的 .ipynb 文件,matplotlib 图中没有显示任何内容。 Pycel 如何知道选择哪张表?它总是默认为sheet1吗?
所以这里对 Pycel 是什么和做什么存在误解。来自派塞尔自述文件 https://github.com/dgorissen/pycel/blob/master/README.rst:
Pycel 是一个小型 Python 库,可以将 Excel 电子表格转换为可以独立于 Excel 运行的可执行 Python 代码。 python 代码基于图并使用缓存和惰性求值来确保(相对)快速执行。
所以回答你的问题:
但是在 Excel 中,单元格 B1 不会更新。
Pycel 不会更改 Excel 文件。它从 Excel 文件中读取并从所需的单元格创建一个“编译”电子表格。
如果我对他们的示例 excel 文件进行任何更改并使用他们的 .ipynb 文件,则 matplotlib 图表中不会显示任何内容。
您可能需要重新编译 Excel 电子表格才能将结果显示在 Python 代码中。
Pycel 如何知道选择哪张表?它总是默认为sheet1吗?
Pycel 确实与床单打交道。它适用于细胞。这些单元格可以来自工作簿中的任何工作表。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)