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

c# - 在 C# 中访问打开的 Excel 工作簿

我需要访问一个已经打开的 excel 文件。我以为只是检查.Workbooks它会在那里的财产,但事实并非如此。获取对打开的工作簿的引用的正确方法是什么?

编辑

我可以通过...获得对 Excel 应用程序的引用

app.Workbooks.Count仍然是0为什么它不能获得对打开的工作簿的引用?

0 投票
2 回答
13674 浏览

c# - 如何在 C# 中访问已打开的 Excel 文件?

我通过在 Windows 资源管理器中双击打开了一个 Excel 工作簿,但无法在代码中访问它

xlBooks.Count 等于 0,为什么不引用我打开的工作簿?

编辑

以下是各种场景和正在发生的事情:

场景 1:如果文件尚未打开

  • 代码打开工作簿,我很高兴。

场景 2:如果文件最初是从代码打开的,我关闭并重新打开应用程序

  • 代码引用文件正好xlBooks.Count等于 1,我很高兴。

场景 3:如果文件最初不是从代码打开的,而是通过在资源管理器中双击它

  • 代码打开另一个文件实例xlBooks.Count等于0,我气死了!

这是现在的整个代码

0 投票
1 回答
498 浏览

c# - 如何从返回对象 [,] 的 C# 库中绑定 VBA 宏中的 EXCEL 范围

我有一个 C# 库,它有 2 种方法。一个返回一个整数,另一个返回一个对象[,]

现在我对 VBA 非常陌生,由于一些遗留原因,我需要编写一个 VBA 宏而不是 VSTO excel Addin 来调用这个库。

从第一个肉食中获得结果很容易。我使程序集 com 可见并将其注册为 Com Interop,然后将其作为参考添加到我的 VBA 项目中,并使用下面的代码调用它

到现在为止还挺好。现在我想调用第二种方法获取数据并将其绑定到excel。

听起来很简单,但是 --> 我应该使用什么类型来保存这些数据。我尝试了动态数组,但它不起作用 --> 如何将它绑定到动态范围。假设二维数组是 100*10 我想将它绑定到一个范围,就像Range.value = Array我知道如何在 C# 的 excel 插件应用程序中执行此操作但 VBA 给我带来了真正的问题

对此的任何帮助都会很棒

0 投票
1 回答
320 浏览

excel-interop - excel interop - 如何运行 excel com 加载项代码

我有一个我创建的 excel 加载项。我想要做的是在 c# (ASP.NET) 中打开一个 excel 文档并在加载项中运行一些代码,然后将 excel 文档作为 html 页面返回。

这可以做到吗?

0 投票
3 回答
4414 浏览

c# - 在 C# 中将对象转换为二维数组

这个应该很简单,但我真的不知道如何找到一种方法来做到这一点......

我正在使用 .NET 4.0。我有一个object[12]填充十进制数字,并想用它来填充Doubles [1,12] 的 Excel 范围。我正在使用以下方式转换 JSON JavaScriptSerializer

它应该是单行的,但我能想到的唯一可行的方法是:

或者仍然相当可怜,但至少在一行中:

我希望这样的东西可以工作,但是从我收集的初始化程序不会以这种方式工作:

我有很多类似的案例(一个带有 [12,1] 的案例可能会更难),我不想为每个案例做太多的挣扎。有没有办法写得更简单一点?

0 投票
1 回答
799 浏览

memory - 使用 Microsoft.Office.Interop.Excel 解析 Excel 文件 - 将 Excel.exe 进程挂在内存中

嗨,我用 Microsoft.Office.Interop.Excel 解析 excel 表。这是我将excel表解析为数据表的代码。它运作良好。

问题我运行应用程序(控制台)调用此方法并关闭控制台应用程序。如果我签入 TaskManager 进程,我会看到 Excel.exe 进程仍在运行。

如果我将此方法调用 100 次,我的内存中有 100 个 excel.exe 进程。

这是正常的 ?怎么能解决。

感谢您的时间和合作

0 投票
7 回答
11694 浏览

c# - excel互操作替代品

我已经开始使用 Microsoft 为我的一个 C# 应用程序提供的 Excel 互操作程序集。一切都很好,但似乎缺乏强类型,老实说,感觉就像我在写 VBA 代码。是否有任何替代方法可以通过 C# 与 Excel 进行交互,从而提供更好的 OO 体验?顺便说一句,我正在使用 VS2010 和 .Net 4.0。

0 投票
2 回答
8483 浏览

asp.net - {“来自 HRESULT 的异常:0x800A03EC”} 在 Microsoft.Office.Interop

我正在尝试在 ASP.Net Web 应用程序中使用以下代码创建一个 excel 文件。当我从 Visual Studio 运行时,代码可以正常工作,但是当我在 IIS 上部署应用程序并运行部署的版本时
,会出现异常workbook.Close命令。

0 投票
26 回答
204298 浏览

c# - HRESULT:Worksheet.range 上的 0x800A03EC

我在 Worksheet.range 方法上得到 HRESULT: 0x800A03EC。行数超过 70K。办公室 2007。

代码:

在这里,我的行数超过 65530 。打破这个功能。我观察到它只有在行数超过 65530 时才会中断。

0 投票
7 回答
76951 浏览

c# - Microsoft Office Excel 无法访问文件“c:\inetpub\wwwroot\Timesheet\App_Data\Template.xlsx”

我的代码如下:-

现在换行:-

它直接从 Visual Studio (F5) 执行,但是当我尝试使用 IIS 访问它时它不会工作。抛出错误如下: -

Microsoft Office Excel 无法访问文件“c:\inetpub\wwwroot\Timesheet\App_Data\Template.xlsx”。有几个可能的原因:
• 文件名或路径不存在。
• 该文件正被另一个程序使用。
• 您尝试保存的工作簿与当前打开的工作簿同名。

我已经尝试过以下工作: -

  • 文件夹和文件存在,允许访问 IUSR_###(IIS 用户)和文件所在文件夹中的 ASPNET 用户。
    • 在组件服务 (DCOM) 处,授予适当用户的访问权限。

我已经授予了模板(.xlsx)所在文件夹的所有权限

有什么建议么??