VSTO实战技巧
- 格式:doc
- 大小:147.00 KB
- 文档页数:16
初识 VSTO Addin开发这篇博客将简单介绍一些VSTO Addin 开发的知识。
1.VSTO是什么我们能够用 VSTO做什么VSTO全称 Visual Studio Tool for Office, 是能够让我们针对现有的Office 程序进行功能扩展。
在工作或生活中其实我们或多或少用到过VSTO插件,比如安装有道字典/Adobe Pro 会在Office 程序中嵌入插件程序。
2. VSTO开发环境的准备:(1). 我们的 PC上需要安装有Office(Office 2007 及以上版本 );(2). 以 Visual Studio 2015 为例,在安装时需要勾选没有安装也没关系,能够在控制面板中经过改正Office Development 模块。
假如初始安装Visual Studio 的方式进行安装。
成功安装后,翻开 Visual Studio 2015--> 新建工程 -->选择 Office Development 模块:3.Office 开发的模板,我们主要看 (Application-Level/Template-Level) 的模板,这二者的加载方式请看下边的图示:翻开 Office 解决方案的文档后, Microsoft Office 应用程序检查自定义文档属性,以确立能否有与文档关系的托管代码扩展。
PS: 这二者在开发上的差别就是模板不同样,其余基本没有。
此外一个Application-Level 是针对整个Office Word/Excel/... 的定制,而Template-Level 是正对 Word/Excel/... 模板的定制。
4. 我们以 VSTO Word Addin 为例,讲一下VSTO Word Addin Development 中的核心对象。
Application : 代表了 Word 程序Document : 代表了一个Word 文档,一个Word Application能够有1个或许多个DocumentBookmark : 代表了在Word 文档中一个连续的地区,它有一个开端地点和结束地点,能够用一个表记来标志这段连续的地区,这个就是BookmarkRange: 代表了在Word 文档中一个连续的地区,它有一个开端地点和结束地点Selection: 代表了目前选中的地区;更多内容,请参照:我们经过新建一个Word Addin 的工程来初步认识下这几个对象。
VSTO:使⽤C#开发Excel、Word【14】操作workbooks集合可从Application对象的Workbooks属性中获取的Workbooks集合包含当前在应⽤程序中打开的Workbook对象的集合。
它还具有⽤于管理开放⼯作簿,创建新⼯作簿以及打开现有⼯作簿⽂件的⽅法。
迭代开放式⼯作簿集合实现⼀个称为GetEnumerator的特殊⽅法,允许它们被迭代。
您不必直接调⽤GetEnumerator⽅法,因为C#中的foreach关键字使⽤此⽅法遍历⼀组⼯作簿。
有关使⽤foreach的⽰例,请参见清单5-8。
清单5-8 使⽤foreach迭代⼯作簿收集的VSTO定制private void Sheet1_Startup(object sender, System.EventArgs e){Excel.Workbooks workbooks = this.Application.Workbooks;foreach (Excel.Workbook workbook in workbooks){MessageBox.Show();}}获取workbooks中的workbook要获取Workbooks集合中的Workbook,可以使⽤返回Workbook对象的get_Item⽅法。
get_Item⽅法具有Index对象类型的Index参数。
您可以在要访问的集合中传递表⽰Workbook的基于单⼀索引的int。
(Office对象模型中⼏乎所有的集合都是基于1。
)或者,您可以传递⼀个表⽰您要访问的⼯作簿名称的字符串。
⼯作簿的名称是保存⽂件的名称(例如“Book1.xls”)。
如果⼯作簿尚未保存,则它将是Excel为新⼯作簿创建的临时名称,通常为Book1,⽆需扩展名。
清单5-9显⽰了使⽤两种索引调⽤get_Item的⽰例。
清单5-9 使⽤带有int和string Index的get_Item获取⼯作簿的VSTO⾃定义private void Sheet1_Startup(object sender,System.EventArgs e){Excel.Workbooks workbooks = this.Application.Workbooks;if(workbooks.Count> 0){//获取集合中的第⼀个⼯作簿(基于1)Excel.Workbook wb = workbooks.get_Item(1);MessageBox.Show();//通过传递⼯作簿的名称获取相同的⼯作簿。
vcast单元测试方法
VCAST的单元测试方法如下:
创建测试环境。
在VCAST中,有两种生成测试用例的方法,一种是手动生成,另一种是自动生成。
对于手动生成测试用例,需要根据函数的需求,为测试用例中的参数填写对应的输入值和期望值。
输入值是指在执行测试用例时,将这些数据作为函数的入参或赋值给全局变量,执行函数代码,对函数进行测试;期望值是指当测试用例执行完成后,将输入的期望值与执行完成函数代码时的实际值进行比较,如果期望值和实际值相同,测试用例执行通过,否则执行失败。
运行测试:右键单击解决方案资源管理器的VSTSDemo.Test项目,选择设置为启动项目(Set as StartUp Project)。
接着,使用菜单项调试->启动(F5)或者调试->开始执行(不调试)(Ctrl+F5)开始运行测试。
这时出现测试结果窗口,列出项目中的所有测试。
vst pro q3用法
VST Pro-Q3 是一款功能强大的音频均衡器插件,它可以用于音频混音和母带处理。
下面我将从安装、基本功能和高级功能等方面来介绍一下 VST Pro-Q3 的用法。
首先是安装。
安装 VST Pro-Q3 插件非常简单,只需将插件文件放置在你的 VST 插件文件夹中,然后在你的音频工作站中扫描新的插件即可。
一旦安装完成,你就可以在你的混音工程中使用这个插件了。
其次是基本功能。
VST Pro-Q3 提供了直观的用户界面,你可以在频谱上直接操作,并且可以实时听到效果。
你可以通过移动点或者拖动曲线来调整频率、增益和宽度,从而对音频进行均衡调节。
此外,它还提供了多种滤波器类型和斜率选项,以满足不同的音频处理需求。
再者是高级功能。
VST Pro-Q3 不仅提供了基本的均衡功能,还包括动态均衡、M/S 处理、自适应 Q 值等高级功能。
动态均衡可以根据音频信号的动态范围自动调整均衡效果,使得音频更加平衡和自然。
M/S 处理可以分别处理音频的中心信号和侧边信号,从而更
精细地控制音频的空间感和立体感。
自适应 Q 值可以根据频率和增益的变化自动调整均衡曲线的宽度,使得均衡更加智能和精准。
总的来说,VST Pro-Q3 是一款非常强大和灵活的均衡器插件,它不仅提供了直观的操作界面和基本的均衡功能,还包括了许多高级功能,可以满足各种音频处理需求。
希望这些信息能够帮助你更好地了解和使用 VST Pro-Q3。
vsto的vb实例VSTO(Visual Studio Tools for Office)是一种用于开发Microsoft Office应用程序的工具集,它允许开发人员使用Visual Studio来创建自定义的Office解决方案。
在VSTO中使用VB(Visual Basic)语言来编写Office解决方案是非常常见的。
下面我将为你提供一个简单的VSTO的VB实例,以便你了解如何使用VB语言来开发基于VSTO的Office解决方案。
在这个示例中,我们将创建一个简单的Excel插件,它将在单元格A1中显示"Hello, VSTO!"。
首先,你需要在Visual Studio中创建一个新的VSTO项目。
选择“文件” > “新建” > “项目”,然后在“安装的”模板下选择“Visual Basic” > “Office/SharePoint” > “VSTO 项目”。
给项目命名并点击“确定”。
接下来,你需要在解决方案资源管理器中右键点击项目,选择“添加” > “新项”,然后选择“这台计算机上的模板” > “Office” > “Excel 2013 工作表”。
这将创建一个新的Excel工作表,你可以在其中编写你的VSTO代码。
在新创建的Excel工作表中,双击“Sheet1.vb”以打开代码文件。
然后,你可以编写以下代码来在单元格A1中显示"Hello, VSTO!":vb.Imports Microsoft.Office.Tools.Excel.Public Class Sheet1。
Private Sub Sheet1_Startup() Handles Me.Startup.Me.Range("A1").Value = "Hello, VSTO!"End Sub.End Class.在这个示例中,我们使用了VSTO提供的Excel对象模型来访问单元格并设置其值。
第四天任务:C#中使用VB中的My对象1.打开Visual Studio20132.在菜单中:文件->新建->项目3.在新建项目对话框中,选择模板->Visual C#->Office 外接程序,再选“Word 2010文档”4.把解决方案命名”TestClassMy”,并把位置设为C:\sample(注意不要使用中文路径)5.在向导窗口中,选择“新建文档”,点击“确定”6.在工具箱中往文档拖放一个ComboBox和一个ListBox,调整控件大小,如下图所示7.由于My类是在VB中使用的,而C#中要使用My类,项目就必须添加“Microsof. VisualBasic”的引用。
在解决方案窗口中,右击“引用”8.在引用管理窗口,选择“程序集”->“框架”,勾选Microsof.VisualBasic,最后点击“确定”。
8.在解决方案窗口中,右击ThisDocument.cs ,选择“查看代码”ThisDocument.cs代码参考如下:using System;using System.Collections.Generic;using System.Data;using System.Linq;using System.Text;using System.Windows.Forms;using System.Xml.Linq;using Microsoft.Office.Tools.Word;using Microsoft.VisualStudio.Tools.Applications.Runtime;using Office = Microsoft.Office.Core;using Word = Microsoft.Office.Interop.Word;using Microsoft.VisualBasic.Devices;//引用Microsoft.VisualBasic的类using Microsoft.VisualBasic.ApplicationServices; //引用Microsoft.VisualBasic的类namespace TestClassMy{public partial class ThisDocument{private void ThisDocument_Startup(object sender, System.EventArgs e){//为comboBox添加条目boBox1.Items.Add("Ports");boBox1.Items.Add("Drives");boBox1.Items.Add("Loaded Assemblies");}private void ThisDocument_Shutdown(object sender, System.EventArgs e){}private void comboBox1_SelectedValueChanged(object sender, EventArgs e){puter my = new Computer();//获取当前程序集System.Reflection.Assembly assem = System.Reflection.Assembly.GetExecutingAssembly();Microsoft.VisualBasic.ApplicationServices.AssemblyInfo app = new AssemblyInfo(assem);switch (comboBox1.SelectedItem.ToString()){case "Loaded Assemblies":int totalAssemblies = app.LoadedAssemblies.Count;this.listBox1.Items.Clear();for (int i = 0; i < totalAssemblies - 1; i++){this.listBox1.Items.Add(app.LoadedAssemblies[i].FullName.ToString());}break;case "Drives":int totalDrives = my.FileSystem.Drives.Count;this.listBox1.Items.Clear();for(int i = 0; i<totalDrives-1; i++){this.listBox1.Items.Add(my.FileSystem.Drives[i].Name.ToString());}break;case "Ports":int totalPorts = my.Ports.SerialPortNames.Count;this.listBox1.Items.Clear();for (int i = 0; i < totalPorts - 1; i++){this.listBox1.Items.Add(my.Ports.SerialPortNames[i].ToString());}break;}}}}9.按F5运行代码。
vvst操作流程一、什么是vvst呀。
vvst呢,就是一个超有趣又很实用的东西。
它呀,就像是一个魔法盒子,里面藏着好多好多的功能,但是我们得按照一定的方法去操作,才能让它发挥出最大的魔力。
二、开始操作前的准备。
在开始操作vvst之前呢,我们得先确认一些小事情哦。
比如说,我们要保证设备是正常的,就像我们出门要检查钥匙带没带一样重要。
如果是电脑的话,要看看网络是不是连接好了,要是网络不好,就像小蚂蚁在慢吞吞地搬家,会让vvst的操作变得很不顺畅呢。
如果是手机操作的话,也要看看手机有没有足够的电量,可不能操作到一半就突然关机啦,那可就像正看精彩的动画片突然停电一样扫兴。
三、基础操作流程。
1. 打开vvst。
找到vvst的图标呀,就像在一堆宝藏里找到最闪亮的那一颗宝石一样。
这个图标一般都很有特色的,很容易就能认出来。
然后轻轻地点击它,就像是敲开一扇神秘的大门,进入到vvst的世界里。
2. 注册或登录。
要是你是第一次使用vvst呢,就需要注册一个账号。
这个注册过程就像给自己在这个魔法世界里建立一个小窝一样。
填写一些必要的信息,像你的名字啦,或者是一个很有创意的昵称,再设置一个只有你知道的小密码,这就像是小窝的钥匙,要保管好哦。
如果已经有账号了,那就直接登录就好啦,就像回到自己熟悉的小窝一样开心。
3. 主界面探索。
登录进去之后,就会看到vvst的主界面啦。
这个界面就像一个大的游乐场,有好多好玩的区域。
可能会有一些菜单选项,比如说像“我的设置”“功能中心”之类的。
这时候你可以像个好奇的小探险家一样,到处点点看看,了解一下每个部分大概是做什么的。
不过可别乱点一通,要是不小心点到什么不该点的地方,就像在游乐场里不小心闯进了工作人员的小房间一样,可能会有点小麻烦呢。
四、具体功能操作。
1. 功能一:比如说文件管理。
如果要使用vvst的文件管理功能,在主界面找到相应的入口之后,就可以开始操作啦。
你可以上传文件,就像把自己的小宝贝放进魔法盒子里一样。
vsto 合并单元格的值-回复如何在VSTO中获取和合并单元格的值。
VSTO(Visual Studio Tools for Office)是一个用于开发Microsoft Office扩展的框架。
它可以通过使用C#或其他.NET编程语言来扩展Office应用程序的功能。
在本文中,我们将介绍如何使用VSTO来获取和合并单元格的值。
在开始之前,确保你已经安装了Visual Studio和VSTO工具。
第一步:创建一个Excel VSTO项目首先,打开Visual Studio并选择“创建新项目”。
在“模板”选择中,选择“Visual C#”- “Office/SharePoint”- “Excel 2013和2016 VSTO 添加项”。
接下来,为项目命名并选择保存位置。
点击“确定”来创建新的VSTO项目。
第二步:添加参考在刚创建的项目中,右键点击“引用”并选择“添加引用”。
在“COM”选项卡下,找到并选择“Microsoft Excel Object Library”。
点击“确定”来引用Excel对象库。
第三步:编写代码在VSTO项目中,打开“ThisAddin.cs”文件,它是一个用于扩展Excel 应用程序的类。
找到“ThisAddIn_Startup”方法并在其后面添加以下代码:csharpprivate void ThisAddIn_Startup(object sender, System.EventArgs e) {Excel.Worksheet worksheet = this.Application.ActiveSheet as Excel.Worksheet;Excel.Range range = worksheet.get_Range("A1:B2"); 定义一个区域范围range.Merge(); 合并单元格string mergedValue = range.Value.ToString(); 获取合并后的值}在上述代码中,我们首先定义了一个工作表对象和一个单元格范围对象。
visual studio高效调试手段与技巧以下是一些提高在Visual Studio中调试的效率的手段和技巧:1. 使用断点:设置断点是最基本的调试技巧,可以在代码中设置断点,程序执行到断点处时会暂停执行,可以检查变量的值、调用堆栈等信息。
2. 条件断点:可以设置断点在满足特定条件时才会触发,可以通过右键单击断点并选择“条件”选项来设置条件。
3. 数据查看窗口:可以在调试过程中实时查看变量的值,可以通过将鼠标悬停在变量上或者在代码中插入watch表达式来查看变量的值。
4. 自动变量窗口:可以在断点处展开查看变量的值,也可以通过选择变量并点击右键选择"Add to Auto's"将其添加到自动变量窗口中。
5. 输出窗口:可以使用输出窗口来向控制台打印输出信息,可以使用Debug类中的方法如Debug.WriteLine()或者在代码中使用System.Diagnostics.Debug.WriteLine()来输出调试信息。
6. 即时窗口:可以在调试过程中临时执行一些代码,可以在即时窗口中输入表达式,可以检查变量的值、调用函数等。
7. 异常窗口:可以捕获和处理异常,可以在调试过程中查看程序中的异常信息。
8. 调试启动选项:可以在调试过程中选择以不同的方式启动程序,如选择启动应用程序或选择附加到进程。
9. 追踪点:可以设置追踪点,当程序运行到追踪点时,会以消息框的形式显示追踪点的信息。
10. 单步调试:可以使用单步调试功能逐行执行代码,可以逐过程调试、逐语句调试等。
11. 查找调用层次:可以使用“调用层次窗口”或者“调用栈窗口”来查看方法的调用层次信息。
12. 保存调试状态:可以在调试过程中保存断点和调试信息的状态,可以在下一次打开解决方案时恢复调试状态。
希望这些技巧能帮助您提高在Visual Studio中的调试效率。
目录VSTO基本概念 (1)Application 对象 (1)Document 对象 (1)Selection 对象 (1)Range 对象 (1)一、如何控制当前光标 (2)二、如何获取和设置Range (3)1、如何构建一个range (3)2、为Selection设置Range (3)3、获取对象的range (3)三、VSTO的bookmark (4)四、如何定义菜单 (5)五、如何设置工具栏 (7)六、如何设置自己的popuMenu (8)七、如何通过vsto设置和使用style (9)1、关于style的几个概念 (9)2、如何获取style (9)3、如何应用style (9)八、如何打开和关闭文档结构图 (11)十、表格操作 (11)1、便历所有单元格 (11)2、修改边框式样、合并单元格 (11)十一、如何利用xml对文档内容进行分割管理 (12)十二、设置目录 (14)十三、如何控制自定义面板 (15)1、添加和移除面板 (15)2、关闭面板 (15)3、使用Word中的数据 (15)VSTO基本概念使用VSTO 2005 创建的最基本形式的自定义项由两个文件组成:一个Word 文档或Excel 工作簿以及一个程序集(Visual Studio 将其编译为.dll 文件)若要开发使用Microsoft Office Word 的解决方案,可以与Word 对象模型提供的对象进行交互。
Word 对象是按层次顺序排列的,层次结构顶端的两个主类是Application 和Document 类。
这两个类非常重要,原因是在大部分时间里,您要么是在使用Word 应用程序本身,要么是以某种方式处理Word 文档。
Word 对象模型严格遵循用户界面。
Application 对象表示整个应用程序,每个Document 对象表示单个Word 文档,Paragraph 对象对应于单个段,以此类推。
这些对象各自都有很多方法和属性,您可以使用这些方法和属性操作对象或与对象交互。
Application对象Application对象表示Word 应用程序,是其他所有对象的父级。
它的所有成员通常作为一个整体应用于Word。
可以使用该对象的属性和方法来控制Word 环境。
Document对象Microsoft.Office.Interop.Word.Document 对象是Word 编程的中枢。
当您打开文档或创建新文档时,就创建了新的Microsoft.Office.Interop.Word.Document 对象,该对象被添加到Word 的Documents 集合中。
焦点所在的文档叫做活动文档,由Application 对象的ActiveDocument 属性表示。
可以使用this 对象引用来访问ThisDocument 的成员。
Selection对象Selection对象表示当前选择的区域。
如果未选中任何对象,它表示插入点。
此外,它也可以是不连续的多个文本块。
使用this.Sections可获取当前文档的所有节。
Range对象Range对象表示文档中的一个连续的区域,由一个起始字符位置和一个结束字符位置定义。
Range 对象的数量并不局限于一个。
您可以在同一文档中定义多个 Range 对象。
Range 对象具有下面的特性:∙它的组成成分可以是单独的插入点,也可以是一个文本范围或整个文档。
∙它包含非打印字符,例如空格、制表符和段落标记。
∙它可以是当前选择所表示的区域,也可以表示当前选择之外的区域。
∙与所选内容总是可见不同,它在文档中是不可见的。
它不随文档保存,仅存在于代码运行期间。
在向一个范围的末尾插入文本时,Word 会自动扩展该范围以包含插入的文本。
一、如何控制当前光标1、获取和设置光标位置Application.Selection.StartApplication.Selection.End当在计算或者使用程序初始化Word时,随时获取当前光标位置,可用Application.Selection.Start获取。
2、判断是否选取文字Application.Selection.Text表示Word中,是否有被选中的反显的文字。
Application.Selection.Text. Length,表示选中长度。
3、将光标移动//回到首行(ctrl+Home)object wdUnit = WdUnits.wdStory;object wdExent = WdMovementType.wdMove;this.Application.Selection.HomeKey(ref wdUnit, ref wdExent);//定位书签object what = WdGoToItem.wdGoToBookmark;bookName = "end";ThisApplication.Selection.GoTo(ref what, ref missing, ref missing, ref bookName);二、如何获取和设置Range1、如何构建一个rangeobject start = null;object end = null;Range rng = Range(ref start,ref end);2、为Selection设置Rangeint start = 20;int end = 40;this.Application.Selection.SetRange(start,end); this.Application.Selection.Range.Select();3、获取对象的range如:xmlNodebookmark表格对象tempTable.Cell(1, 2).Range.Start;都有range属性。
可根据此,进行操作。
三、VSTO的bookmark首先命名空间不一致,Microsoft.Office.Tools.Word.BookmarkMicrosoft.Office.Interop.Word.Bookmark添加一个VSTO bookmark常用方法如下://定义区域起止位置object start = null;object end = null;//获取当前光标开始位置start = this.Application.Selection.Start;//插入“根据公式:this.Application.Selection.TypeText("根据公式:");//回车换行this.Application.Selection.TypeParagraph();//获取结束位置end = this.Application.Selection.End;//根据区域创建bookmarktempbook = this.Controls.AddBookmark(Range(ref start, ref end),”bookname”); 此种方法较为灵活和稳定。
所有经vsto封装的空间,均派生至Microsoft.office.tools下。
Vsto封装的bookmark,除了具有普通bookmark的特性外,还有一个新增功能就是,封装了很多可以订阅的事件。
BeforeDoubleClick --双击BeforeRightClick --显示右键菜单Deselected --失去选择Selected --选中时四、如何定义菜单mandBarPopup cmdbar = null;mandBarButton menuInsertGraphics;private void AddMenuBar(){try{mandBarPopup cmdBarControl = null;///获取当前word窗口的菜单mandBar menubar =(mandBar)mandBars.ActiveMenuBar;int controlCount = menubar.Controls.Count;string menuCaption = "作业规程(&Z)";// Add the menu.cmdBarControl = (mandBarPopup)menubar.Controls.Add( Office.MsoControlType.msoControlPopup,missing, missing, controlCount, true);if (cmdBarControl != null){cmdBarControl.Caption = menuCaption;cmdBarControl.Tag = menuTag;// 添加章节设计按钮menuCapterBtn =(mandBarButton)cmdBarControl.Controls.Add(Office.MsoControlType.msoControlButton, missing, missing, missing, true);menuCapterBtn.Caption = "章节设计(&C)";menuCapterBtn.Tag = "menuCapter";menuCapterBtn.FaceId = 43;menuCapterBtn.Click += newMicrosoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(menuCapterB tn_Click);// 添加按钮// 图形cmdbar = (mandBarPopup)cmdBarControl.Controls.Add(Office.MsoControlType.msoControlPopup, missing, missing, missing, true);cmdbar.Tag = "menuGraphics";cmdbar.Caption = "插入图形";//图形处理工具插menuGraphicsBtn = (mandBarButton)cmdbar.Controls.Add( Office.MsoControlType.msoControlButton, missing, missing, missing, true);menuGraphicsBtn.Caption = "从图形处理工具(&G)";menuGraphicsBtn.Tag = "menuGraphics";menuGraphicsBtn.FaceId = 53;menuGraphicsBtn.Enabled = false;menuGraphicsBtn.Click += newMicrosoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(menuGraphic sBtn_Click);}}catch (Exception e){MessageBox.Show(e.Message);}}如上述代码所示,向Word菜单中,增加自定义项。