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

ms-office - 安装 VSTO 4.0 导致 VSTO 3.0 插件退出工作

我昨天刚刚安装了 Visual Studio 2010。作为其中的一部分,我安装了 VSTO 4.0。现在,当我运行任何 Office 应用程序时,我的 VSTO 3.0 插件无法加载。事件日志中的错误是

自定义 URI:file:///H:/PathToMyAddin/MyAddin.vsto 异常:自定义没有创建应用程序域所需的权限。

Microsoft.VisualStudio.Tools.Applications.Runtime.CannotCreateCustomizationDomainException:自定义没有创建应用程序域所需的权限。---> System.Security.SecurityException:此应用程序中的自定义功能将不起作用,因为管理员已将 file:///H:/PathToMyAddin/MyAddin.vsto 列为不受信任。请联系您的管理员以获得进一步的帮助。在 Microsoft.VisualStudio.Tools.Office.Runtime.RuntimeUtilities.VerifySolutionUri(Uri uri) 在 Microsoft.VisualStudio.Tools.Office.Runtime.DomainCreator.CreateCustomizationDomainInternal(String solutionLocation, String manifestName, String documentName, Boolean showUIDuringDeployment, IntPtr hostServiceProvider, IntPtr& executor ) 失败的程序集区域是:MyComputer

似乎这可能是因为它试图加载不同版本的 .NET 是相同的进程/AppDomain。但是,该错误表明这是某种权限问题。

0 投票
1 回答
73 浏览

c# - 我怎样才能得到单元格之间的地址

我有一个接受 Excel 单元格的 fromRange 和 ToRange 的函数。基本上我想从范围中逐个单元格地读取值。假设如果我通过 E2 和 E9,我想在循环中读取 Range(E2).value、Range(E3).value 等内容,直到 E9

我怎样才能得到单元格之间的地址。请帮忙

0 投票
6 回答
10319 浏览

c# - asp.net 中的办公自动化问题。如果我知道如何使用,我可以使用诸如开放式办公室之类的替代方案

我有一个 ASP.NET 2.0 Web 应用程序,它应该上传一个 ppt 文件,然后将其幻灯片提取到图像中。为此,我导入了 office.dll 和 Microsoft.Office.Interop.PowerPoint.dll 程序集并编写了以下代码

如果我在本地机器、asp.net 或可执行文件中运行此代码,它会完美运行。但是如果我尝试在生产服务器中运行它,我会收到以下错误:

System.Runtime.InteropServices.COMException (0x80004005):PowerPoint 无法打开文件。在 Microsoft.Office.Interop.PowerPoint.Presentations.Open(String FileName, MsoTriState ReadOnly, MsoTriState Untitled, MsoTriState WithWindow) at PPTImageExtractor.PptConversor.ExtractImages(String caminhoPpt, String caminhoDestino, Int32 largura, Int32 altura, String caminhoThumbs, Int32 larguraThumb, Int32 alturaThumb, Boolean geraXml) at Upload.ProcessRequest(HttpContext context)

该进程正在使用用户 NT AUTHORITY\NETWORK SERVICE 运行。IIS 配置为使用匿名身份验证。匿名用户是管理员,我这样设置是为了让应用程序运行而不必担心权限问题。

在我的开发机器中,我有 Office 2010 beta1。我也在带有office 2007的电脑上测试了可执行文件。如果我从服务器中的可执行文件运行代码,并安装了 Office 2003,它运行完美。

为确保权限不会出现任何问题,服务器中的每个人都可以完全访问该网站。该网站在 IIS7 和经典模式下运行。

我还听说 Open-office 有一个 API 应该能够做到这一点,但我找不到任何关于它的信息。我不介意使用 DLLImport 来做我必须做的事情,我可以在 Web 服务器上安装 open-office。不用担心重写这个方法,只要参数相同,一切都会工作。

我感谢您的帮助。

0 投票
7 回答
157032 浏览

c# - 无需 office 从 C# 创建 Excel 文件

我正在编写一个生成 excel 报告的程序,目前使用 Microsoft.Interop.Excel 参考。我的开发计算机上有 Excel,但最终用户可能安装了也可能没有安装 Office。如果最终用户计算机上未安装 Office,此工具是否会失败,或者此互操作服务是否与实际应用程序分开?

0 投票
1 回答
507 浏览

.net - 使用 Interop.DSOFile 按自定义文档属性搜索文件时性能下降

我是 VB.NET 的新手,我的任务是编写一个小程序来搜索大约 2000 个 Excel 电子表格的目录,并根据该电子表格文件中自定义文档属性的值整理一个列表以显示。鉴于我在教育或贸易方面远不是计算机程序员,这是一次冒险。

我已经开始工作了,结果很好。问题是,它需要一分钟多的时间才能运行。它正在通过 LAN 连接运行。当我在本地运行它(使用大约 300 个文件的“测试”目录)时,它会在大约 4 秒内执行。

我什至不确定合理的执行速度会发生什么,所以我想我会在这里问。

代码如下,如果有人认为更改可能有助于加快速度。

先感谢您!

0 投票
1 回答
2245 浏览

c# - 如何检测文档文档密码是否受保护

我有一个包含大量文档文档的文件夹,我需要将它们的上下文上传到数据库中。问题是其中一些受密码保护,我不知道密码。我想跳过它们,但我不知道如何检测是否存在密码保护。

PS 编程语言是 C#。

0 投票
1 回答
1073 浏览

c# - 保存时执行的 Office 加载项

我正在开发 Office 2007 加载项。每当用户保存文档时,我都希望执行一段代码。我主要对 Word、Excel 和 PowerPoint 感兴趣,但我更喜欢支持其他 Office 应用程序(例如 Visio 和 Microsoft Project)。

寻找代码示例或描述要执行的基本步骤的文章的链接。提前致谢!

0 投票
2 回答
2353 浏览

exception - System.AccessViolationException:试图读取或写入受保护的内存

当我尝试在 Windows Vista 或 Windows 7 上运行的 Word 2007 中“查找和替换”时出现以下异常。

System.AccessViolationException:试图读取或写入受保护的内存。这通常表明其他内存已损坏。在 Microsoft.Office.Interop.Word.Find.Execute(对象和 FindText、对象和 MatchCase、对象和 MatchWholeWord、对象和 MatchWildcards、对象和 MatchSoundsLike、对象和 MatchAllWordForms、对象和转发、对象和换行、对象和格式、对象和替换、对象和替换、对象和 MatchKashida、对象和MatchDiacritics、对象和 MatchAlefHamza、对象和 MatchControl)

有什么解决方案吗?

我正在使用 .NET3.5 C#。

**********代码****************


0 投票
1 回答
2673 浏览

interop - “没有安装打印机。” 通过 WCF 服务使用 excel 2003 interop sheet.PageSetup 时出现问题

我们有一个 WCF 服务,它从模板生成 Excel 文件,并以字节数组的形式将其反馈给客户端。出于某种原因,当我们尝试执行此操作时出现错误:

当它到达这一行时,我们会收到以下错误消息:

该服务在 LocalSystem 帐户下运行。当我们第一次部署这个服务时,它是在一台 x64 机器上并且有同样的问题。我们的开发环境是 x86,所以我们将服务移到了另一台 x86 的服务器上,它运行了一段时间。它最近停止工作,现在再次给我们这个错误消息。我很确定这是因为最近在应用服务器上完成了大规模 Windows 更新。

有趣的是,我尝试将服务更改为“允许与桌面交互”,但没有成功,但是当我们的系统管理员做同样的事情时,它只生成了一个文件,但现在不起作用。

机器上安装了打印机,包括域帐户和本地帐户。我也尝试在不同的帐户下运行该服务,但由于某些 SSPI 错误,我无法连接到该服务。我们尝试使用网络服务帐户,但应用程序根本看不到该服务。每次更改后我们都重新启动了服务,但也无济于事。

我对工作表对象的“PageSetup”部分的了解是,即使您不打印,它也需要安装打印机才能访问它。我想不出办法让机器认为 LocalSystem 帐户安装了打印机。

0 投票
2 回答
1736 浏览

c# - 目前使用 C# 扩展 Excel 的最佳方法是什么?

我有专业版的 VS2008 和 VS2010。

我希望在 Excel 的工具栏中添加几个按钮。当他们被点击时,我希望能够打开一个表单(WinForms 或 WPF 都可以)从表单中的用户那里收集一些值,然后从当前工作表中获取该数据 + 读取单元格值来执行一些数据库操作。

目前使用 C# 执行此操作的最佳方法是什么?我非常感谢任何示例/教程的指针。我的理解是 VS2010 已经改进了很多,但我可能不得不处理我认为它不支持的 Excel 2003。

我对 Visual Studio 2008s Extensibility->Shared Addin 模板和我见过的其他 Office Addin 模板感到困惑。我不确定何时适合使用哪种类型的解决方案。

我是 Office 开发的新手,所以我非常感谢任何帮助我走上正轨的帮助。

非常感谢。