首先,抱歉我的英语不好,因为它不是第一语言。 我最近开始学习python,并且尝试开发一个“简单”程序,但是遇到了问题。
我正在使用xlwings修改和与Excel交互。我想实现(或者想知道是否可能)是:
我擅长研究数据并绘制图表。然而,该图有时例如具有20个X轴值,而在其他情况下,假设10个X轴值,因此,留下10个#NA空白空间。基于此,我想通过更改图形的形状范围来调整图形以仅显示10个值。
函数get_prod_hours()
会在X轴上显示我想要多少个值:
def get_prod_hours():
"""From the input gets the production hours to adapt the graphs"""
dt = wb.sheets['Calculatrice']
return dt.range('E24').value
基于从函数获得的值,我必须修改图形上的值范围(通过减小它)。
例如从头创建图形的解决方案并不可行,因为我只想修改图形的范围,因为Excel文件是我公司的“标准”文件。
我希望有这样的东西:
Excel中的列A的值为:1, 2, 3, 4, 5
,并从get_prod_hours()
获得5的值,因此我的图形只有5个点,而没有6个点,例如#NA。 >
非常感谢,很抱歉。
答案 0 :(得分:0)
xlwings API并没有提供很多图表选项(请参见https://docs.xlwings.org/en/stable/api.html?highlight=charts#xlwings.main.Charts)。
尝试在wb.sheets[0].charts
中查找图表。
然后可以使用
修改范围range = xw.Range((1,1), (get_prod_hours(),1))
set_source_data(wb.sheets[0].range(range))
但是通过查看API并知道Excel图表有多少个选项,API感觉太薄了。
如果这不起作用,则可以选择添加一个VBA宏来修改图表并调用它。参见How do I call an Excel macro from Python using xlwings?