问题标签 [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 投票
9 回答
5165 浏览

java - 如何在不安装 MS Office 且不使用互操作库的情况下读取服务器中的 MS Office 文件?

互操作库很慢,需要安装 MS Office。很多时候你不想在服务器上安装 MS Office。

我想使用Apache POI,但我使用的是 .NET。

我只需要提取文件的文本部分,而不是在 Office 文件中创建或“存储信息”。

我需要告诉您,我有一个非常大的文档库,我无法将它转换为更新的 XML 文件。

我不想为二进制文件编写解析器。像 Apache POI 这样的库可以为我们做到这一点。不幸的是,它仅适用于 Java 平台。也许我应该考虑用 Java 编写这个应用程序。

我仍然没有在 .NET 中找到 POI 的开源替代方案,我想我会用 Java 编写自己的应用程序。

0 投票
2 回答
389 浏览

c# - 您如何在 C# 中引用 MS office 互操作?

我正在尝试从 C# 访问 Outlook 2007。我按照 msdn 上的说明安装了 PIA msi。成功安装后,Visual Studio 的 .net 选项卡下的引用中没有显示任何内容。

0 投票
9 回答
108988 浏览

c# - C# - 如何以编程方式添加 Excel 工作表 - Office XP / 2003

我刚刚开始通过 C# 摆弄 Excel,以便能够自动创建和添加到 Excel 文件。

我可以打开文件并更新其数据并在现有工作表中移动。我的问题是如何添加新工作表?

我试过:

但是我低于COM Exception并且我的谷歌搜索没有给我任何答案。

HRESULT 的异常:0x800A03EC 源是:“Interop.Excel”

我希望有人能把我从痛苦中解救出来。

0 投票
1 回答
3236 浏览

vb.net - 如何使用 Range 对象读取 VB.net 中 word (*.doc) 文件中复选框的值?

如何使用范围对象在 VB.net 中的 word (*.doc) 文件中读取复选框的值?

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

其中“MyCheckbox”是word文档中复选框的书签。

0 投票
2 回答
9744 浏览

c# - C# 中的文字自动化。使用另存为时出错

Save as Document Object尝试在 C# 中实现单词自动化时出现以下错误:

(0x80020005):类型不匹配。(来自 HRESULT 的异常:0x80020005 (DISP_E_TYPEMISMATCH))

FileName, Object& FileFormat, Object& LockComments, Object& Password, Object& AddToRecentFiles, Object& WritePassword, Object& ReadOnlyRecommended, Object& EmbedTrueTypeFonts, Object& SaveNativePictureFormat, Object& SaveFormsData, Object& SaveAsAOCELetter, Object& Encoding, Object& InsertLineBreaks, Object& AllowSubstitutions, Object& LineEnding, Object& AddBiDiMarks)

文件名)在 D:\dotnet\WordAutomation\TestWordAutomation\TestWordAutomation\Form1.cs:line 246

发件人,EventArgs e) 在 D:\dotnet\WordAutomation\TestWordAutomation\TestWordAutomation\Form1.cs:line 557

我这样调用Save As方法:

谁能帮我解决这个问题?

0 投票
2 回答
221 浏览

vb.net - 如何在 VB.NET 中实例化 ObjectFrame

我正在尝试通过 vb.net 访问 ObjectFrame 的方法和属性。但是当我宣布这是

然后尝试将其实例化为

它显示如下错误:

429:检索具有 CLSID {3806e95d-e47c-11-cd-8701-00aa003f0f7} 的组件的 COM 类工厂失败,原因是以下错误:80040154

为了解决这个问题,我们重新安装了 MS-Office 2003 和 VS-2005,但无法得到解决方案。

谁能建议我如何在 vb.net 中声明和使用它?

谢谢。

0 投票
1 回答
5674 浏览

.net - 如何正确实现 Office COM 加载项的 IDTExtensibility2 接口?

我正在为 Outlook 实施 COM 加载项。我使用 IDTExtensibility2。我不确定这是否是执行 COM 加载项的最佳方式,但我无法改变这一点。

该接口定义了五个方法:OnConnection、OnStartupComplete、OnAddInsUpdate、OnBeginShutdown、OnDisconnection。

我需要执行以下操作:

  1. 从文件加载配置数据
  2. 加载注册表数据
  3. 开始新会话
  4. 创建 *.pst 文件
  5. 订阅资源管理器事件
  6. 连接到 Internet 服务器以获取一些数据
  7. 在主菜单中创建菜单项
  8. 创建工具栏
  9. 在 Outllok 中添加/删除一些东西(在 *.pst 文件级别)

请指教,我应该什么时候做?

  • 我需要在 OnConnection 方法中执行什么操作?
  • 只有在 OnStartupComplete 调用时才允许什么?
  • 在 OnBeginShutdown / OnDisconnection 期间我需要释放哪些资源?
0 投票
1 回答
3965 浏览

c# - 以编程方式调整字体大小以适合 Word 中文本框内的文本

我的一个应用程序处理 MS Word 和文档创建/编辑/格式化。我正在使用带有 VS 2008 的 Office 2007,并且我正在针对 Microsoft.Office.Interop.Word 库进行编码,该库似乎适用于 2003 或 2008。

我使用 Document.Shapes.AddTextbox 方法在文档中创建一个文本框,然后用文本填充它。我希望能够以编程方式确定文本是否适合文本框,如果不适合,则减小字体大小直到适合。

我尝试了几种不同的方法:

1) 使用 bool Shape.TextFrame.Overflowing 属性

但是,即使当我打开文档时我可以看到文本适合框,这也会返回 TRUE。

2) 检查文本最后一个字符的 X/Y 位置,并查看该坐标是否在文本框边界内

但是,这会返回几乎总是在框内的 X/Y,尽管当我打开文档时我看不到该字符,因为它不适合框。

所以我的想法已经用完了,我想问其他人以前是否经历过这个问题,以及他们是否对处理互操作这个词的不准确混乱有任何建议?

0 投票
3 回答
10953 浏览

.net - 你可以在没有办公室的情况下安装 Office 2007 PIA

首先,我的问题与

是否可以在没有 Office 2007 的情况下部署 Office 2007 PIA?

我还不打算使用 PIA。理想情况下,IT 工程师希望在升级 Office 2007 之前将 2007 PIA 部署到每个人的计算机上。这样就可以减少需要一次性完成的事情。我想知道这是否可能

0 投票
2 回答
2433 浏览

vb.net - 为什么我会收到错误:System.Runtime.InteropServices.COMException?

我正在使用 VB.NET 在 Microsoft 中创建标签。这是我的代码:

现在,当我运行程序时,我收到了这个错误。我努力尝试但无法找到错误可能是什么问题:

System.Runtime.InteropServices.COMException --> 水平和垂直间距必须分别大于或等于标签宽度和高度。

即使我尝试以编程方式设置水平和垂直间距,它也会给出相同的错误。