当 Word 中的图表布局更改时,InlineShapes 会消失。他们去哪里?
InlineShapes disappear when the layout of a chart in Word is changed. Where do they go?
我一直在开发一个 Word-AddIn(Office 365 版本 1706,Windows10),它基本上将数据存储在图表中,这样它们就可以从我们的 servelet 中获取更新的数据,最终图表会自动更新它需要的所有数据。
当我将图表的布局选项从默认的 "In Line with Text" 更改为 "With Text Wrapping" 让多个图表彼此相邻。
这是如何工作的,只要你不改变布局选项,就是通过访问 Microsoft.Office.Interop.Word.Application COM 对象,它有一个 Selection 对象,它还有 InlineShapes,就像这样:
var inlineShapes = Application.Selection.InlineShapes;
if(inlineShapes > 0)
{
for(var i = 1; i < inlineShapes.Count + 1; i++)
{
if (inlShape.HasChart == MsoTriState.msoTrue)
return new WordChart(inlShape);
}
}
为了简单起见,我免去了处理 COM 对象的整个过程。
同样,如果您不篡改图表的布局选项,这将起作用,但是一旦布局被更改为 "Behind Text" 我就找不到了任何 InlineShape 中的图表。
有没有人以前遇到过这种情况?
我梳理了 Application.Selection
对象,但找不到任何东西。
然而,InlineShape 仍在 Application.InlineShapes 对象本身中,但我怎么知道要选择哪一个?
我真的很感激任何意见,因为到目前为止我不知道该怎么做。
好的,我终于找到那些小图表了!
这个 Whosebug post 帮助了我:
有关解决我的问题的详细信息:
一旦我更改了布局选项(参见原始问题),我将无法再找到作为 InlineShapes 的图表。
相反,它们将列在 Selection.ShapeRange.get_Item(i)
下(我检查了 Shapes/InlineShapes,所以我没有看到图表可能的项目)。
现在您可以将它们转换为 InlineShapes,这在 Word 中也是如此,您不需要,或者将该形状转换为您的 VSTO.WordChart
,我这样做了。
我一直在开发一个 Word-AddIn(Office 365 版本 1706,Windows10),它基本上将数据存储在图表中,这样它们就可以从我们的 servelet 中获取更新的数据,最终图表会自动更新它需要的所有数据。
当我将图表的布局选项从默认的 "In Line with Text" 更改为 "With Text Wrapping" 让多个图表彼此相邻。
这是如何工作的,只要你不改变布局选项,就是通过访问 Microsoft.Office.Interop.Word.Application COM 对象,它有一个 Selection 对象,它还有 InlineShapes,就像这样:
var inlineShapes = Application.Selection.InlineShapes;
if(inlineShapes > 0)
{
for(var i = 1; i < inlineShapes.Count + 1; i++)
{
if (inlShape.HasChart == MsoTriState.msoTrue)
return new WordChart(inlShape);
}
}
为了简单起见,我免去了处理 COM 对象的整个过程。
同样,如果您不篡改图表的布局选项,这将起作用,但是一旦布局被更改为 "Behind Text" 我就找不到了任何 InlineShape 中的图表。
有没有人以前遇到过这种情况?
我梳理了 Application.Selection
对象,但找不到任何东西。
然而,InlineShape 仍在 Application.InlineShapes 对象本身中,但我怎么知道要选择哪一个?
我真的很感激任何意见,因为到目前为止我不知道该怎么做。
好的,我终于找到那些小图表了!
这个 Whosebug post 帮助了我:
有关解决我的问题的详细信息:
一旦我更改了布局选项(参见原始问题),我将无法再找到作为 InlineShapes 的图表。
相反,它们将列在 Selection.ShapeRange.get_Item(i)
下(我检查了 Shapes/InlineShapes,所以我没有看到图表可能的项目)。
现在您可以将它们转换为 InlineShapes,这在 Word 中也是如此,您不需要,或者将该形状转换为您的 VSTO.WordChart
,我这样做了。