问题标签 [netoffice]
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# - ExcelDna/NetOffice/Excel:插入值的最有效方法?
我正在使用 ExcelDna 和 NetOffice 为 Excel 构建一个插件,并从各种来源获取数据并将其插入到工作表中。
我的问题是在工作表中插入数据真的很慢。
将一组值插入 Excel 的最有效方法是什么?
问题是每次插入都会变成屏幕更新吗?我试过:
但这没有任何效果。
c# - 检测 xll 是否已永久安装,或者 xll 文件是否只是临时打开的?
我正在使用 ExcelDna 和 NetOffice 为 Excel 构建一个插件。
Excel 中的插件可以安装并包含在每个 Excel 会话中,也可以通过打开 xll 文件来临时打开。
我有什么方法可以在我的插件代码中以编程方式检测它是临时打开的还是已安装的?
c# - Excel 用户定义功能锁调用电子表格
我正在使用 NetOffice 编辑 Excel 电子表格。如果我从 Excel 用户定义的函数调用代码,它不会让我编辑调用电子表格。
有没有一种解决方法可以让我做到这一点?
例外是
“System.Runtime.InteropServices.COMException (0x80004005):有关详细信息,请参阅内部异常。---> System.Reflection.TargetInvocationException:调用的目标已引发异常。---> System.Runtime。 InteropServices.COMException:来自 HRESULT 的异常:0x800A03EC --- 内部异常堆栈跟踪结束 --- 在 System.RuntimeType.InvokeDispMethod(字符串名称,BindingFlags invokeAttr,对象目标,对象 [] 参数,布尔 [] byrefModifiers,Int32 文化, String[] namedParameters) 在 System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] 修饰符, CultureInfo 文化, String[] namedParams) 在 System.Type.InvokeMember(String名称,BindingFlags invokeAttr,Binder binder,Object target,Object[] args,CultureInfo 文化)在 NetOffice.Invoker.PropertySet(COMObject comObject, String name, Object[] value) 在 NetOffice.Invoker.PropertySet(COMObject comObject, String name, Object[] value) 在 NetOffice.ExcelApi.Range.set_Value(Object value ) 在 ExcelExamplesCS45.Example01.RunExample() 在 \psf\home\Documents\Visual Studio 2013\Projects\Excel-REPL\Excel-REPL\Example01.cs:第 29 行 ClojureExcel.MainClass.Test() 在 \psf\home \Documents\Visual Studio 2013\Projects\Excel-REPL\Excel-REPL\MainClass.cs:line 310"第 29 行 ClojureExcel.MainClass.Test() 在 \psf\home\Documents\Visual Studio 2013\Projects\Excel-REPL\Excel-REPL\MainClass.cs:line 310"第 29 行 ClojureExcel.MainClass.Test() 在 \psf\home\Documents\Visual Studio 2013\Projects\Excel-REPL\Excel-REPL\MainClass.cs:line 310"
c# - 使用 ExcelDNA 或 NetOffice 插入 Excel 行/列
我正在使用ExcelDNA设置和获取单元格值。我可以获取和设置单元格值
有没有办法通过向右或向下移动条目来插入整行或整列?我想要与用户右键单击列并且所有条目都向右移动时相同的行为。如有必要,解决方案可以使用 NetOffice。
c# - 通过邮件项目循环内存不足
嗨,我有一个 Outlook com 插件,它正在为我做一些简单的搜索技巧。我正在将它放在一起,但我遇到了内存不足的问题。这个过程非常简单,基本上循环通过一个outlook文件夹检查每个mailItem是否匹配。给定循环每次我都希望垃圾收集器跟上时重新初始化变量,但是当我观察内存时,它会丢失约 10 米/秒,直到系统内存不足并且我得到未处理的异常。
这是代码的一部分
哪个电话
请原谅底部的所有错误捕获部分和 GC.collect 它们是我尝试找出错误并释放内存的一些尝试。
另请注意 FindInFolder 由一个新线程调用,因此我可以在它继续搜索时与结果进行交互。
到目前为止我已经尝试过:
使变量局部于函数而不是类,因此可以由 G 检索,但是“item”中最常用的变量,因为它是 foreach 的一部分,因此必须以这种方式声明。
每 1000 个邮件项执行一次手动 GC,这根本没有区别。
出于某种原因,它需要大量内存,只是循环遍历这些项目,而 GC 永远不会释放它们。
另请注意,我使用的是 netoffice 而不是 VSTO 用于 Com 插件。
c# - 如何实例化一个新的工作表
我想对这个类进行子NetOffice.ExcelApi.Worksheet
类化,因为我需要一个带有额外字段的“自定义”工作表。作为这个新类实例构造的一部分,我只想调用基类的构造函数。也就是说,基本上我需要一个常规的Worksheet
,但需要设置一些额外的字段并有几个额外的功能。
我如何创建和新的Worksheet
?到目前为止,我只使用了类中的Add
方法Sheets
,它会自动为您执行此操作,然后将其添加到工作表中。据我所知,Worksheet
类的构造函数需要获取父对象(这不是问题)和传入的COM代理。我该怎么做?
c# - C# System.Windows.Forms.DataGridView 垂直滚动可见但不能使用
我正在使用 DataGridView 来存储一些搜索结果,但似乎无法让网格上的滚动条正常工作。
我将属性 ScrollBars 设置为 Vertical。
- 添加结果后,该栏会出现,并且看起来正在按预期工作。
- 如果我在鼠标上滚动它会滚动
- 但是,如果我尝试与酒吧互动,它什么也不做。
The only thing I am doing that is a bit odd is setting select to entire row as when one is selected it causes a popup.
另请注意,这是使用 C# 和 Net-office 的 Outlook 插件,但可能没有区别。
有任何想法吗?
如您所见,填充的网格显示了您无法使用的工具栏
将行添加到数据网格的代码
生成有关数据网格的代码,以便您查看所有设置:
c# - NetOffice 加载项未加载 64 位 Office 2013 安装
我已经使用 NetOffice 构建了一个 Multi 插件,它在 64 位安装的 Office 上运行良好。任何人都知道这个所有注册表项都在正确的位置,但它仍然显示在非活动加载项列表中,路径为空(见附图)
c# - 使用 NetOffice 在工作表中添加一行
我有一个
如何在 mainSheet 中添加新行?我找不到它的任何 NetOffice 功能。
wpf - 我得到嵌套表,但我需要分隔表(Netoffice、Word)
我写了一个 WPF 应用程序来打印一个包含一些表格的 word 文档,它可以工作,但我得到的是嵌套表格而不是分隔表格。
我正在查看不同的帖子,但它们都没有很好地工作,例如:
同样,当我尝试用 word 录制一个宏时,这给了我
我把它变成了:
甚至:
这是我最初代码的开头:
这是第一个表:
这是第二个表格,但文本进入我的第一个表格的最后一个单元格(最后一个单元格):
更新。6 月 17 日晚上 9 点
我发现了一些东西,它把光标放在表格之外,但它在文件的开头,这不应该是:
更新。6 月 17 日,晚上 9:30
使用“InsertAfter”是否有效,具体取决于我放置此语句的位置,但这仍然不能解决我的问题。
这应该将“wordApplication.Selection.Range”调整为某种“InsertAfter”,结合我发现的两件事。
更新于 18.06 上午 07:30
如果我使用它,我会得到一个“ComException”(宏记录器向我展示了这个):
更新于 18.06 上午 07:45
然后我找到了这个,它非常接近我的目标(但它替换了上表的最后一个单元格):
提前致谢 :)