问题标签 [com-automation]

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 回答
37 浏览

c# - 为什么我只在一台机器上得到异常“System.io.filenotfoundexception:检索 com 类工厂组件 CLSID excel”?

我制作了一个非常简单的 c# 程序来测试不同用户对某些文件路径的访问。对于每个人,程序都可以正常工作,但对于一个用户,程序会返回异常

System.io.filenotfoundexception:检索具有 CLSID{} 的 COM 类工厂组件失败,原因是以下错误:80070002

这发生在他尝试创建 Microsoft.Office.Interop.Excel.Application 对象时。

在用户 PC 上运行 Office 修复后开始出现此问题,可能缺少 Office PIA。我是否需要在用户计算机上重新安装 Office,或者有没有办法避免它?

0 投票
1 回答
36 浏览

c# - C# .NET 4.7.2:将 Outlook 对象嵌入为电子邮件的附件

我创建了一个代码,它构建了一个作为电子邮件正文的 html 字符串。但是,我希望这封电子邮件成为我最初创建的常规电子邮件和基本电子邮件的附件。下面的代码实际上是有效的,但最后,当我打开我的普通电子邮件时,我有辅助电子邮件作为附件,但是当我点击它时,附加的电子邮件是一封空白电子邮件。尽管我创建了 html 正文,但这个结果。html 字符串在最后一个方法“AddMessageAsAttachment”的末尾消失了。任何帮助将不胜感激......谢谢

“CreateItemFromTemplate”实际上从模板链接到辅助电子邮件的正文和将附加的快速 pdf 报告(参数“附件”):

最终,我创建了一个“Globale”类,该类将检索由上述“CreateItemFromTemplate”方法生成的辅助电子邮件(mailPosition)并将其作为附件放入普通电子邮件中。

0 投票
3 回答
58 浏览

c# - 使用 GlobalAppointmentID 获取 Outlook AppointmentItem

我正在为我的公司开发一个与 Outlook 日历同步的日历。

自动取款机我可以:

  • 从 Outlook 导入约会并在我的日历中显示
  • 在 Outlook 约会更新时更新我的​​约会
  • 在我的日历中创建约会时创建 Outlook 约会

我遇到的唯一问题是在我的约会更新/删除时更新/删除 Outlook 约会。

我有相应约会的 GlobalAppointmentID,但我似乎无法搜索该 ID。

我试过:

我不断收到“条件无效”异常。显然 Outlook 不允许搜索二进制属性(例如 GlobalAppointmentID)。

我使用相同的 outlookCalendarItems.Find() 和 calendarFolder.Items.Restrict() 在其他情况下没有问题。

我尝试使用 Redemption,但我也无法让它工作。有没有人有经验或建议?

0 投票
2 回答
178 浏览

c# - 我无法通过 .NET 触发 Microsoft.Office.Interop.Outlook.dll

我已经安装了 Visual Studio Tools for Office (VSTO),因此可以将 Microsoft.Office.Interop.Outlook.dll 用于我的 .Net 应用程序。但是,我收到以下错误。我认为它与注册表项有关,但我不确定。Microsoft.Office.Interop.Outlook.dll 存在,但注册表可能正在其他地方寻找它?我以前在没有问题的计算机上使用这个 .dll 库。那时,我没有安装 VSTO,但它是类似的。你知道我该如何解决这个问题吗?

第 3 行在屏幕截图中引发了以下异常

我发现这些Unable to cast COM object of type 'Microsoft.Office.Interop.Outlook.ApplicationClass' {00063001-0000-0000-C000-000000000046} HRESULT: 0x80040155

https://social.msdn.microsoft.com/Forums/vstudio/en-US/ac50fa41-8d47-4fa9-81a3-914f262676af/0x80029c4a-typeecantloadlibrary?forum=vsto

但他们没有帮助

在此处输入图像描述

在此处输入图像描述

0 投票
1 回答
62 浏览

vba - 访问 Outlook VBA 对象模型时单词冻结

办公室 365

word 中的 VBA 用于发送电子邮件。该代码已成功用于许多计算机,但对于使用CreateObject. 如果 Outlook 打开它可以正常工作,但关闭它会冻结,其他计算机在这两种情况下都可以正常工作。

我尝试卸载并重新安装它,停止杀毒软件,重新启动。

谢谢。

0 投票
2 回答
46 浏览

excel - 将特定 Excel 数据从多个字段导出到 Word

让我先说我对 VBA 很陌生,因此感谢任何帮助。有人联系我,看我是否可以创建基本的自动化水平。需要通过按钮将数据从 Excel 导出到 Word。

最终目标是在 excel 中包含数据字段,例如“名字”“姓氏”“地址”“联系电话”。然后选择一个人的整行(B1,B2,B3,B4),当按下宏按钮时,它会打开一个word文档并将字段预填充到文档中。是预填信件发送,此人还表示,邮件合并没有做他们需要的。下面是我正在使用的。

这允许特定范围,例如 (A2,B3) 但不是“选定”区域。如果这是非常基本的,我深表歉意,但正如我所说,我并没有真正使用 VBA。

0 投票
1 回答
37 浏览

vba - 从 ThisOutlookSession 调用宏

我在 Outlook 上的宏有问题。

我目前正在尝试通过批处理调用 Outlook 并将其作为参数传递给我通过在批处理中设置的环境变量获得的宏的名称。但是,我确实获得了宏的名称,但是该过程在调用函数时停止。有人能告诉我正确的方法吗?

VBA ThisOutlookSession

VBA 模块

结果

在此处输入图像描述

0 投票
1 回答
49 浏览

vba - VBA 或 powershell 脚本,用于根据日期范围从已发送项目及其所有子文件夹中提取电子邮件详细信息(发件人、收件人、主题)

我想问一下是否有人有现成的片段或可以提供一个可以执行以下操作的工作片段:

VBA 或 powershell 脚本,用于根据日期范围从已发送项目及其所有子文件夹中提取电子邮件详细信息(发件人、收件人、主题、时间戳)

0 投票
1 回答
45 浏览

multithreading - 为什么在理论上所有呼叫都被编组时在办公室互操作中使用 PLINQ 更快?

我是 LINQ 的新手,尤其是 PLINQ。我在 ms office interop 中玩耍,非常惊讶地发现,当使用 PLINQ 时,我的代码显着(取决于查询速度提高了一倍)更快,即使 COM 应该将我所有的并行调用编组到单个线程(https: //docs.microsoft.com/en-us/visualstudio/vsto/threading-support-in-office?view=vs-2019)。

现在我对这里可能发生的事情感到困惑。即使在非常大的工作簿上,我也没有遇到 com server is busy 或类似的异常。

这里的常规方法是循环所有工作表,并在所有工作表上循环 .Names 集合。

我知道 Workbook.Names 属性也存在,此代码只是为了显示一个查询作为示例。

我读到可以在 Excel 中使用 PLINQ 查询(https://devblogs.microsoft.com/pfxteam/plinq-and-office-add-ins/),但我不知道这是否同样适用于互操作。

我的问题:这种并行查询现在可以与办公室互操作一起使用吗?这样做安全吗?

0 投票
0 回答
119 浏览

python - 使用 Python 计算 Outlook 中收件箱文件夹中的电子邮件(值不正确)

我正在开发一个 Python 脚本,它将在一定日期范围内计算 Outlook 中我的收件箱文件夹中的电子邮件数量。

我正在使用“限制”来为我检查的电子邮件设置限制。变量“fecha”现在是静态的,仅用于测试。

问题是,如果我将过滤器设置为 11 天后,计数是正确的(在我的收件箱中手动检查),但如果我将 12 天以上设置为过滤器,则计数是错误的(比它应该的要多得多)。在正确的计数上,我平均收到大约 200 封电子邮件。数错了,我得到了大约 7000。

有谁知道这是为什么,如果有任何参数我应该更改以获得正确的数据?

这段代码的输出是:

最后我发现了我的错误。这是因为当时将日期(fecha)发送到outlook的日期格式。当前景搜索正在解释日月年时,我正在通过月-日-年。解决了这个问题,我终于得到了正确的值。感谢大家的努力。