问题标签 [word-interop]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2731 浏览

c# - 如何使用 C# 在 Word 文本框中直接编写文本?

我想使用 C# 将一些文本写入现有的单词文本框。实际上什么也没发生,我不知道为什么。也许有人可以帮助我?

我的方法:

称呼:

字文件

0 投票
1 回答
2645 浏览

c# - 使用 c# 中的互操作将宏插入并运行到 word 中

如何在 c# 中使用 Interop 将宏插入并运行到 word 文档中?

0 投票
1 回答
308 浏览

c# - Microsoft.Office.Interop 限制段落修改

我正在尝试保护段落不被修改。我正在使用 Office 互操作字库生成 Doc 文件我想对 docx 中的几个段落设置限制或密码保护,没有人可以修改,但其他段落可以修改

0 投票
0 回答
77 浏览

c# - 在 Word 中查找所有红色文本

我正在尝试弄清楚如何在 word 文件中找到所有红色文本(然后将其删除)。然而,我似乎走入了死胡同。有人可以帮我找到正确的方向吗?

这是我到目前为止所拥有的:

当我运行它时,我得到一个 COM 异常说

该命令不可用。

0 投票
0 回答
825 浏览

c# - C# 查找并删除所有出现的 Word 样式

在 Word 文档中,我想找到所有出现的样式并将其删除,这意味着删除应用了该样式的所有文本。这是一种字符样式,因此它可以应用于单个单词或段落中的所有单词。

这是我到目前为止所拥有的:

编辑:上述方法仅在样式应用于整个段落时有效,但不适用于单个单词。

0 投票
1 回答
122 浏览

vb.net - 使用 VB .NET 使用 Word 互操作库删除页面

我正在构建一个使用互操作库创建 Word 文档的 VB .NET 应用程序。

该文档如下所示:

在此处输入图像描述

我想删除空白页。我已经尝试了两种可能性:

  • 我删除最后一段。
  • 我从互联网上删除了带有代码的特定页面。

两者都没有工作。如果可能,请在 VB .NET 中提供一些代码。提前致谢!

0 投票
0 回答
16 浏览

c# - 使用互操作删除 Word 中两次出现之间的文本

我有一段用 标记的文本##ABC,所以它看起来像这样:

我需要找到并删除##ABCtext to be found##ABC with interop。到目前为止,我已经想出了以下代码,但是,它似乎什么也没做:

我错过了什么?

0 投票
3 回答
779 浏览

c# - 使用 C# 删除文档列中 Word 表格上方的段落

我在一个三栏 Word 文档中工作。我想在顶部齐平的文档列中插入一个新表格。不幸的是,我不可能在没有段落的情况下插入它。我在分栏符后插入此表(请参阅代码)。如果我用许多段落替换分栏符,我可以将表格放在顶部。不幸的是,这种方法不实用也不那么容易编程方式实现

在此处输入图像描述

0 投票
0 回答
388 浏览

c# - 更改包含 RTF 文本的范围的字体大小和字体名称

我正在动态生成处理大量 RTF 文本的 word 文档。我想将某些字体类型和大小应用于文档中的特定范围。以下是我正在尝试的代码

但它总是采用 RTF 文本的格式而不是字体大小和名称,我正在尝试设置。任何人都可以帮助我在更改字体大小和名称的同时保持 RTF 文本格式吗?

我面临的另一个问题是添加空行。我添加以下代码以添加空行。

使用上面的代码,它确实添加了新行,但这个空行的字体大小仅为 2。因此,两行之间的可见空间非常小。是否也可以设置空行的字体大小?

谢谢

0 投票
2 回答
424 浏览

casting - 如何即时将 VSTO Globals.ThisAddIn.Application.ActiveDocument 转换为 OpenXml WordprocessingDocument?

我有一个应用程序可以将文档导出为 XML 文件。导出的文档是OpenXml格式的,可​​以使用 Word 识别/编辑(见下面的注 1)。该文档包含一个相当复杂的表结构,其中“顶部”表有几个单元格,每个单元格都包含一个子表。我的任务是编写一个为用户提供按钮的 VSTO 加载项。当用户打开这些 XML 文件之一并单击按钮时,插件会在“顶部”表和子表中定位和操作文本。

我的原始代码(参见下面的“代码”)使用 Microsoft.Office.Interop.Word.Table 类来定位“顶部”表和子表中的每个单元格。

当我的代码开始抛出异常时,事情变得很奇怪,因为在其中一张表上,Column.Count 属性显示为 3,但使用 throw 访问单元objTable.Cell(row, column)The requested member of the collection does not exist。使用调试器,即使 Count 属性显示 3,我也可以看到第 3 列不存在(注意:我观察到 Column 索引是从 1 开始的,而不是从零开始的)。

我是否需要在加载项中即时将 Word 文档转换为 OpenXml 文档并使用 OpenXml Table 类成功访问表?

认为这是答案,我安装Open XML Package Editor for Modern Visual Studios并添加了DocumentFormat.OpenXml和的引用Windows.Base。但是,当我进行演员表时:

它抛出这个异常:

System.InvalidCastException。无法将类型为“Microsoft.Office.Interop.Word.DocumentClass”的 COM 对象转换为类类型“DocumentFormat.OpenXml.Packaging.WordprocessingDocument”。表示 COM 组件的类型的实例不能转换为不表示 COM 组件的类型;但是,只要底层 COM 组件支持对接口的 IID 的 QueryInterface 调用,它们就可以转换为接口。

我可以/如何在我的 VSTO 加载项中将 Globals.ThisAddIn.Application.ActiveDocument 转换为 OpenXml WordprocessingDocument 吗?

代码

注1

我假设该文档是 OpenXml 格式,基于对文件前导的检查(请参阅 参考资料xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"