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

c# - 阻止用户使用 Excel 实例

我正在使用 Microsoft.Office.Interop.Excel 使用 C# 创建 Excel 报告。这些报告有大量的图形,需要很长时间来准备。在准备过程中,我的程序使用的 Excel 应用程序的实例对用户是隐藏的。

我的问题是 Microsoft Office 倾向于自动共享应用程序实例。如果用户打开 Excel 工作簿,Excel 将尝试查找正在运行的 Excel 实例并从那里打开文档。当用户在我的程序运行时尝试打开 Excel 工作簿时,它会附加到我的程序使用的实例上。

这会产生两个问题。首先,它迫使我的报告在它们应该变得可见之前变得可见。其次,我的程序现在需要与用户争夺 Excel 实例的注意力——而我的程序通常会失败。

那么,有没有办法让 Excel 实例拒绝请求(来自用户。它仍然应该服从我的程序)打开文档,并使 Office 在必须决定如何打开 Excel 文档时忽略我的实例?

0 投票
6 回答
146706 浏览

c# - 如何使用 Microsoft.Office.Interop.Excel 从 Excel 导入数据集?

我想做的事

我正在尝试使用Microsoft.Office.Interop.Excel命名空间打开 Excel 文件(XSL 或 CSV,但遗憾的是不是XSLX)并将其导入数据集。我无法控制工作表或列名,因此我需要允许对它们进行更改。

我试过的

我过去尝试过这种OLEDB 方法,但遇到了很多问题(错误、速度慢,并且需要事先了解 Excel 文件的架构),所以我想避免再次这样做。我想做的是使用 Microsoft.Office.Interop.Excel 将工作簿直接导入数据集,或者循环工作表并将每个工作表加载到数据表中。

信不信由你,我很难找到这方面的资源。在 StackOverflow 上进行的一些搜索发现大多数人试图做相反的事情(DataSet => Excel)或 OLEDB 技术。谷歌并没有多大帮助。

到目前为止我所拥有的

我可以一次导入整本书,或者一次循环浏览一张。我可以用 Interop.Excel 做到这一点吗?

0 投票
2 回答
782 浏览

vb.net - vb.net Object(,) 数组索引不会找到 (0,0) 即使它是一个 11x37 数组

第一次在这里提问。提前感谢您提供的任何帮助。

我正在尝试从电子表格中读取一堆数据,将其切碎,然后将其放入数据库中。我宁愿不这样做,但这是与会计类型打交道的基本现实。值得庆幸的是,这些电子表格报告非常一致。无论如何,我正在使用 LINQ for SQL 来处理对象到引用的东西,并且我正在使用 Microsoft.Office.Interop 来打开我的 Excel。

我通读了一个充满 .xls 的目录,对于每个目录,我都打开文件,从某些特定单元格中获取一些特定数据,然后获取一系列单元格来挑选值。

thisWorkArea 被调暗为全局:

我在 A14 和 L51 之间的范围内同时获取字符串和整数,因此在这里将其设为对象数组是有意义的。我不想遍历每一行并在 Excel 中挑选范围,我只想阅读一次然后关闭它。

所以我得到以下异常:

System.IndexOutOfRangeException 未处理 Message=Index 超出了数组的范围。

在这个函数中:

上面的“月”指的是 LINQ 实体。这没什么花哨的。

最后一行是我发现异常的地方。在我的手表中,我发现 thisWorkArea 的长度为 456 和 (0,0) -> "Inpatient"{String}

那么为什么我会得到这个异常呢?我把它交给你的专家。我对 vb.net 还是很陌生,所以也许我只是缺少一些基本的东西。

0 投票
2 回答
2411 浏览

c# - 重新分配单元格值后 Excel 公式丢失

这是示例代码

我想知道 Cells.Value 和 Cells.Formula 是否会相互覆盖。如果我想同时分配它们,最好的方法是什么?

谢谢。

0 投票
1 回答
248 浏览

c# - 使用winforms .NET4在访问中导入Excel让我感到困惑

我有无法解决的情况,需要一些建议。

我有excel电子表格。就像下面有标题,子标题和数据。

我如何导入这个。喜欢

我如何知道导入数据时哪个行/值是标题/子标题/数据。?

注:数据分组。

在此处输入图像描述

0 投票
2 回答
7775 浏览

c# - (object[,])range.get_Value(XL.XlRangeValueDataType.xlRangeValueDefault) 导致转换错误

错误:

Cannot convert type 'string' to 'object[*,*]'

这就是我一直得到的错误。有人可以给我一些指示,以便我可以避免它吗?谢谢。

笔记:

有趣的是,(object[,])range.get_Value(XL.XlRangeValueDataType.xlRangeValueDefault)

只会在range.Count == 1. 当 count 等于或大于 2 时,它工作正常。

示例代码:

0 投票
2 回答
35135 浏览

c# - microsoft.interop.excel 格式化单元格

我正在使用 C# 中的 microsoft.interop.excel 库构建报告。

我有这样的事情:

我希望范围将其值显示为整数,即没有小数位。我试过 rangeTarge.AutoFormat,但不知道如何使用它。

有任何想法吗 ?

谢谢。

0 投票
7 回答
25272 浏览

c# - 使用十六进制更改 Excel 单元格的背景颜色会导致 Excel 在电子表格中显示完全不同的颜色

所以我将 Excel 单元格的内部颜色设置为某个值,如下所示:

但是,当我随后在 Excel 中打开电子表格时,我看到出来的颜色完全不同(在上述情况下,生成的电子表格中的颜色是 0xDCDCEF)。我尝试了几种不同的颜色,它总是改变它,我看不到图案。

这有什么原因吗?我什至尝试通过编写 Color.FromArgb(241, 220, 219).ToArgb() 来设置颜色,同样的事情发生了。

0 投票
1 回答
564 浏览

c# - C#代码中的Excel引用问题

我有一个在 Excel 中使用 WORKDAY() 函数的电子表格(我相信它存在于 Analysis Toolpak 库/包/无论您在 Excel 中如何调用它)。当我手动打开这个电子表格并调用这个函数时,它表现得很好。

我有一个宏引用了 WORKDAY() 函数用于的单元格:

当我手动打开电子表格后运行宏时,此代码执行良好。问题是当我尝试打开电子表格并从我的 C# 代码运行宏时。然后,当它尝试获取 startDate 的值时,它将失败。当我查看那个单元格时,我看到了一个#VALUE!参考错误。当我从 C# 代码打开电子表格时,它似乎没有加载正确的引用。

有谁知道如何解决这个问题?

0 投票
3 回答
4260 浏览

c# - 根据创建时间以相反的顺序对excel表进行排序/反转excel表

我正在使用 Microsoft interop excel 来自动化 excel 工作簿,其中我有许多工作表(比如 40 个),这些工作表是在几秒钟内创建的,甚至更少现在我必须以相反的顺序呈现工作表,即首先创建的工作表应该在打开时排在第一位(目前它排在最后)简而言之我必须以相反的顺序或按创建时间对excel表进行排序

在这件事上有任何帮助

谢谢