VSTO学习笔记(一)VSTO概述

作者:佚名 上传时间:2019-04-19 版权申诉
原文: VSTO学习笔记(一)VSTO概述

接触VSTO纯属偶然,前段时间因为忙于一个项目,在客户端Excel中制作一个插件,从远程服务器端(SharePoint Excel Services)上下载Excel到本地打开,用户编辑后再上传回服务器端。当时工期紧迫,临时查了些资料,用VSTO + Excel COM API完成。正因为这个项目,我发现了VSTO的强大功能与潜力,决定抽出一些时间来好好研究下。

示例代码下载

本系列所有示例代码均在 Visual Studio 2010 Beta 2 + Office 2010 Beta 下测试通过

一、什么是VSTO?

VSTO = Visual Studo Tools for Office,是.net平台下的Office开发技术。相对于传统的VBA(Visual Basic Application)开发,VSTO为中高级开发人员提供了更加强大的开发平台和语言,并部分解决了传统Office开发中的诸多问题(难于更新、可扩展性差、难以维护、安全性低等),开发人员可以使用熟悉的技术来构建更加灵活的、强大的、跨平台的企业级解决方案。

二、为什么要进行Office开发?

Office拥有强大的数据分析、显示和计算能力,尤其在桌面领域,已经成为了办公自动化的行业标准。虽然Office功能强大,但是也不可能满足各行各业的特定需求,如果能够借助于Office构建企业的个性需求,那将十分具有吸引力。这样,在不需要其他专业软件的情况下,就可能完成既定的目标。

三、Office开发简史

1、VBA(Visual Basic Application)

微软提出的第一种Office开发解决方案就是VBA,在20世纪九十年代VBA红极一时,借助于当时如日中天的Visual Basic,VBA取得了巨大的成功,无论是专业的开发人员,还是刚入门的非开发人员,都可以利用VBA完成简单或复杂的需求。但是VBA本身拥有很多的局限性,VB语言虽然简单,但是其语法令中高级开发人员不太适应,尤其是VBA的开发环境过于简单,缺少与时俱进的高级功能,使得VBA开发陷入了瓶颈。

2、VSTO 1.0(VSTO 2003)

时光跨入21世纪,微软发布了.net平台,并推出了新千年的新语言:C#,VBA一统Office开发天下的情况终于有所转变。从Office 2003开始,Office正式由一个桌面办公平台转化为了桌面开发平台,微软也适时推出了VSTO 2003,即VSTO 1.0。正是由此开始,Office开发跨入了一个新的时代,开发人员可以使用更加高级的语言和熟悉的技术来更容易的进行Office开发。VSTO 1.0完全编程支持Office 2000和Office XP,提供了以文档为中心的开发平台,开发人员使用.net framework 1.1开发Office中的一些自动化程序等。

3、VSTO 2.0( VSTO 2005 SE)

VSTO 2.0随同Visual Studio 2005推出,提供了大量新特性:

提供了新的文档模板 对Word、Excel的可视化支持 可以使用托管的Windows Forms控件或组件 宿主控件(不知道翻译的怎样:))     支持在文档中添加智能标签 动作面板支持 数据绑定、数据源、数据模型支持 数据缓存 服务器端编程 配置文件 新的部署方式 InfoPath开始支持托管代码 与众不同的Outlook 托管插件

4、VSTO 3.0(VSTO 2008)

VSTO 3.0随同Visual Studio 2008发布:

对于 Office 解决方案开发来说, VSTO 是简单但强大的框架。这个框架为每个 Office 开发者带来了许多令人惊叹的好处:窗体控件、类、安全性、服务器可测量性、面向对象特征、完整性、易发布,等等。
1)
、更安全的托管代码扩展
VSTO
允许托管和非托管代码无缝地放在一起到相同的 .NET 程序集里,这允许开发者保留非托管代码而无须完全重写。带有链接或引用托管代码程序集的文档或工作簿被作为托管代码扩展。通过使用 VSTO Word Excel 中创建托管代码扩展,与宏相似但更安全。使用 VSTO ,能够创建仅需要装载数据的模板。
2)
、数据缓存
数据缓存,简单地说,就是在内存中存储数据以便于快速访问。 Microsoft Office Word 文档或 Excel 工作簿有一个隐藏的控件,称之为运行时存储控件( Runtime Storage Control ),存储缓存的数据。 VSTO 提供数据缓存功能,使用 C# 中的 ServerDocument 类,通过应用程序外部到 Office 来操控数据缓存,无须访问 Word Excel 对象模型。
3)
、自定义功能
使用可重复使用的类, VSTO 3.0 提供极好的控制来自定义 Office 应用程序。不像 VBA 开发者, VSTO 开发者不局限于 VBA 函数库。 VSTO 提供了相当广泛的类、对象和事件来创建 Office 商业解决方案。使用 VSTO ,开发者能够为 Office 应用程序自定义功能。这能够简单到在应用程序命令栏中添加按钮或自定义任务窗格,或者复杂到用于访问不同数据源的数据报表模板。
4)
、自定义用户界面
VSTO
提供 Windows 窗体控件,帮助你为 Office 解决方案开发富用户界面( UI )。通过使用大量各种各样的控件集, VSTO 开发者能够为用户创建丰富的数据视图。每种和每类 Windows 窗体控件都有自已的属性、方法和事件设置,适合不同的需要。
通过在文档和任务窗格里使用控件, VSTO 使创建丰富的用户界面更容易。例如,可以创建一个活泼的按钮命令产生套用信函。又如,假设公司在其服务器上存储了数据内容,用户在处理文档时想从服务器中引用一些内容并且不想离开当前编辑的文档,使用 VSTO 可以使服务器内容在文档的任务窗格中可用而无须干扰用户当前的工作。
5)
、智能标记
智能标记是 Office 应用程序能够在文档里识别的字符串。启用智能标记, Word 试图识别文档中某类数据,通过紫色的点划线来显示。单击智能标记,出现特定数据类型的可能操作的列表。 VSTO Office 开发者提供了对象模型,可用于为文档和工作簿创建智能标记。
6)
WPF 支持
WPF
能用于创建丰富的、具有吸引力的外观。在 VSTO 环境中可使用 WPF VSTO 的可视设计器支持 Windows 窗体和 WPF 控件的使用。 WPF 为创建基于客户和基于网络的应用程序提供了可靠的编程模型,并且在商务逻辑和 UI 之间呈现清楚的分离。
7)
、可视化的设计器
VSTO
Office 应用程序提供了可视化的设计器,例如 Word 2007 Excel 2007 ,显示在 Visual Studio IDE 里。在 Visual Studio IDE 里创建窗体只需拖动并放置窗体到 Office 文档中。开发者能够访问 Visual Studio IDE 中的许多工具和功能,例如智能感知、拖放控件和数据源。 VSTO 也提供了 Ribbon 可视化设计器,用于通过使用简单的 .NET 应用程序编程模型自定义 Office 功能区和编程。
8)
、安全改进
VSTO
安全模型包含从 Office 信任中心和 Visual Studio Tools for Office 运行时的广泛支持,帮助解决 VBA 代码通常涉及的安全问题。 VBA 安全模型有许多缺点,容易使用 VBA 开发许多病毒。为了安全地运行 VBA 宏,用户机器中必须设置安全性为高,并且使用数字签名。更重要的是,这些操作都需要用户手工执行。在 VSTO 3.0 中,已经修改了安全模型。 VSTO 创建了安全策略,每次创建工程时必需在计算机中运行和调试解决方案,在发布前签署程序集。
9)
、可维护性
Office 系统开发的 VSTO 解决方案更容易维护。更新已发布的解决方案,修改代码,以及更新单个的程序集将帮助更多的资源在相同文档的多个副本里做相同的事情。所有代码将驻留在程序集里。在使用宏时,脚本驻留在 Office 文档里,无论何时想更新代码,必须修改每一个包含代码的文档。使用 VSTO 3.0 ,能够通过简单地修改代码和更新单个的程序集来管理应用程序级加载项,无须在相同文档的多个副本中做同样的事情。


VSTO 3.0
的新功能
VSTO 3.0
具有大量的新功能,也增强了现有的关键功能。下面列出在 VSTO 3.0 中可用的改进 Office 解决方案开发工作的一些关键的新功能:

文档级的定制:文档级的定制是自定义驻留在单个文档里的解决方案。使用 VSTO 的文档级定制是新版 VSTO 中添加的关键功能之一。 VSTO 支持 Word Excel InfoPath 的文档级解决方案。

应用程序级加载项:应用程序级加载项被创建为托管代码程序集,当相关的 Office 应用程序启动时将装载应用程序级加载项。 VSTO 3.0 提供了直接编程访问 .NET 对象和控件。

功能区可视化设计器:功能区是组织相关命令的新方式。实际上,它们作为控件显示。可视化设计器提供高级工具并支持更容易地创建和设计自定义功能区。

任务窗格:任务窗格帮助用户快速且更方便地访问信息。取决于用户的喜好,可以在 Office 应用程序用户界面中显示或隐藏任务窗格。

窗体区域:窗体区域是自定义标准的 Outlook 2007 用户界面的新方式。例如,在 Visual Studio 2008 中, VSTO 3.0 提供了基于 Windows 窗体的设计和开发环境。这允许 Office 开发者在单个的开发环境中设计和编码新的 Outlook 窗体区域,将大多数 Windows 窗体引入到 Outlook 的宿主环境中。

工作流支持: VSTO 提供可视化设计器支持开发者使用 Visual Studio 2008 创建工作流。一个向导选项用于创建工作流,并且直接将其赋值到发布位置。

SharePoint 支持: VSTO 中的新对象帮助开发者在 Office 应用程序中为 SharePoint 编程。可以使用 VSTO 扩展 Office 客户端应用程序,使用 SharePoint Portal 将它们整合到企业解决方案中,例如客户关系管理、供应链管理以及其他类似的应用程序。

使用 ClickOnce 部署: ClickOcne 部署技术允许基于 Windows 应用程序使用最小程度的用户交互来部署和运行。安全区将限制使用 ClickOnce 技术部署的应用程序的许可和操作。

Word 内容控件:内容控件是容器,其中能放置特定类型的内容,例如日期、列表、图片或文本。

富用户界面控件:能够创建带有丰富且容易访问的用户界面的 Office 解决方案。例如,可以创建带有 Windows 控件的任务窗格,和其它数据源交互数据。

支持其他的 Office 应用程序。

VSTO 架构
VSTO
应用程序由 Office 应用程序和 .NET 程序集组成。

Office 应用程序: VSTO 公布了对象,使之更容易编写 Office 应用程序。包括扩充应用程序和处理应用程序使用的数据的对象。要理解的重点之一是 Word Excel 编辑器提供了 Word Excel 文档视图。使用这些编辑器,可以编辑和格式文档,就像直接在 Office 应用程序中操作一样。

.NET 程序集:包含中间语言( IL )代码。描述程序的二进制信息的元数据存储在内存中,是 .NET 程序集的一部分。除了元数据信息外,程序集也有称作 Manifest 的专门的文件。 Manifest 包含程序集当前版本的信息。

VSTO 架构的核心组件是文档级定制、应用程序级加载项和文档级的数据模型。 VSTO 的新架构允许编写和运行带有宏的 Office 应用程序。

上图表明 Office 2007 解决方案逻辑架构。 VSTO 能够使 Office 开发者为 InfoPath Word Excel 文档创建文档级定制,而对于 Outlook PowerPoint Visio VSTO 不支持文档级定制。
VSTO
提供了非常好的面向对象编程支持。 VSTO 提供了对 C# 编程语言的完全支持,允许在 Office 解决方案中执行面向对象编程。面向对象编程是一种软件编程方式,程序结构基于对象之间的交互,以执行任务。
VSTO
的架构设计帮助 Office 开发者实现了应用程序和数据的分离,提供开发应用程序级解决方案的增强支持,并且公布了多种对象使 Office 开发者更容易编写 Office 应用程序。开发应用程序级和文档级的解决方案是 VSTO 中另一项架构改进。


开发方式
使用 VSTO 3.0 创建的解决方案类型分成两类:文档级解决方案和应用程序级解决方案。
1)
、面向文档的方式
面向文档的方式被专门设计为接触 Word Excel 文档的核心并包含原先设计的文档不支持的信息。 VSTO 3.0 支持面向文档的方式创建 Word Excel InfoPath 。实际上,面向文档的方式提供指向非常特定任务的文档,不会影响到文档驻留的应用程序。
2)
、面向应用程序的方式
VSTO 3.0
具有为 Office 2007 套件中所有的应用程序创建面向应用程序的方式的能力。可以创建和执行向 Office 应用程序中添加了各种功能和特征的加载项。
VSTO
开发和部署
VSTO
系统 3.0 运行时,运行 Office 2007 解决方案的首要需求,被内置到 VSTO 中。而 VSTO 3.0 被内置到 Visual Studio 2008 安装中。
使用 VSTO 创建 Office 应用程序
Visual Studio 2008 中包括 VSTO ,也就是说, Microsoft 首次将 Visual Studio 2008 VSTO 3.0 绑在了一块。在 VSTO 3.0 中, Microsoft Office 工具变得更加强大,因为 Microsoft 使 Office 开发环境对开发者更加友好,通过创建新的开发环境帮助开发者创建 Office 应用程序里的功能的解决方案。因此, Office 开发者能够容易地创建解决方案,为他们的商务做更多工作,另一方面,重复使用 Office 应用程序中现有的可用功能,从而减少成本开支。
VSTO
甚至可以整合现有的 ERP 系统,增进企业的成长。可以使用 VSTO 扩展 Office 客户端应用程序,将 VSTO SharePoint Portal 整合来提供企业解决方案,例如 Office 商务应用程序,包括客户关系管理、供应链管理,等等。


1
VSTO 开发环境
VSTO 3.0
不是单独的安装包,当安装 Visual Studio 2008 时, VSTO 3.0 将与其它的框架和所需的组件一起安装。
2
、包( Package
当安装 Microsoft VSTO 3.0 分发包时安装 VSTO 运行时。 VSTO 3.0 分发包是将 Visual Studio 2008 .NET 框架的功能和生产力带给建立在 Office 2007 应用程序中的商务解决方案的框架。

上图说明了 VSTO 的版本历史,以及各版本之间的一些主要的不同。当前版本的 VSTO 仅支持编程语言 VB.NET C# 。我们期望 VSTO 的下一个版本能支持其它的编程语言。


3
Visual Studio 整合
为了容易创建定制的用户界面, VSTO 3.0 Visual Studio 里提供了 Office 应用程序的可视化表现。 VSTO 3.0 很好地与 Visual Studio 2008 整合在一起,为 Office 开发者提供了完整的开发和部署 Office 解决方案的工具。 Visual Studio 2008 能够使开发者创建可升级的 Office 商务应用程序、改变主要的 Office UI 特征、支持工作流、以及创建更容易的部署。
下面,看看 Visual Studio 2008 Office 2007 应用程序的典型的 VSTO 项目模板。

Visual Studio 2008
已经打包了使用 VSTO 创建 Office 解决方案所需要的全部 VSTO 3.0 组件。当安装 Visual Studio 2008 时,所有相关的安装,包括 VSTO 3.0 的项目模板、 Office 开发引用和其它组件,都被安装并完全整合到新的 Visual Studio 2008 开发环境中。


4
、创建 VSTO 解决方案
在开发和传递创新的 Microsoft 技术方面, Visual Studio 2008 是非常快速、协同性好和灵活的,包括增强的语言和数据功能。 Office 2007 中支持的 C# VB.NET 是增强的语言特性之一,并且容易与其它数据源交互数据,例如 Microsoft SQL 服务器,是数据特性之一。这些特性确保开发者能够快速地创建连接的应用程序,传递下一代软件实践,以及克服应用程序软件开发挑战。

上图表现了 Office 解决方案的开发环境。在图中,客户端代表开发环境机器,在 Visual Studio 2008 里面的 VSTO 3.0 代表 VSTO 整合在 Visual Studio 中, Office 2007 客户端工具是 Office 应用程序,包括 Word Excel InfoPath 等,应该被安装在客户端机器上。
使用 Visual Studio 2008 开发环境能够创建应用程序级、数据中心解决方案。数据中心解决方案是集中于数据操作和数据存储的功能。
Visual Studio 2008
开发环境使得开发带有主要的 Office 2007 系统特征设计时和运行时支持的解决方案成为可能,例如功能区、自定义任务窗格、文档级解决方案、 Outlook 窗体区域,等等。
功能区是 Office 应用程序中表现菜单项的新方式。在新开发环境中,有可视化设计器,能够拖拉功能区里的控件,容易设计自定义的功能区菜单。甚至数据相关的操作,例如创建数据连接,有数据连接向导容易创建数据连接。
在创建的 Office 项目解决方案中,可以看到列出的引用,例如 System.AddIn System.Core 等等,它们被自动装载作为项目模块的一部分。这使得开发者更容易开始编程,不需要像以前一样手工添加引用和验证解决方案。
通过使用基于 XML 的数据 / 视图分离和编程性, Office 开发者能够将商务数据整合到文档里。


5
、查看 IDE 窗口
Visual Studio
是一款极其优秀的产品,专门为开发者设计,是开发者最常使用的开发工具之一,内置有 IDE ,能够使开发者使用 Microsoft 技术创建不同类型的应用程序。通常, IDE 由源代码编辑器、编译器和调试器组成。默认情况下, Microsoft Visual Studio IDE 提供智能感知、调试、编译、访问控件、以及创建解决方案的能力。最新增强了功能区设计器、拖放控件、并为 Office 应用程序增强了调试功能,缩减了开发时间,提高了开发者的效率。
内置的 VSTO 对象模型被设计来支持 .NET ,许多常用的功能被打包且很好地整合了。在新版本中,诸如 Word Excel InfoPath 的目标窗口工具被直接整合到 IDE 界面里,帮助 Office 开发者无须对象模型的高级知识就能创建解决方案。对于 Word 2007 Excel 2007 VSTO Visual Studio IDE 中也有可视化设计器。

上图中,可以看到 Visual Studio 2008 中如何显示 Excel 2007 可视化设计器。同样, Visual Studio 2008 IDE 也提供了可视化功能区设计器,允许 Office 开发者使用拖放界面来设计功能区,使用标准的 .NET 代码与功能区交互。

上图显示 Office 解决方案开发里功能区的可视化设计器,通过提供拖放控件和容易访问资源,简化了功能区开发过程。同样, Visual Studio 2008 简化并加速了操作窗格、指定文档的任务窗格、创建指定应用程序的自定义任务窗格以及 Outlook 窗体区域设计器的开发过程。


6
、调试
调试是软件开发中最重要的任务之一,并且是所有开发者在他们的开发过程中会遇到无数次的一项任务。在 Visual Studio IDE 中,开发者为调试 .NET 应用程序有几种可用的调试选择。
Visual Studio 2008
为使用 VSTO 3.0 Office 解决方案开发提供了一组强大的创建和调试工具,与 VSTO 2.0 相比是一项大的改进。在创建配置时,开发者能够选择他们想创建的组件,排除他们当前想避免创建的组件。开发者可以像项目一样,灵活地为解决方案创建配置。


我们期望下一版本能带来什么?
基于笔者的分析和作为一名 VSTO 开发者的经验,我们期望下一版本的 VSTO

目前, VSTO 3.0 支持 VB.NET C# 开发 Office 解决方案。在将来的 VSTO 版本中,我们期望支持其他语言,例如 C++ ,这将帮助 C++ 开发者创建 VSTO 解决方案。 VSTO 3.0 智能标记仅限于 Office 应用程序中文档级解决方案,不能在应用程序级解决方案中使用,因此我们期望 Microsoft 在将来的 VSTO 版本中添加这项功能。 使用 VSTO Visual Studio 环境在 Office 应用程序内创建工作流活动是我们在下一版本中期望的功能。数据和应用程序协同工作的能力是 Windows 工作流的核心,在 VSTO 中的改进将帮助我们重新组织面向工作流的开发。 应该在将来的版本中在 Visio 应用程序中也添加使用 VSTO 创建文档级的自定义任务窗格的功能。这将对 Visio 用户管理自定义形状是有用的。

5、VSTO 4.0(VSTO 2010)

虽然现在 VSTO 4.0 还没有正式发布,但是从测试版已经可以看出些端倪:

64 Office 2010 开发的支持 折叠工具栏项目支持 C# 4.0 .net framework 4.0 支持 一次针对所有用户部署 Office 项目 在单个包中部署多个 Office 项目 部署完 Office 项目后仍可以执行附加操作

四、 Office 开发存在的问题

由于历史遗留问题, Office 本来是设计与 COM 协同工作的,这就使得从一开始 VSTO 就有点"水土不服"。 .net 代码通过封装 COM Office 通信,但是有时这种配合却并不协调, Office 对象模型并不总是遵循 .net 设计所采用的命名规则和设计模式。

五、 Visual Basic 的"优势"

C# 4.0 发布之前(虽然现在也没有发布),用 VB 开发 Office 比用 C# 方便的多,这是因为 VB 简化了对 Office 对象模型的调用方法。但是随着 C# 4.0 的即将发布, VB 的这种"优势"将会变得愈来愈小。园子里有很多人已经写过 C# 4.0 的新特性,这里仅提取出针对于 COM 操作的改进:

Improved COM Interoperability

C# 中在调用 COM 对象如 office 对象时,经常需要写一堆不必要的参数:

object fileName = "Test.docx";

object missing  = System.Reflection.Missing.Value;

doc.SaveAs(ref fileName,

ref missing, ref missing, ref missing,

ref missing, ref missing, ref missing,

ref missing, ref missing, ref missing,

ref missing, ref missing, ref missing,

ref missing, ref missing, ref missing);

4.0 中就可以直接写成:

doc.SaveAs("Test.docx");

C#4.0 COM 交互做了下面几方面的改进:

Automatic object -> dynamic mapping (自动类型转换)

Optional and named parameters (可选命名参数)

Indexed properties (索引属性?)

Optional "ref" modifier (可选 ref 修饰)

Interop type embedding ("No PIA") (主调程序集嵌入)

对第 1 点和第 5 点的简单解释如下:

COM 调用中,很多输入输出类型都是 object ,这样就必须知道返回对象的确切类型,强制转换后才可以调用相应的方法。在 4.0 中有了 dynamic 的支持,就可以在导入这些 COM 接口时将变量定义为 dynamic 而不是 object ,省掉了强制类型转换。

PIA Primary Interop Assemblies )是根据 COM API 生成的 .Net Assembly ,一般体积比较大。在 4.0 中运行时不需要 PIA 的存在,编译器会判断你的程序具体使用了哪一部分 COM API ,只把这部分用 PIA 包装,直接加入到你自己程序的 Assembly 里面。

六、开发工具

1 Office 2007 Enterprise Edition With SP2 或更新版本

2 Visual Studio 2008 Team System With SP1 或更新版本

3 OpenXML SDK 2.0

七、推荐资源

1、书籍:《VSTO 开发指南》,VSTO的权威著作,强烈推荐。

2、网站:

1)MSDN VSTO版块

2)两位VSTO大师的博客,也是《VSTO 开发指南》的共同作者:

3)

八、VSTO 4.0 Hello World

最后,让我们用一个实例来结束本次研究:)

1、新建一个Office 2010的Excel Workbook项目:

2、在工作簿中添加一个按钮,添加一个Click事件:

3、弹出欢迎信息"

4、全部保存,F5运行:

一个最简单的VSTO 4.0项目就完成了。

九、小结:

本次研究花费了大量篇幅叙述了VSTO的历史变迁及其历代版本中的增强功能,后续篇章会注意研究各功能的具体实现。本次的示例非常基本,基本可以忽略,但是却包括了创建一个完整的VSTO项目的全部步骤,后续练习将会在此基础上进行扩充,实现一些高级功能。

免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com

用户评论
相关推荐
VSTOVSTO
原文: VSTO学习笔记(一)VSTO概述 接触VSTO纯属偶然,前段时间因为忙于一个项目,在客户端Excel中制作一个插件,从远程服务器端(SharePoint Ex
VSTO (十三)谈谈VSTO项目的部署
原文: VSTO 学习笔记(十三)谈谈VSTO项目的部署 一般客户计算机专业水平不高,但是有一些Office水平相当了得,尤其对Excel的操作非常熟练。因此如果能将产
VSTO (十)Office 2010 Ribbon开发
原文: VSTO 学习笔记(十)Office 2010 Ribbon开发 微软的Office系列办公套件从Office 2007开始首次引入了Ribbon导航菜单模式,
VSTO(十五)Office 2013 初体验
原文: VSTO学习笔记(十五)Office 2013 初体验 Office 2013 近期发布了首个面向消费者的预览版本,我也于第一时间进行了更新试用。从此开始VST
VSTO学习笔记20100728.doc
VSTO学习笔记20100728.doc
DOC
647KB
2021-04-18 21:43
VSTO初探VSTO教程
VisualStudio 上的office 开发
PDF
0B
2019-02-25 02:57
VSTO部署指南vsto
本人整理的VSTO部署方式VSTO中最麻烦最难的就属部署了odt格式
ODT
0B
2020-05-25 15:38
VSTO(九)浅谈Excel内容比较
原文: VSTO学习笔记(九)浅谈Excel内容比较 说起文件内容比较,或许我们首先想到的是UltraCompare这类专业比较的软件,其功能非常强大,能够对基于文本的
VSTO(五)批量编辑Excel 2010 x64
原文: VSTO学习笔记(五)批量编辑Excel 2010 x64 近期因为工作的需要,经常要批量处理大量的Excel文件,如果纯手工一个个修改,非常的麻烦,于是写了这
Node.js()
什么是Node.JS? 引用 豆瓣Node.JS小组 的回答: 把事件驱动IO库绑定给V8 JavaScript虚拟机实现的通用编