我试图使用xlwings在python中创建各种Excel UDF。我的UDF依赖于从HDF文件中提取的值。但是,每次单击Excel中的“导入功能”按钮时,都会收到错误消息。以下是一个例子。
import pandas as pd
import numpy as np
import xlwings as xw
matrix1 = pd.DataFrame(np.random.random(size = (1000, 1000)))
matrix2 = pd.DataFrame(np.random.random(size = (1000, 100)))
matrix1.to_hdf('matrix.h5', key = 'mat1', mode = 'w')
matrix2.to_hdf('matrix.h5', key = 'mat2', mode = 'a')
arg = pd.read_hdf('matrix.h5', key = 'mat2', mode = 'r')
@xw.func
def dummy(x, y):
return 17
当我单击Excel中的xlwings功能区中的“导入功能”按钮时,我收到以下内容
如果我尝试使用Spyder运行该程序,我没有问题,可以很好地生成HDF文件。
有趣的是,如果我删除我写HDF文件的行,并将其留在我读它的地方,我会收到错误说
FileNotFoundError: File matrix.h5 does not exist ...
即使我已确认该文件确实存在。如果我在Spyder中运行相同的代码,我没有问题,它工作正常。
xlwings和HDF文件是否存在某种兼容性问题,或者我遗漏了什么?
在示例中看不到xlwings用于任何内容。然而,PyTables是必需的。尝试运行pip install tables
来安装它。