跳至正文

vsto官方文档,vsto发布流程

怎样使用VSTO刷新Excel表格数据

怎样使用VSTO刷新Excel表格数据

应该是不行的,你这些vsto或者vba进行操作的时候,其实就是后台对EXCEL文件本身进行了修改。 而撤销这个操作实际是建立在用户操作上的。

也就是说,原生的撤销功能,实际是从EXCEL打开开始监视用户的输入以及EXCEL的输出,

记录下每一步操作(如果你显示隐藏文件的话,在.XLSX文件旁边,会看到有一个临时文件的生成),当你Ctrl+Z的时候,就回滚上一步的操作。

但是使用VBA或者VSTO的时候,由于是代码在执行,所以EXCEL是不记录每一步的操作内容的,

如果仍需要这个功能,可以把撤销功能也重写一下,

思路很简单,监视每一步用户的输入(原生撤销)

并记录你VSTO按键的操作功能,逆向运行,

这样就可以将你代码执行的操作进行还原了。

vs2010 打包的vsto安装包如何静默安装

vs2010 打包的vsto安装包如何静默安装

请耐心的看

点击下载 vs 2010

注意:本站提供的VS2010旗舰版已经破解,不需要输入密匙,直接安装即可使用。

1.文件下载过来之后是ISO文件,我们直接解压即可。解压完成之后打开,找到“setup.exe”,双击运行。

2.选择第一个,如果需要静默安装:执行安装包程序时加上/quiet或/passive参数。

例:setup.exe /passive 。

3.开始Microsoft visual studio 2010旗舰版的安装,点击下一步。

4.选择我接受,然后点击下一步。

5.这里提示我们不能更改安装目录,可能是因为已经破解的原因,影响不大,直接点击下一步。

6.接着进行漫长的安装过程,具体安装时间与机器配置有关。

7.安装完成,点击完成按钮。

8.打开开始菜单,找到“Microsoft visual studio 2010”双击打开。有些朋友在打开时可能会遇见“visual studio 2010 service pack 1”需要升级的问题,不用担心,直接按照提示下载升级即可。

9.第一次启动“visual studio 2010 旗舰版”会让你选择默认环境设置。这里不用管它,随便选一个,以后还可以更改的。然后点击启动visual studio。

10.启动成功。

vsto vs2010 c#操作word文档,隐藏选中的文字后,怎么接着插入数据.

vsto vs2010 c#操作word文档,隐藏选中的文字后,怎么接着插入数据.

Selection.Font.Hidden = 1; Selection.MoveRight (1,1); Selection.Font.Hidden = 0; Selection.Text = "测试"; 就是隐藏之后光标移到后面,改变了选区,再改变字段的隐藏属性,然后打字.

制作word插件的方法中VSTO算是简单的么

其实VSTO插件的部署无非就是Prerequisites和grant full trust (因为注册表是模板帮我们处理好的,我们不需要去关心,下文有详述)。上面的两篇文章为了一步到位的解决好以上两个问题,并打包.msi文件,用了一些技术。一,给Setup项目添加prerequisites,并且使用launch condition来要求用户在安装setup.exe前必须保证所有的prerequisites都已经安装在目标机器上;二,利用Custom Action在安装过程完成后,调用caspol工具来设置程序集的权限。

第一篇文章讲解了各个技术点,第二篇文章通过具体的例子来完成两种类型项目的部署,并且提供了一个Sample,里面包含了要用到一些工程,如SetSecurity。例子就是引用这个工程做为Custom Action来设置权限的。

与上两者不同的是,本文抛开所有这些技术不看,仅仅打包一个最最简单的.msi文件,把prerequisites和grant trust的事情,留待插件安装完再去人工做。希望如此,能给在VSTO项目部署时遇到困难的人一个直观的印象,让大家看到VSTO项目要运行,其实就是这么几个东西。然后回头再看Microsoft提供的这两篇文章,幸许又会有另外的收获。

一.概述

如果你的VSTO SE插件在开发机器上工作良好,一旦装到客户机上,就不再装载了。可能的原因无非就是一下几种:(在此排除了软禁用,硬禁用的情况)

1.一些prerequisites没有装:

a. .NET Framework (这是所有.NET应用程序运行的必备,没有什么好说的。如果我们用VSTO SE开发的插件,我们应该在客户机上装上.NET 2.0以上的版本)

b. Office PIAs(这是连接.NET和Office COM的桥梁,CLR通过它来操作Office的COM对象,没有它,你的程序一样不能跑)

c. VSTO Runtime(这是所有用VSTO开发出来的软件,运行时必备的,目前有三个主本版,第三个版本用来支持ClickOnce部署,本文中不涉及。本文只用到第二个主版本的升级版)

2. 注册表,任何一个VSTO SE插件程序要运行,都是Office启动的时候先从注册表中找到插件的相关信息,主要是LoadBehavior和Manifest的地址,然后根据Manifest的地址,找到manifest文件,manifest文件中记录了dll的地址和一些配置信息 (manifest文件可以用notepad打开) ,根据manifest来装载程序集。我们用VSTO SE新建一个插件项目的时候,Microsoft提供给我们的模板会帮我们自动添加一个Setup项目。这个项目中已经默认地帮我们把要写入的注册表键值写好,无须我们多费心思。当然如果你把默认的Setup项目删掉了 (我经常这么干,因为看着碍眼,并且我一般只要Debug,不要Deploy),自己再添加一个新的Setup项目,这时候,新项目中,系统不会帮你写好注册表的键值。关于注册表,下面是默认Setup项目的注册表视图的截图:

3. 权限的设置问题,Office装载任何VSTO SE开发出来的.NET插件时,都需要这个插件被完全信任。有两种方法完成这个任务:

a. 用Microsoft .NET Framework Wizard (图形化界面)

b. 用Caspol.exe (命令行,本文采用这种方式,原因是好表述,不要图)

二.部署案例

下面我们动手,用VSTO SE创建一个Excel 2007的插件(2003也是一样的,只不过客户机要装Excel 2003和Excel 2003 PIA,还有不要在同一台机器上同时安装Office 2003和2007),并且将它部署到一个客户机上。(由于手头只有英文版VS,菜单名都是英文的,大家自己对应看看吧)

1. 打开Visual Studio 2005,新建项目,在左边的导航板块中,选中C#->Office->2007 Add-ins,在右边选中Excel Add-in。取名ExcelAddIn,点OK。

然后系统会在solution中默认的创建两个项目,一个是插件项目,一个是Setup项目,如图:

2. 在ThisAddIn.cs文件中的ThisAddIn_Startup函数里加一句代码,以供回头测试是否部署成功。修改后的代码如下:

private void ThisAddIn_Startup(object sender, System.EventArgs e)

{

#region VSTO generated code

this.Application = (Excel.Application)Microsoft.Office.Tools.Excel.ExcelLocale1033Proxy.Wrap(typeof(Excel.Application),this.Application);

#endregion

MessageBox.Show(“Deploy successfully”);

}

3. 在Solution Expolrer里面,右击ExcelAddInSetup项目,点击Build。

4. 到Setup项目文件夹中的debug目录下找到ExcelAddInSetup.msi文件,拷贝到目标机器上。

5. 在目标机器上,安装:

.Net Framework 2.0

Office 2007 PIAs: (运行完下载文件后,还要点击得到的o2007PIA.msi才是安装PIAs)

VSTO Runtime2.0:

还有目标机上要有对应的Office程序,比如这里就需要Excel 2007!

6. 双击刚刚拷贝到目标机器上的ExcelAddInSetup.msi,选择安装目录并安装,假设安装到了C:/Test目录下。安装完,该目录下会出现两个文件:ExcelAddIn.dll,ExcelAddIn.dll.manifest,其中的.dll文件就是我们下面要设置权限的程序集

7. 回到桌面,点击开始->运行,输入cmd,在命令行提示下,输入cd C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727,回车

然后输入下面命令:

Caspol –u –ag All_Code –url “C:/Test/ExcelAddIn.dll” FullTrust –n “Test”

回车

输入yes

回车 (请勿直接拷贝这段命令行,因为Word好像改变了字体,大家还是自己敲一下,顺带加深一下印象)

8. 打开Excel,MessageBox对话框跳出。

vsto如何给单元格赋值

以下语句可以运行正常. ActiveCell通过Application这个对象来访问. Globals.Sheet1.Application.ActiveCell.Value = 1 Globals.ThisWorkbook.Application.ActiveCell.Value = 1

如何用C#读取Word内容?

前提:

导入COM库:Microsoft word 11.0 Object Library.

引用里面就增加了:

创建新Word

object oMissing = System.Reflection.Missing.Value;

Word._Application oWord;

Word._Document oDoc;

oWord = new Word.Application();

oWord.Visible = true;

oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,

ref oMissing, ref oMissing);

打开文档:

object oMissing = System.Reflection.Missing.Value;

Word._Application oWord;

Word._Document oDoc;

oWord = new Word.Application();

oWord.Visible = true;

object fileName = @”E:CCCXCXXTestDoc.doc”;

oDoc = oWord.Documents.Open(ref fileName,

ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,

ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing,

ref oMissing, ref oMissing, ref oMissing, ref oMissing, ref oMissing);

导入模板

object oMissing = System.Reflection.Missing.Value;

Word._Application oWord;

Word._Document oDoc;

oWord = new Word.Application();

oWord.Visible = true;

object fileName = @”E:XXXCCXTest.doc”;

oDoc = oWord.Documents.Add(ref fileName, ref oMissing,

ref oMissing, ref oMissing);

.添加新表

object oMissing = System.Reflection.Missing.Value;

Word._Application oWord;

Word._Document oDoc;

oWord = new Word.Application();

oWord.Visible = true;

oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,

ref oMissing, ref oMissing);

object start = 0;

object end = 0;

Word.Range tableLocation = oDoc.Range(ref start, ref end);

oDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing);

.表插入行

object oMissing = System.Reflection.Missing.Value;

Word._Application oWord;

Word._Document oDoc;

oWord = new Word.Application();

oWord.Visible = true;

oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,

ref oMissing, ref oMissing);

object start = 0;

object end = 0;

Word.Range tableLocation = oDoc.Range(ref start, ref end);

oDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing);

Word.Table newTable = oDoc.Tables[1];

object beforeRow = newTable.Rows[1];

newTable.Rows.Add(ref beforeRow);

.单元格合并

object oMissing = System.Reflection.Missing.Value;

Word._Application oWord;

Word._Document oDoc;

oWord = new Word.Application();

oWord.Visible = true;

oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,

ref oMissing, ref oMissing);

object start = 0;

object end = 0;

Word.Range tableLocation = oDoc.Range(ref start, ref end);

oDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing);

Word.Table newTable = oDoc.Tables[1];

object beforeRow = newTable.Rows[1];

newTable.Rows.Add(ref beforeRow);

Word.Cell cell = newTable.Cell(1, 1);

cell.Merge(newTable.Cell(1, 2));

.单元格分离

object oMissing = System.Reflection.Missing.Value;

Word._Application oWord;

Word._Document oDoc;

oWord = new Word.Application();

oWord.Visible = true;

oDoc = oWord.Documents.Add(ref oMissing,

ref oMissing, ref oMissing);

object start = 0;

object end = 0;

Word.Range tableLocation = oDoc.Range(ref start, ref end);

oDoc.Tables.Add(tableLocation, 3, 4, ref oMissing, ref oMissing);

Word.Table newTable = oDoc.Tables[1];

object beforeRow = newTable.Rows[1];

newTable.Rows.Add(ref beforeRow);

Word.Cell cell = newTable.Cell(1, 1);

cell.Merge(newTable.Cell(1, 2));

object Rownum = 2;

object Columnnum = 2;

cell.Split(ref Rownum, ref Columnnum);

通过段落控制插入

object oMissing = System.Reflection.Missing.Value;

object oEndOfDoc = “\endofdoc”; /**//* endofdoc is a predefined bookmark */

//Start Word and create a new document.

Word._Application oWord;

Word._Document oDoc;

oWord = new Word.Application();

oWord.Visible = true;

oDoc = oWord.Documents.Add(ref oMissing, ref oMissing,

ref oMissing, ref oMissing);

//Insert a paragraph at the beginning of the document.

Word.Paragraph oPara1;

oPara1 = oDoc.Content.Paragraphs.Add(ref oMissing);

oPara1.Range.Text = “Heading 1”;

oPara1.Range.Font.Bold = 1;

oPara1.Format.SpaceAfter = 24; //24 pt spacing after paragraph.

oPara1.Range.InsertParagraphAfter();

vsto问题!!VS2008无法开发Office03的文档!!

在微软的官网上下载一个格式转换软件..是针对于office07和03互转的…前些天刚碰到过这个问题….

VSTO编程问题

过去,通常使用VBA来进 行Office的扩展开发. 现在,VSTO做为VS.net的一个package(就像WinForm、WebForm一样),用于托管代码来进行Office的扩展开发.

VSTO,VB,VC,VC++的关系是?

VSTO全称Visual Studio Tools for Office,是用来开发和Microsoft Office相关软件产品的,比如处理Excel文档,给Word做插件等。

我估计你说的VSTO是Visual Studio吧,一般不这样简称的,只简称为VS的。VS是个IDE的开发环境。现在最新的到2008了,你用2005就行。

VB全称Visual Basic,是一门语言。

VC和VC++是一样的,和C++的区别在于VC是用来做Windows软件的,VC带有MFC,ATL等类库,可以大幅度提高写Windows软件的效率。C++是可以为各种平台编程,C++也可以写Windows软件,但是要是直接用他做界面的话会很麻烦。

你是新开始学,要从这几个里面选的话,建议从VB开始。如果还有别的话建议从C开始,然后C++,然后再VC++。这样可以打下良好的基础,以后学别的都会很快。

要是为了找工作的话,直接学JAVA,或者C#是最快的。VC++难度稍微大了点。

如何:安装 ClickOnce Office 解决方案

最终用户可通过下列方式安装文档级自定义项和应用程序级外接程序:运行在发布解决方案时创建的安装程序。有关安装程序的信息,请参见发布Office 解决方案。打开以 .vsto 扩展名结尾的部署清单文件。打开自定义文档或工作簿(如果已安装了必备组件,并已设置了安全策略以向解决方案授予信任)。适用于:本主题中的信息适用于 Microsoft Office 2010 和 2007 Microsoft Office system 的文档级项目和应用程序级项目。有关更多信息,请参见按Office 应用程序和项目类型提供的功能。使用安装程序进行安装双击setup.exe 开始安装。安装程序将检查系统必备,并在用户帐户有管理权限时根据需要安装系统必备。有关更多信息,请参见 Office 解决方案的部署系统必备。接下来,Visual Studio Tools for Office 运行时将检查是否有正确的权限和证据,例如使用已知的可信证书对清单进行签名或将 Office 解决方案安装到 Program Files 目录中。取决于证书和权限级别,可能会出现 ClickOnce 信任提示。信任提示将要求最终用户决定解决方案的发布者是否值得信任,以及是允许安装还是取消解决方案。在应用程序中运行自定义项或外接程序:对于文档级自定义项,可以直接从安装位置打开包含自定义项的文档,也可以将文档复制到本地计算机,然后打开该文件。如果文档保留在网络文件共享上,则必须将网络位置添加到 Microsoft Office 应用程序中信任中心的受信任位置。有关更多信息,请参见向文档授予信任。对于应用程序级外接程序,请打开应用程序。通过打开部署清单 .vsto 文件进行安装打开部署清单 .vsto 文件以开始安装。注意此方法要求已安装 Visual Studio Tools for Office Runtime。同时,此安装方法不会检查系统必备。有关更多信息,请参见 Office 解决方案的部署系统必备。接下来,Visual Studio Tools for Office 运行时将检查是否有正确的权限和证据,例如使用已知的可信证书对清单进行签名或将 Office 解决方案安装到 Program Files 目录中。取决于证书和权限级别,可能会出现 ClickOnce 信任提示。信任提示将要求最终用户决定解决方案的发布者是否值得信任,以及是允许安装还是取消解决方案。在应用程序中运行自定义项或外接程序:对于文档级自定义项,可以直接从安装位置打开包含自定义项的文档,也可以将文档复制到本地计算机,然后打开该文件。如果文档保留在网络文件共享上,则必须将网络位置添加到 Microsoft Office 应用程序中信任中心的受信任位置。有关更多信息,请参见向文档授予信任。对于应用程序级外接程序,请打开应用程序。使用Microsoft Office 安装文档级自定义项打开文档以开始安装。注意此方法要求已安装 Visual Studio Tools for Office Runtime和 .NET Framework。同时,此安装方法不会检查系统必备。有关更多信息,请参见 Office 解决方案的部署系统必备。安装程序将在 Microsoft Office 应用程序的信任中心检查是否有正确的权限和正确的证据,例如使用已知的可信证书对清单进行签名或将 Office 解决方案安装到 Program Files 目录中。取决于证书和权限级别,可能会出现 ClickOnce 信任提示。信任提示将要求最终用户决定解决方案的发布者是否值得信任,以及是允许安装还是取消解决方案。