问题标签 [office-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 投票
0 回答
1833 浏览

c# - C#:在 Word 2007 中创建/插入 Excel 2007 图表

如何在具有 Office 互操作性的 Word 2007 中创建并插入 Excel 2007 图表?

重要提示:我不想保存 Excel 文件来创建图表。

0 投票
1 回答
1102 浏览

c# - Microsoft.Office.Interop.Excel.WorkbookClass.ResetColors() 的 Excel 自动化/Office 互操作错误

我编写了一个将 1000 多个 Excel 文档转换为 PDF 的应用程序(我知道这是一种缓慢的方法,但我并不担心速度),使用与此相同的技术,但用于 Excel 而不是 Word。

我需要添加以下代码:

这是在 Workbook 对象上。在大多数情况下,这可以正常工作,但对于某些文件,我收到以下错误(发出不相关的位):

如果我在 VBA 中使用 Excel 宏做同样的事情,我会收到此错误:

电子表格本身没有宏代码。唯一似乎很常见的是它们有大量的床单。

以前有没有人遇到过这种情况,你知道有什么好的解决方法吗?目前我唯一的想法是检测错误并手动转换文件(糟糕)。理想情况下,我希望 API 中有一些东西可以用来确定这个方法调用是否会失败。我在谷歌上看了看,找不到任何有用的东西。

0 投票
2 回答
12157 浏览

.net - 如何使用 .Net 创建 Outlook PST 文件?

我正在编写一个将操纵 Outlook 数据的应用程序。我想先备份该数据,并希望我可以遍历联系人/日历项目等并将它们写入 PST 文件。

如何使用 .Net 将 1 个或多个 Outlook 文件夹的内容写入 PST?[vb 或 c# 无所谓]

0 投票
1 回答
150 浏览

.net - 在 Word 文档中不可见地标记文本

我不想构建一个允许用户执行以下操作的 word 2007 加载项:

  • 在 word 文档中突出显示文本的段落等。
  • 单击工具栏按钮或从右键单击菜单中选择一个选项以将文本“标记”为某种类型的数据(将有 4 种不同类型的数据中的 3 种)
  • 此外,能够选择一些文本并取消标记(这将自动扩展选择范围以覆盖整段标记的文本)。

标记文档的人将是非技术性的,因此我们希望保持非常简单。

我一直在研究一些可以实现这一点的不同方法,包括:

  1. 书签 - 命名书签,即每次突出显示和“标记”类型时,应用程序将添加一个书签,其类型名称后跟一个数字,即 my_custom_type-1、my_custom_type-2 等。
  2. 隐藏文本 - 将隐藏文本粘贴到文档中(字体设置为隐藏) - 所以我们基本上可以用一些隐藏文本包围选定的段落,即 {my_custom_type} ... {/my_custom_type},一些其他类型的文本与 {another_custom_type } ... {/another_custom_type} 等。
  3. 命名样式 - 具有每种数据类型的样式,并且仅使用 Range.set_Style(...) 方法来设置样式。

到目前为止,我已经尝试过选项 3 - 它似乎可以很好地标记文本,但当我尝试标记文本时效果不佳(例如,如果我尝试将类型设置回“正常”,它不起作用使用 set_Style 方法)。

这些是以编程方式在word文档中标记文本的唯一方法吗(无需在文档中物理显示其他内容) - 任何人都可以推荐一种方法而不是另一种方法,特别是当我们需要解析所有已标记的数据时。

0 投票
2 回答
4039 浏览

vba - How to import Microsoft Office constants (msoTrue, ppLayoutText...) into LotusScript?

I am trying to programmatically make a PowerPoint presentation from the contents of a Lotus Notes document. This is relatively straight-forward using CreateObject("Powerpoint.Application") but I fail to find a way to access the various constants that are used in VBA.

One solution is of course to hard-code the (ten or so) values into my script, but for obvious reasons I'm a bit uneasy about that solution.

Is there a way to lookup the value of for example msoTrue or ppLayoutText with LotusScript? For example a way to query the Powerpoint.Application object for the values?

(In more compentet languages adding various Interop libraries seems to do the trick, but I haven't found a way to do that in LotusScript.)

Edit I prefer a solution that will work without any extra installation of software or dlls, apart from Office.

0 投票
1 回答
3407 浏览

c# - 通过 MAPI 接口从 MailItem 获取电子邮件文件夹

我正在创建一个程序来自动从传入的电子邮件附件生成报告,它几乎可以完全保存一个区域。传入的电子邮件会自动过滤到文件夹中,以区分它们来自哪个客户端和服务器。我不知道如何从电子邮件项目中获取文件夹的路径。

我正在使用该NewMailEx事件调用下面的方法,this.AppNamespacethis.ReportFolder确认已正确实例化。

上的 MSDNMailItem这里。我错过了什么或以不正确的方式接近这个吗?

0 投票
1 回答
859 浏览

office-interop - 使用 MS Office 互操作程序集编译应用程序

我需要在专用的构建计算机上构建一个使用 Excel 互操作程序集的 C# 应用程序。有没有办法在构建盒上不安装 MS Office 的情况下做到这一点?

0 投票
2 回答
1898 浏览

c# - 如何加快从 C# 生成 Word 文件的速度?

我正在开发一个生成相对大量 Word 输出的应用程序。目前,我们正在使用 Word 互操作服务来创建文档,但速度很慢,尤其是在旧版(2007 年之前)的 Office 中。我们希望加快生成速度。

我还没有做很多分析,但我很有信心问题在于我们正在进行大量的 COM 调用。我希望分析会产生比其他调用慢的子集,但我的直觉告诉我,这可能是 COM 开销(或 Word 互操作开销)的问题,而不仅仅是一些慢速调用。

此外,该产品可以生成 HTML 输出,并且该过程 (a) 非常快,并且 (b) 使用几乎相同的代码路径,只是针对特定于 HTML 的功能片段使用不同的子类。所以我很确定我们的算法从根本上来说并不慢。

所以...我正在寻找有关加速 Word 文件生成的替代方法的建议。

我们不能只将生成的 HTML 文件重命名为 .doc,也不能生成 RTF——在这两种情况下,重要的格式信息都会丢失,而且在 RTF 情况下,内联图形无法正常工作。

我们正在评估的一种方法是以编程方式从一个模板生成和打开一个 Word 文件(通过互操作),该模板具有一个知道如何使用平面文件并创建必要输出的宏。我们对有关该方法的反馈以及任何其他加快速度的想法感兴趣。

0 投票
3 回答
2980 浏览

c# - 带有来自 SSRS 报告的多张工作表的 Excel 文件

假设我有 3 个字节数组,每个代表一个 .xls 文件。我如何将它们组合成一个带有 3 张纸的 xls 文件。SSRS 报告非常丰富,并且包含图表 spoledb 不是一种选择。

性能并不重要,因此如果需要,我可以将它们保存到磁盘,作为最后的手段,我什至可以使用 excel 宏(如果我知道该怎么做的话)。我尝试使用 microsodt.office.interop.excel 但我只能设法将新工作表添加到文件中,我无法添加现有工作表。

任何帮助,将不胜感激。

0 投票
1 回答
5207 浏览

c# - Excel 替换值而不丢失格式

我有一个使用 Office Automation 自动化 Microsoft Excel (2003) 的应用程序。它所做的其中一件事是替换值。我遇到的问题是,在替换值时,所有丰富的格式都会丢失,如下所述:http: //support.microsoft.com/kb/177194

为了澄清,我在一个像这样的单元格中将 valueX 替换为 valueY:
valueX很棒

这导致:
valueY 很棒


我尝试在替换之前获取单元格中的格式,因此我可以保存哪些字符是粗体并在替换值后应用格式。但我找不到获取每个字符格式的方法。(C#)

有没有办法解决这个问题,而不使用上面网站上给出的分辨率?在 C# 或 Excel 中的一些解决方法中