问题标签 [office-automation]

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 投票
0 回答
836 浏览

c# - 通过模板从 WinForm 应用程序生成的 Excel 文件有时是“不可见的”

我们有一个 WinForm 应用程序,它使用 VSTO 从模板生成 Excel 文件。

偶尔(经常)打开文件(因为您可以使用光标键以及公式和单元格更改)但它是不可见的。即使您保存文件并重新打开它,它仍然是不可见的。

用户使用 Excel 2007,几乎所有(6 - 8 位)用户都遇到了这个问题。

我给他们的(临时)修复是选择“全部排列”。完成后,工作表会弹出视图。

我在网上看到了几个原因和解决方法。一切都来自使用 Excel 2003 中的模板中的图形,但 Excel 2007 中没有。

该模板非常“简单”。它有公式、字体和颜色,仅此而已。

模板(和 WinForm 应用程序)通过 Click Once 部署给用户。

以下是“ThisWorkbook.cs”文件中的代码:

以下是“Sheet1.cs”文件中的代码:

0 投票
2 回答
250 浏览

.net - .net 办公自动化项目受保护问题

我正在打开一个受项目保护的 excel 文件,即。我无法向其中添加 vba 模块。

但我需要在这个文件上执行一个 vba 模块。我怎样才能做到这一点?

0 投票
1 回答
1521 浏览

c# - ASP.NET - 创建 Outlook 模板并写入浏览器

这个问题的一种形式已被问及回答了无数次,并建议如何使用 mailto: 锚标记的形式预先填充 Outlook 电子邮件的正文和主题。

我绝对不想要关于该方法的任何建议。

我想看到的是服务器上 Outlook 自动化代码的一些示例,它创建一个 Outlook 模板文件 (.ost?) 并将其二进制写入浏览器 - 浏览器识别扩展名并使用模板启动 Outlook。

这是内部的,用户肯定会拥有 Outlook。

0 投票
13 回答
36257 浏览

excel - 在 Windows 服务中从 C# 中杀死 EXCEL.exe 进程

我有一个 Windows 服务,它通过 Microsoft.Office.Interop.Excel.Application 对象打开一个 Excel 电子表格。

我想终止使用工作簿完成后仍在运行的 EXCEL.exe 进程。

我尝试了以下但没有成功...

有人对我如何通过 Windows 服务执行此操作有任何想法吗?

0 投票
1 回答
1979 浏览

delphi - 无法通过Delphi替换word应用程序中的页脚文本

我正在尝试替换页脚中的文本,我正在使用以下代码,通过它我可以替换正常内容(正文),但不能替换页脚/页眉中的内容

非常感谢任何帮助。提前致谢

0 投票
0 回答
392 浏览

web-services - 实例化 Interop.Word 的 Application 对象会挂起 Web 服务

我正在使用Interop.Word版本 12 在 word 文档中进行一些操作。我的 WebService 是在 .Net v4.0 中构建的。代码从实例化一个 Application 对象开始,如下所示:

稍后在代码中使用它来创建 Word Doc:

这都是在 Web 服务中实现的,但是服务在 webmethod 中实例化 Application 对象本身时会挂起。

WebService 在我的开发环境中运行良好,但是一旦我在使用 IIS 6.0 的 Windows Server 2003 上部署 Web 服务,就会出现这个问题。

0 投票
2 回答
298 浏览

c# - Excel (Office) 和 C#

目前我必须维护一个Excel-Application,它由许多VBA-Modules组成。对我来说,它有点像遗留系统,而 VBA 看起来像最近几天的一种语言。考虑迁移到 C#和基于.NET 的 Office 应用程序是否有意义?一般来说,对于使用 .NET 的 Office 自动化,这种迁移的优缺点是什么?还是 VBA 仍然是开发办公应用程序和办公自动化的更好方法?顺便说一句,我是一位经验丰富的 .NET 开发人员。

0 投票
1 回答
20422 浏览

c# - 在 C# 中重命名 Excel 工作表名称

VS 2008 / C#。

在传递电子表格的文件路径时,我需要重命名工作表。

如何将 Excel 工作表的 Sheet1 重命名为“ABC”。

我们将 Excel 工作表导出到 SQL 数据库。Excel 工作表中的记录由最终用户手动编辑和更新。列值可以有不同的数据类型。

默认情况下,电子表格将具有三个工作表,分别为 Sheet1、Sheet2、Sheet3。

最终用户,通常在 Sheet1 上工作。我们需要为此 Sheet1 维护一个静态名称,这有助于我们将 Sheet1 导出到 SQL 数据库。

如果我们将 Sheet1 重命名为 ABC,我们将保持相同的名称。我们不能像那样导出默认工作表。因为,最终用户可能会更改他们的名称或坚持使用默认名称。

为了避免混淆,我们决定重命名电子表格的 Sheet1。

0 投票
2 回答
218 浏览

winapi - 枚举服务上的窗口句柄(从服务创建)以确定它们的标题

我有一项服务需要运行一个应用程序(我们称之为 X),该应用程序实际上使用 Excel 自动化。

自动化 Excel 时,应用程序 X 通常会让 Excel 显示一个对话框。对话框显示的内容和原因并不重要,不幸的是,这超出了我的控制范围。

我只是希望能够在 Excel 中关闭该对话框。

当代码不作为服务运行时,这当然很容易完成。问题是在枚举窗口以确定对话框是否启动时,任何 win32 窗口调用都会返回 0 作为句柄。我理解为什么会这样,因为服务是独立运行的,并且预期结果为 0。

该服务也不可能在启用了交互式桌面的本地系统下运行。

我希望在 Excel 进程的线程上使用 GetThreadDesktop,然后打开该桌面以枚举这些窗口,但是从服务运行时该 api 也返回 0。

有很多关于此的问题,但大多数是关于希望显示来自服务的对话框以供用户交互。我不想那样做。只需找到并关闭一个对话框。

是否有人发现了一个聪明的解决方法来枚举窗口并返回标题?

笔记:

  • 应用程序 X 不在我的控制范围内。
  • 我知道在非交互式环境中不支持办公自动化。
  • 无论如何,我都不想与登录用户的桌面进行交互。
0 投票
1 回答
7984 浏览

c# - can not find Microsoft.Office.Interop.Excel, please help me

in my c# program, i try to use wrtie something to excel. i find a method on the internet, using Microsoft.Office.Interop.Excel class. but when i use Microsoft.Office.Interop.Excel,it said that no Interop class found. i have already had Microsoft Office 12.0 Object Library reference in my project