问题标签 [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.
c# - 阻止用户使用 Excel 实例
我正在使用 Microsoft.Office.Interop.Excel 使用 C# 创建 Excel 报告。这些报告有大量的图形,需要很长时间来准备。在准备过程中,我的程序使用的 Excel 应用程序的实例对用户是隐藏的。
我的问题是 Microsoft Office 倾向于自动共享应用程序实例。如果用户打开 Excel 工作簿,Excel 将尝试查找正在运行的 Excel 实例并从那里打开文档。当用户在我的程序运行时尝试打开 Excel 工作簿时,它会附加到我的程序使用的实例上。
这会产生两个问题。首先,它迫使我的报告在它们应该变得可见之前变得可见。其次,我的程序现在需要与用户争夺 Excel 实例的注意力——而我的程序通常会失败。
那么,有没有办法让 Excel 实例拒绝请求(来自用户。它仍然应该服从我的程序)打开文档,并使 Office 在必须决定如何打开 Excel 文档时忽略我的实例?
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 做到这一点吗?
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 还是很陌生,所以也许我只是缺少一些基本的东西。
c# - 重新分配单元格值后 Excel 公式丢失
这是示例代码
我想知道 Cells.Value 和 Cells.Formula 是否会相互覆盖。如果我想同时分配它们,最好的方法是什么?
谢谢。
c# - 使用winforms .NET4在访问中导入Excel让我感到困惑
我有无法解决的情况,需要一些建议。
我有excel电子表格。就像下面有标题,子标题和数据。
我如何导入这个。喜欢
我如何知道导入数据时哪个行/值是标题/子标题/数据。?
注:数据分组。
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 时,它工作正常。
示例代码:
c# - microsoft.interop.excel 格式化单元格
我正在使用 C# 中的 microsoft.interop.excel 库构建报告。
我有这样的事情:
我希望范围将其值显示为整数,即没有小数位。我试过 rangeTarge.AutoFormat,但不知道如何使用它。
有任何想法吗 ?
谢谢。
c# - 使用十六进制更改 Excel 单元格的背景颜色会导致 Excel 在电子表格中显示完全不同的颜色
所以我将 Excel 单元格的内部颜色设置为某个值,如下所示:
但是,当我随后在 Excel 中打开电子表格时,我看到出来的颜色完全不同(在上述情况下,生成的电子表格中的颜色是 0xDCDCEF)。我尝试了几种不同的颜色,它总是改变它,我看不到图案。
这有什么原因吗?我什至尝试通过编写 Color.FromArgb(241, 220, 219).ToArgb() 来设置颜色,同样的事情发生了。
c# - C#代码中的Excel引用问题
我有一个在 Excel 中使用 WORKDAY() 函数的电子表格(我相信它存在于 Analysis Toolpak 库/包/无论您在 Excel 中如何调用它)。当我手动打开这个电子表格并调用这个函数时,它表现得很好。
我有一个宏引用了 WORKDAY() 函数用于的单元格:
当我手动打开电子表格后运行宏时,此代码执行良好。问题是当我尝试打开电子表格并从我的 C# 代码运行宏时。然后,当它尝试获取 startDate 的值时,它将失败。当我查看那个单元格时,我看到了一个#VALUE!参考错误。当我从 C# 代码打开电子表格时,它似乎没有加载正确的引用。
有谁知道如何解决这个问题?
c# - 根据创建时间以相反的顺序对excel表进行排序/反转excel表
我正在使用 Microsoft interop excel 来自动化 excel 工作簿,其中我有许多工作表(比如 40 个),这些工作表是在几秒钟内创建的,甚至更少现在我必须以相反的顺序呈现工作表,即首先创建的工作表应该在打开时排在第一位(目前它排在最后)简而言之我必须以相反的顺序或按创建时间对excel表进行排序
在这件事上有任何帮助
谢谢