如何使用msoPattern常量将图案应用于使用Perl Win32 :: OLE的Excel图表中的一系列图案

我正在使用Win32 :: OLE Perl模块来更改图表中特定数据点的模式。

我可以这样做:

$chart->SeriesCollection(2)->Points(5)->{Interior}->{Pattern} = xlPatternUp; 

例如。 要清楚这与预期完全一样。 然而,xlPattern *常量只允许Excel识别模式的一个子集。 看来整套模式是在msoPattern *常量中指定的(至less是我想要使用的那个)。

我试图以相同的方式使用msoPattern *常量之一:

 $chart->SeriesCollection(2)->Points(5)->{Interior}->{Pattern} = msoPatternWideUpwardDiagonal; 

但是这没有效果。 数据点将以“固定”(默认)模式呈现。 我已经确认我正确导入了常量,例如:

 use Win32::OLE::Const 'Microsoft Office 12.0 Object Library'; 

我怎样才能使用msoPattern *常量来改变模式?

不幸的是,它看起来不像你可以做你正在做的事情。

如果您查看http://msdn.microsoft.com/zh-cn/library/office/aa224995中的“Pattern属性,因为它适用于内部对象”部分,您可以find所有有效选项的列表。 不幸的是只有xlPattern是有效的。

可以通过{Format}->{Fill}属性的Patterned方法来更改msoPatterns。

例如

 $chart->SeriesCollection(2)->Points(5)- {Format}->Fill}->Patterned(msoPatternWideUpwardDiagonal);