问题标签 [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.
c# - 通过C#通过工作表名称获取Excel工作表引用
我目前正在使用以下 C# 代码获取 Excel 工作表的句柄:
有什么方法可以通过使用工作表名称来获得相同的信息"SubSignOff"
?
c# - 我怎么知道用户点击了 File->Save in word document using .NET?
我怎么知道用户使用 .NET 在 word 文档中单击了文件保存?
如果用户在 word 文档中进行任何操作,那么我可以知道我的程序中使用 c# 制作的这个事件是什么。
.net - 调用 Word.Documents.Add 后 WinWord.exe 不会退出 - Word .NET Interop
我遇到了经典场景,在 .NET 中(通过 Microsoft.Office.Interop.Word 程序集)创建 Word COM 对象时,即使我正确关闭和释放对象,WinWord 进程也不会退出。
我已将其缩小到使用 Word.Documents.Add() 方法。我可以以其他方式使用 Word 而不会出现问题(打开文档、修改内容等),当我告诉它时 WinWord.exe 会退出。一旦我使用 Add() 方法(并且仅在添加模板时),该进程就会继续运行。
这是一个重现问题的简单示例:
正如您所看到的,我正在正确地创建和处理对象,甚至采取了额外的步骤来循环 Marsha.ReleaseComObject 直到它返回正确的代码。在其他方面使用 Word 对象很好,只是讨厌的 Documents.Add 让我很伤心。在这个过程中是否有另一个我需要引用和处理的对象?我还需要遵循其他处置步骤吗?还有什么?非常感谢您的帮助 :)
Update:
我在处置步骤结束时尝试了 GC.Collect,但仍然没有运气。
Update 2:
我已将问题缩小到使用自定义模板。当我调用 Documents.Add(...) 时,我为新文档指定了一个自定义模板。如果我不这样做,而是在没有参数的情况下调用 Add(),那么问题就不会发生。
asp.net - 合并 Word 文档(Office Interop 和 .NET),保持格式
我在使用 Microsoft Office Interop Assemblies (Office 2007) 和 ASP.NET 3.5 将多个 word 文档合并在一起时遇到了一些困难。我可以合并文档,但缺少一些格式(即字体和图像)。
我当前的合并代码如下所示。
我不一定关心这是如何完成的。如果需要,它可以通过 PDF 输出。我只是希望格式能够延续。
asp.net - 以编程方式将 Word 文档导出为 PDF 的最佳解决方案(不使用“软件打印机”)?
我正在寻找一种将 Word 文档导出为 PDF 的方法。我想在不使用“软件打印机”(例如 CutePDF 等)的情况下执行此操作,并尽可能坚持参考程序集。我正在使用 Microsoft Office 互操作程序集生成一个 Word 文档,并将其保存到一个临时目录中。因此,除非需要,否则此解决方案无需直接与 Microsoft Office 交互。
.net - 在 .NET 中使用 Word COM 对象,InlineShapes 未从模板复制到文档
使用 .NET 和 Word 互操作,我以编程方式从模板 (.dot) 文件创建新的 Word 文档。有几种方法可以做到这一点,但我选择使用 AttachedTemplate 属性,例如:
(由于在使用 Documents.Add() 从模板打开时发现了内存泄漏问题,我选择了 AttachedTemplate 方法而不是 Documents.Add() 方法。)
除非模板页脚中有图像(表示为 InlineShape),否则这可以正常工作。在这种情况下,图像不会出现在生成的文档中。具体来说,图像应该出现在oDoc.Sections.Item(1).Footers.Item(WdHeaderFooterIndex.wdHeaderFooterPrimary).Range.InlineShapes集合中,但它没有。
使用 Documents.Add() 时这不是问题,但是正如我所说的那样,该方法不是我的选择。
我是否需要采取额外的步骤才能从模板中获取图像?我已经发现,在使用 AttachedTemplate 时,我必须显式调用 UpdateStyles()(如您在我的代码片段中所见)将模板样式应用于文档,而使用 Documents.Add() 时会自动完成。或者也许有一些疯狂的解决方法?非常感谢您的帮助!:)
filesystems - 可以删除 Powerpoint 文件而不会产生任何后果
我正在开发一个许可证管理类型的应用程序,它将受密码保护的 zip 文件复制到应用程序根目录。用户单击“打开演示文稿”按钮并将压缩文件解压缩到根文件夹中,然后我使用 Office 互操作在 Powerpoint 中打开文件。此时令我惊讶的是,我能够删除当前在 Powerpoint 应用程序中打开的提取文件。我曾假设尝试删除该文件会失败,因为该文件仍在 Powerpoint 中打开。
为什么它允许我删除文件?文件是否以某种方式复制到临时文件夹,然后在 PowerPoint 中打开?
我是否可以依靠这种能力在 Powerpoint 中打开文件后立即删除该文件的应用程序?这将是最佳的,因为它有助于确保无法复制文件(我还使用 xml 来阻止“另存为”和“保存”出现在 int Powerpoint 中)。
ms-word - 是否可以在 Word 文档中存储与特定表格或单元格相关的隐藏元数据信息?
我正在尝试将元数据(基本上是唯一的 id)与 Word 文档中表格的每个单元格一起存储。目前,对于我正在开发的加载项,我正在查询数据库,并使用检索到的数据在 Word 文档中构建一个表。
我希望能够保存用户对文档的任何编辑,并将其保存回数据库。我最初的想法是在表中的每个单元格中存储一个唯一的 ID,以便我能够知道要更新哪些记录。我还想在每个单元格中存储某种“isChanged”标志,以便我可以判断哪些单元格已更改。我发现我可以将所需的信息添加到单元格的“ID”属性中 - 但是,如果用户保存文档、关闭它并重新打开它,则不会保留该信息。然后,我尝试通过将数据添加到“字段”集合来存储数据——但这不起作用并引发了运行时错误。这是我尝试过的代码:
这编译得很好,但会引发此运行时错误“此命令不可用”。
那么,这可能吗?还是我走错了方向?
提前致谢。
c# - 为Office创建快捷方式挂钩机制的最佳方法是什么
我正在寻找为 MS Office 创建快捷方式处理程序。
我正在使用 VS2010 为 Office 2010 创建一个插件。处理程序需要在 Word/PowerPoint 处于活动状态时侦听所有键盘事件。
尽管有很多用于创建应用程序级快捷方式处理程序的材料,但我找不到专门针对 Office 的材料。
如果有人可以用示例 c# 代码建议技术,那就太好了。
谢谢
c# - VSTO 替代品
VSTO 有哪些替代方案?
managedxll 做了什么而 VSTO 没有 - 你什么时候使用一个与另一个
谷歌并没有在这个主题上提出太多
这更像是一个面试问题 - 优点和缺点是什么,两者都是这里问题的症结所在