问题标签 [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.

0 投票
1 回答
658 浏览

printing - 使用 NetOffice 打印 Word 文档

我正在将服务迁移到使用 NetOffice 而不是自动化 MS Word,以防止在部署到具有旧 Office 的系统而不是在开发系统上时 Office 程序集版本不匹配。

到目前为止,一切都很顺利。

但是,我在打印 Word 文档时遇到了一些困难。这在自动化 MS Word 时工作得很好,但是当我尝试使用 NetOffice 时,我的代码中出现了转换错误。

这是我正在做的代码示例。(appWord 是 NetOffice Word.Application 的一个实例)

这曾经与 MS Word 一起工作得很好(除了 Documents.Open 方法的参数是引用),但现在我在行object wb = appWord.WordBasic; .

谁能告诉我应该如何使用 NetOffice 在特定打印机(同时不更改默认打印机)上打印 Word 文档,因为我没有成功迁移此特定方法。

0 投票
2 回答
245 浏览

c# - 在 Excel 插件中安排工作簿在不同时间运行

我有一个用 C#、Excel-DNA、NetOffice 编写的 Excel AddIn 在每个工作簿上,用户可以运行一些进程来从服务器获取数据(使用 REST Web 服务)。现在,用户希望以不同的时间间隔或时间自动重新获取每个工作簿上的数据(刷新)。比如说,在第一个工作簿上,用户希望每 5 分钟自动重新获取数据(刷新)第二个,他们希望每小时刷新一次数据。第三,他们想在每天下午 1:00 刷新数据。第四,他们想在每天下午 2:20 刷新数据,等等。

我的想法是对于用户想要自动刷新的每个工作簿,添加一个隐藏的工作表以记住刷新的频率或时间。

在插件中设置一个计时器,计时器将每分钟关闭一次,以检查哪个工作簿需要刷新并刷新它。

我觉得它会对性能产生很大的影响。请帮助获得更好的解决方案。谢谢

0 投票
0 回答
539 浏览

c# - 办公自动化 - 在 ms word 插件中压缩图像

我在尝试从办公自动化压缩图像时遇到一些问题。我可以手动执行此操作:

  1. 右键单击图像
  2. 选择“格式化图片”
  3. 图片选项卡
  4. 压缩按钮
  5. 应用于“文档中的所有图片”

我在 api 的任何地方都找不到这个方法。注意:我使用 Netoffice 作为办公自动化的包装器来绕过版本问题,但这在这种特殊情况下并不重要,因为它直接映射到 vsto

我可以处理每张图像,但我被困得更远。

非常感谢

0 投票
1 回答
904 浏览

c# - 将 TableStyle 应用于 QueryTable

我可以使用查询表:

这将正确导入数据(例如日期实际显示为日期等......)。但是当我尝试访问 ListObject 以应用 TableStyle 时,我得到了一个异常。

现在,如果我添加一个列表对象,例如:

查询中的日期显示为十进制数字而不是日期...

之后我可以对列进行格式化,但问题是当用户在运行时键入时,我实际上并不知道正在运行的查询,所以我更愿意让 Excel 来执行此操作。

所以本质上,我想要的是使用第一段代码并将 TableStyle 应用于它。

任何人都可以帮忙吗?

0 投票
1 回答
302 浏览

c# - NetOffice CustomTaskPane 在加载时被禁用

我正在尝试用 NetOffice 替换 VSTO 以获得 Excel 插件。我能够加载任务窗格,但它被禁用并且我无法与上面的任何控件进行交互。我可以让示例任务窗格正常工作,但我什至不会认为代码几乎相同。两者都是具有标准元素的用户控件。我能看到的唯一可能导致问题的是在构建时的输出中,有 Excel.EXE 错误,但我无法捕获这些错误,我也无法在互联网上找到任何可以为我指明正确方向的内容他们可能是。所以这是我用来添加任务窗格的代码:

几乎直接来自样本。

我得到的 Excel 错误是:

任何为我指明正确方向的帮助都会很棒,并帮助我在这场代码之战中升级。

0 投票
1 回答
200 浏览

excel - Excel ODBC 驱动程序的 MVC 问题

我收到一个错误The 'Microsoft.Jet.OLEDB.4.0' provider is not registered on the local machine.,代码在本地工作,但不是远程工作。由于远程托管环境的限制,我想知道是否可以修改下面的代码以使用 NetOffice.Excel.Net40:

有人可以帮忙吗?

0 投票
1 回答
3036 浏览

c# - Netoffice Hello World

几年前,我使用 VSTO 和 Visual Studio 为 Outlook 做一些不错的小插件。但是我不能证明 VS 做一些兼职项目的成本是合理的。结果,我安装了 VS 的免费版本并下载了一个很有前途的 Office 插件工具,名为 NetOffice。

我在 c# 上还可以,但找不到一个包含设置工作环境的 hello world 示例。

我已经安装了 VS express,但不知道如何处理 NetOffice 程序集等来获得一个简单的示例。

我查看了文档并找到了对“Netoffice Developer Toolbox”的引用,它为不使用完整版 VS 的人设置项目。这听起来正是我所追求的,所以我也下载了它。

当我运行应用程序 NetOffice.DeveloperToolbox.exe 时出现很多错误,它最终会加载,但选项卡丢失并且似乎没有任何工作。

启动错误是:

尝试从网络位置加载程序集,这会导致程序集在以前版本的 .NET Framework 中被沙盒化。此版本的 .NET Framework 默认情况下不启用 CAS 策略,因此这种加载可能很危险。如果此加载不打算对程序集进行沙箱处理,请启用 loadFromRemoteSources 开关。有关详细信息,请参阅 http://go.microsoft.com/fwlink/?LinkId=155569。| 不支持异常 | 无效 .ctor()

按照错误消息中的链接,您将转到具有此描述的页面:

如果由于 Visual Studio 项目错误列表中的错误消息或生成错误而被定向到此主题,请参阅如何:在 Visual Studio 中使用来自 Web 的程序集。

我不知道我在网络上引用任何东西,所以不知道下一步该怎么做。

谁能告诉我我需要做什么才能让 NetOffice 工作,或者他们是否找到/编写了一个教程来让它排序 IE 一个 hello world 教程?

在此先感谢您的帮助。

0 投票
1 回答
381 浏览

.net - 使用 NetOffice 互操作时,无法将 excel 对象作为参数从 VBA 传递到 .NET

当引用 Microsoft 的互操作程序集时,可以将 Excel 对象(如 Worksheet、Workbook、Range 等)作为参数从 VBA 传递到 .net:

.NET 类:

.. 使用 Visual Studio 中的Register for COM Interop选项或 Regasm 实用程序编译(请参阅Newman 的文章以获得很好的概述)。

VBA 脚本(excel 宏)调用 .net 方法InsertTable()

这行得通;工作簿对象可以作为参数从 VBA 传递到 .NET。但相同的架构不适用于 NetOffice 程序集:

据我了解,这些程序集的Embed Interop Types属性不能设置为 true,因为这会导致编译错误。显然,无法使用 NetOffice 将 excel 对象作为参数传递。这是真的,还是有办法用 NetOffice 做到这一点?

0 投票
2 回答
1739 浏览

c# - 以编程方式获取锁定 excel 工作簿的用户

我正在使用 C# framework 4.5、netoffice 1.6 和 sharpdevelop 4.4.1 从 Outlook 中操作位于网络共享上的 excel 工作簿。

在某些时候,我需要将工作簿对象(ewb)的文件访问更改为读写,如下所示:

在更改文件访问权限之前,我会检查文件是否在服务器上被锁定。如果文件被锁定,我将通知用户稍后重试该操作。

现在,我想在通知中包含锁定 excel 文件的用户名。我已经搜索了 msdn、netoffice 论坛等...并没有找到解决方案。我知道,如果您以读写方式打开 excel 文件,它会将用户名存储在 xlsx 文件中。如何通过 c# 访问该特定信息?

编辑:我最终这样做了:

我们使用的是 excel 2003 和 excel 2007+ 文件格式(.xls 和 .xlsx)。对于 .xls 我必须查看 .xls 文件本身。对于 .xlsx,锁定用户存储在 ~$ temp 文件中。我知道,对于 .xls 文件,它是脏代码,但我不知道 .xls 文件格式的结构。因此,我只是读取了一堆包含 ascii 用户名的字节,然后执行一个正则表达式来提取该用户名。

0 投票
1 回答
2321 浏览

c# - 检测密码保护的word文件

我正在使用“netoffice”库从 word 文件中提取文本。这应该是自动化的过程。

但是,当 word 文件受密码保护时,会显示警报窗口,因此用户需要输入密码。因为这是自动化的过程,用户不需要输入密码,程序就停在这里。

如何检测 word 文件是否受“netoffice”密码保护,如果不可能,如何禁用警报窗口显示?

我尝试将 DisplayAlerts 设置为 WdAlertLevel.wdAlertsNone,但它不起作用。