问题标签 [excel-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 投票
5 回答
5596 浏览

c# - 查看 Excel 在 .NET 中是否处于单元格编辑模式的解决方法

我有一个用 VB.NET 编写的应用程序,它通过互操作与 Excel 进行交互。我最终遇到了 Cell-edit mode 的已知问题(有关一些背景信息,请参阅MSDNstackoverflow)。

我一直在尝试将建议的代码转换为 VB.NET,但不断收到以下错误:

原始 C# 代码(来自前面提到的文章)如下

我转换的 VB.NET 代码如下

我添加了对 Microsoft Office 对象库的 (COM) 引用

我有点卡住了。我已经尝试过间接引用 CommandBar 对象,并重新添加引用但无法弄清楚问题所在。有任何想法吗?

0 投票
5 回答
6122 浏览

c# - 使用 VSTO 而非 VBA 创建 UDF

类似于这个问题(但在我的情况下不是 VSTO SE),但是,我只想确认在 Visual Studio 2005 和 Excel 2003 中使用纯 VSTO 创建 UDF 是不可能的 - 所以,绝对清楚,我的问题是:

是否可以在不使用任何 VBA 或其他技巧的情况下使用 Visual Studio 2005 和 VSTO 解决方案创建 Excel 2003 UDF?

我知道 ManagedXLL、ExcelDNA、Excel4Net 等,但暂时不想考虑这些。

谢谢

0 投票
3 回答
11997 浏览

vb.net - Excel 自动化 - 如何说不

我正在开发一个 vb.net 控制台应用程序,它一个一个地打开许多电子表格,读取几个单元格并关闭文件。

一些电子表格具有 Excel 会在我打开文件时重新计算的公式,并且我收到一个对话框,询问我是否要在关闭电子表格时保存对电子表格的更改。

消息:“您想保存对 myfile.xls 的更改吗?Microsoft Office Excel 在打开由早期版本的 Excel 上次保存的文件时会重新计算公式”

如何自动拒绝该对话框?

谢谢!

0 投票
7 回答
18790 浏览

c# - C# 和 Excel 互操作问题,保存 excel 文件不流畅

我可以打开并写入 excel 文件,但是当我尝试通过传递路径来保存文件时,保存操作会提示保存对话框。我期待它能够将文件完全保存在指定路径

代码如下:

其中,exportToDirectory是:“C:\files\strings.xlsx”。

PS:我已经检查过excel版本和类似的问题。

谢谢

0 投票
5 回答
19321 浏览

c# - 在 C# 中的 Excel [2007] 中添加超链接 - 在 Excel 中它自己

谁能告诉我如何在 Excel(2007 或更高版本)中使用 .NET 中的 Office Interop(c#)将超链接从一张表中的单元格添加到另一张表中的单元格

例如:从 Sheet1 单元格 A1 到 Sheet2 单元格 B10 的超链接

0 投票
1 回答
3820 浏览

.net - Excel 互操作:Application 和 ApplicationClass 的区别

我遇到了excel互操作的问题。基本上,我想要做的是从 .NET 调用具有复杂参数类型的 excel 工作簿中的宏。但是,在这样做时,我遇到了 Application 和 ApplicationClass 之间的一些差异,这让我有些头疼。

这是一些代码:

在 excel VBA 宏中,complexType 被映射到一个对象。

(有趣的旁注,我首先在 C# 中尝试了这个并不断收到 Type Mismatch 异常,这与 C# 代码之间的唯一区别是它传入了在 VB.NET 中创建的 complexType,而 C# 版本传入了在中创建的 complexType C#。出于某种我还没有弄清楚的原因(对象类型的某种细微差别?),C# 失败了,而 VB.NET 则有效)

无论如何,使用上面的代码片段。它仅在 ExcelApplication.ComObject 是 ApplicationClass 而不是 Application 接口时才有效。应用程序没有 GetType() 成员。而且由于它们是 COM 类,因此您不能强制转换它们。如果可能的话,我更喜欢使用 Application,因为我有另一部分可以使用 GetObject(..) 自动为用户加载打开的工作簿,并且在使用 ApplicationClass 时会中断(因为你不能再一次转换 COM 类,所以你只能转换GetObject(..) 到一个应用程序接口)。

有没有人遇到过这个问题?
有没有办法在 ApplicationClass 中使用 GetObject(..) 之类的东西?
或者一种在应用程序中使用 GetType() 的方法?或者可能是某种方式来转换 COM 对象?即:将 Application 转换为 ApplicationClass

希望我的解释足够清楚,并且代码说明了我在做什么。

0 投票
4 回答
494 浏览

.net - 为什么 .NET Sql Server 访问比 Excel 互操作更快?

这可能是一个沉重的问题,它可能会被否决,但这完全让我感到沮丧。

当您在开发中使用 SQL Server 时,数据访问快速而高效,但是当您使用 COM 与 Excel 对话时,它的速度非常慢。

不管你使用什么数据访问技术,ADO、ADO.NET、LINQ、Entity Framework、Astoria(ADO.NET 数据服务),它们都比自动化 Excel 更快。

如果您想要的只是工作簿中单元格“A1”中的数据,则需要一个 Excel.Application、Excel.Workbook、Excel.Worksheet 和 Excel.Range 对象,以获取一个数据点。

WTF,为什么与 SQL Server 对话比与 Excel 对话更有效?Excel 是本地的,而 Sql Server 可能不是。

蒂亚克里斯

0 投票
2 回答
1226 浏览

asp.net - 如何使用 Microsoft.Office.Interop.Excel.dll 创建 Excel 工作表?

如何在 ASP.NET 中使用 Microsoft.Office.Interop.Excel.dll 创建 Excel 工作表?

0 投票
3 回答
2563 浏览

asp.net - 如何通过使用 Microsoft.Office.Interop.Excel dll 以编程方式打开它来编写 excel?

我想使用 Microsoft.Office.Interop.Excel dll 将数据写入 Excel 工作表。我有一个代码:

现在我想从路径中打开现有的 excel 文件,然后将一些数据放入我们提供的命名的 excel 表中,然后它将以编程方式保存到特定的路径中。

请回复我的来源,如果有任何可以打开现有的 excel 文件并且可以附加并用其他名称保存。

问候, 吉里什

0 投票
2 回答
3238 浏览

c# - 使用 Excel 互操作获取 Excel 图表的图像,无需写入磁盘或使用剪贴板

Excel中图表对象的接口只允许通过两种方法访问表示图表的图像:

  • 导出,将图像保存到文件
  • CopyPicture,将图像保存到剪贴板

这两个选项都有问题(保存到文件真的很慢,保存到剪贴板可能会破坏用户数据)。

有一个更好的方法吗?我能想到的唯一方法是使用创建一个临时 ram 磁盘并将其安装在 '%TEMP%\tmp_ram_disk\' 下,这样保存到磁盘的选项就不会很慢,但要确定如何做到这一点或者如果它甚至可能。这是一个 C# 项目。