XLWings / Excel问题处理"多单元阵列公式"

时间:2016-07-26 14:39:06

标签: python excel pandas xlwings

范围

我使用XLWings显而易见,从外部源检索数据,在Python中进行一些转换,然后将其泵入Excel。

我正在使用UDF(Windows 10,Excel 2016 32位)。

我唯一知道的方法是使用"多单元阵列公式"将二维数据(Pandas数据帧)添加到Excel工作表中。

问题

"多单元阵列公式"似乎有多重限制,我还没有找到解决方案,如何:

  • 处理返回数据帧的动态大小(这是规则而非例外,请参阅我的comment on github
  • 格式化为表格(不可能)以应用着色,排序和过滤
  • 添加到datamodel(不可能)以便加入
  • (还有什么不行?)

问题

其他人如何处理这个?

1 个答案:

答案 0 :(得分:1)

xlwings v0.10引入了动态数组,请参阅release notes

现在你可以做到:

import xlwings as xw
import numpy as np

@xw.func
@xw.ret(expand='table')
def dynamic_array(r, c):
    return np.random.randn(int(r), int(c))

您可以通过简单地将其写入左上角的单元格来使用该公式,而无需将其设置为Excel数组公式。