VSTO开发Excel 2013/2016工作簿项目】的更多相关文章

范例下载:(下载后直接双击扩展名为.vsto的文件,或者双击扩展名为.xlsx的工作簿,按提示操作) ExcelWorkbook_Everything.rar…
有时打开Excel文件时会弹出一个“此工作簿包含一个或多个无法更新的链接”的提示.对于初次接触这个提示的用户,可能会感到迷惑,不知道应该如何处理,这里以Excel2007为例,介绍一下这个提示出现的原因和处理方法,供大家参考. 要想了解“此工作簿包含一个或多个无法更新的链接”的意思,先要清楚几个概念 ●链接:这里的“链接”指的是对其他Excel文件(或称工作簿)中一个或者多个单元格的引用(称作外部引用).也就是说Excel表格有一个或者多个单元格中的内容是引用其他Excel文件中单元格的内容.…
Excel对象模型中的事件了解excel对象模型中的事件至关重要,因为这通常是代码运行的主要方式.本章将检查Excel对象模型中的所有事件,引发事件以及可能与这些事件关联的代码类型. Excel对象模型中的许多事件在应用程序,工作簿和工作表对象上重复.此重复允许您决定是否要处理所有工作簿,特定工作簿或特定工作表的事件.例如,如果您想知道任何打开的工作簿中的任何工作表是否双击,您将处理Application对象的SheetBeforeDoubleClick事件.如果您想知道在特定工作簿中的任何工作…
文件背后的代码VSTO支持文档背后的代码,要求开发人员使用VSTO项目中生成的具有预连接上下文和预连接事件的类.这些类有时被称为“代码后面”类,因为它们是与特定文档或工作表相关联的代码.在Word中,与文档对应的类后面有一个代码.在Excel中,工作簿中的classone有多个代码,工作簿中的每个工作表或图表工作表都有一个代码. 您的代码在文档项目后面的VSTO代码中第一次运行时,当Office引发由为您创建的类后面的任何代码处理的Startup事件. VSTO通过您正在编写代码的类的代码的基类…
第二部分:.NET中的Office编程本书前两章介绍了Office对象模型和Office PIA. 您还看到如何使用Visual Studio使用VSTO的功能构建文档中的控制台应用程序,加载项和代码. 本书的第二部分更深入地介绍了Office对象模型. 如果您只对Excel开发感兴趣,请阅读第3章至第5章.如果您只对Word开发感兴趣,请阅读第6章至第9章.如果您只对Outlook开发感兴趣,请阅读第7章至第11章.如果您只感兴趣 在InfoPath开发中,阅读第12章. 第3章  Excel…
操作workbooks集合可从Application对象的Workbooks属性中获取的Workbooks集合包含当前在应用程序中打开的Workbook对象的集合. 它还具有用于管理开放工作簿,创建新工作簿以及打开现有工作簿文件的方法. 迭代开放式工作簿集合实现一个称为GetEnumerator的特殊方法,允许它们被迭代. 您不必直接调用GetEnumerator方法,因为C#中的foreach关键字使用此方法遍历一组工作簿. 有关使用foreach的示例,请参见清单5-8. 清单5-8  使用…
完美地将visual basic和office 办公软件结合起来.来自微软公司VSTO小组的权威专家所编著. 全书共712页,内容极其全面而深入,猛一看,厚地犹如庞然大物.看完离大神就不远了哦<^ . ^>!!!!! <VSTO开发指南>是2008年2月电子工业出版社出版的图书, 作者是(美国)Eric Carter   Eric Lippert 实例1:从Excel程序到Excel表 书本中的内容(第7页): 程序清单1.1. 在Excel中从Application对象到Work…
VSTO的Excel对象模型提供了托管代码对Excel的操作.但是它的实现时通过RCW(Runtime Com Wrapper)实现的,所以无法完全按照托管代码的运行方式操作.COM的资源释放时通过引用计数的方式实现,不同于CLR的GC机制,在引用计数没有设置为0的情况下,是不会回收资源的.所以,很多情况下,在操作Excel的时候,进程无法结束,其实就是因为Excel的COM计数器没有置0. 那么,如何才能正确地将计数器置0呢?简单代码如下. //启动Excel的程序 Excel.Applica…
假定您使用 Analysis Services 源在 Microsoft Excel 2013 中创建数据透视表.将 Excel 工作簿上载到 Microsoft SharePoint 网站中.当您尝试刷新数据透视表或数据透视表中筛选数据时,您会收到以下错误消息: 我们无法找到服务器加载工作簿的数据模型.   由于没有在管理中心网站配置 Analysis Services 实例,将出现此问题.   若要变通解决此问题,请配置 SharePoint 服务器上的 Excel Services 服务应…
最近想写个小程序,是基于vsto的excel 扩展程序. 打开vs2017,创建时,却提示 不能创建项目(创建项目失败,Project cannot be created).原本以为很顺利的,不相处了这个bug. 我是安装的vs2017社区版,office 是前几个月公司购买的 office 2016 标准版.百度了,有几下几个方面,但都不是我的原因(我也列下来,也许能解决你的问题) 1,vs要用管理员权限打开 2,office 加载项要正常没有异常,信任中心也要吧两个选项去掉: 3,注册表 的…
                        第2章Office解决方案介绍 Office解决方案的三种基本模式现在,您了解Office对象模型的基本模式,本章将介绍开发人员如何模拟和构建其Office解决方案. 使用Office构建的大多数解决方案都遵循三种模式之一 Office 自动化执行 Office 加载项 Office 文档背后的代码 一个自动化可执行文件是一个独立于Office控制和自动化Office应用程序的程序.可以使用Visual Studio等开发工具创建自动化可执行文件.…
<Visual Studio Tools for Office: Using C# with Excel, Word, Outlook, and InfoPath >——By Eric Carter, Eric Lippert 第一部分:VSTO介绍本书的第一部分介绍了Office对象模型和Office主互操作程序集(PIA).您还将学习如何使用Visual Studio使用Visual Studio 2005 Tools for Office(VSTO)的功能来构建文档后面的自动化可执行文件…
           使用SPIRE.XLS来创建Excel 工作簿     概要 最近在研究 .NET 控件,使用这些控件在程序中可以快速低成本实现功能. 在这一篇中我们使用的控件是Spire.XLS for .NET Component,它有很多强大易用的功能, 此篇主要看看如何用用它来创建一个简单的Excel工作簿.     运行环境 请注意在这次演示示例中我们使用的是免费版的Spire.XLS(Spire.XLS for .NET 7.4+), 使用Visual Studio 2013…
使用Range对象Range对象表示电子表格中的单元格范围.范围可以包含一个单元格,多个连续的单元格,甚至多个不连续的单元格.您可以在Excel中选择时按住Ctrl键选择多个不连续的单元格. 获取特定Cell或Cells范围对象Excel提供了多种获取Range对象的方法. Range对象是您要在Excel工作表中处理单元格或单元格范围时使用的对象.在Application对象的描述中提到了两种获取Range对象的方法. Application.ActiveCell在活动窗口中返回活动选择的左上…
使用工作表对象Worksheet对象表示Excel工作簿中的工作表.Worksheet有一个Name属性,返回工作表的名称(例如“Sheet1”). 工作表管理Worksheet对象具有一个Index属性,它为工作表窗口左下角显示的选项卡式工作表选项卡中的工作表提供基于1的选项卡位置.您可以使用Move方法将工作表移动到不同的选项卡位置. Move方法有两个可选参数:一个Before参数,您可以传递要移动工作表之前的工作表,以及一个After参数,您可以传递要移动的工作表之后的工作表.如果省略了…
使用文档属性DocumentProperties集合和DocumentProperty对象位于Microsoft Office 11.0 Object Library(office.dll)中,该对象库包含所有Office应用程序共享的对象. 这些对象位于Microsoft.Office.Core命名空间中,通常会以Office命名空间别名进入您的代码,如下所示: using Office = Microsoft.Office.Core; 迭代DocumentProperties集合清单5-15…
应用程序对象的操作本章将介绍从Application对象开始的Excel对象模型中的一些主要对象. Excel对象模型中的主要对象有许多方法和属性,完全描述这些对象超出了本书的范围.相反,本章重点介绍最常用的方法和属性. Application对象在Excel对象模型中具有最大数量的方法,属性和任何对象的事件. Application对象也是Excel对象模型层次结构中的根对象.您可以通过从Application对象开始访问对象模型中的所有其他对象,并访问其属性及其返回的对象的属性. Appli…
编程用户定义的功能Excel可以创建可在Excel公式中使用的用户定义的函数. 开发人员必须创建一种称为XLL的特殊类型的DLL. Excel还允许您在VBA中编写可在Excel公式中使用的自定义函数. 不幸的是,Excel不支持或建议编写使用托管代码的XLL. 构建提供用户定义函数的管理型自动化加载项幸运的是,创建一个不需要创建XLL的用户定义函数有一个更简单的方法. Excel 2003支持称为自动化加载项的定制技术,可以轻松地在C#或Visual Basic中创建. 首先,启动Visual…
VSTO插件开发完成后,鉴于现在WPS用户也不少,很多时候用户没办法用OFFICE软件,只能在WPS环境下办公,VSTO开发的插件,只需增加一句注册表信息,即可让WPS识别到并调用VSTO开发的功能,可能部分功能让WPS使用要考虑WPS是否有相应的API接口,这是后话,本帖给大家粘出代码及程序,让用户双击即可完成,exe封装,无需给用户注册表文件让用户畏惧或其他安全软件报警. 为了让所有插件都能顺利被WPS识别到,索性来一个遍历,所有插件都在注册表里添加一条记录供WPS识别,注册表增加几条记录,…
因Excel催化剂用了VSTO的开发技术,并且为了最好的用户体验,用了Clickonce的布署方式(无需人工干预自动更新,让用户使用如浏览器访问网站一般,永远是最新的内容和功能).对安装过程有一定的难度要求.仅以此文简单罗列一下,希望能够给广大用户一些实质性的指引(安装成功过Excel催化剂插件或安装成功过其他的VSTO开发的Excel插件,对另外安装其他类似的VSTO插件将会非常容易,所以很有必要一次艰难,后续轻松). 文章出处说明 原文在简书上发表,再同步到Excel催化剂微信公众号或其他平…
Excel催化剂开源第23波-VSTO开发辅助录入功能关键技术 Excel催化剂   2019.01.12 14:10* 字数 2948 阅读 41评论 0喜欢 0 编辑文章 在Excel催化剂的几大辅助录入功能中(数据验证保护.数据多级联动输入.关键词模糊智能匹配输入)中,用了一些customxmlPart技术来存储配置信息,同时在关键词模糊智能匹配输入中,用了一个VSTO开发才能满足的自定义控件技术,很值得启发,拿出来给大家作一分享. 一般来说控件都是放到窗体或任务窗格中,但Excel同样支…
在VSTO开发或其他COM技术开发过程中,甚至VBA也是,在和Excel交互中,难免会遇到性能瓶颈问题,COM技术的交互实在太慢,对大量数据读写等操作,耗时太长,容易卡用户界面以为是程序死机等等. 在专业程序猿开发群体,极少直接用COM的方式来访问Excel文件,都是以其他的非COM如最为流行的NPOI和EPPLUS类库的方式访问,并且是免费的可用于商业项目的. 在VSTO中调用NPOI和EPPLUS,又是怎样一翻境界呢?因Excel催化剂主要是为数据分析群体服务,其中大量的场景是面积大数据量的…
在Excel开发过程中,大部分时候是和Range单元格区域打交道,在VBA开发中,大家都知道的一点是,不能动不动就去遍历所有单元格,那性能是非常糟糕的,很多时候,是需要把整个单元格区域装入数组中再作处理的. 在VSTO开发中,难不成还要用VBA这套老掉牙的东西来做吗?VBA的二维数组在.Net的世界中,真的一无是处,太多比它好用的东西存在,其中笔者最喜欢用的是DataTable这样的结构化的数据结构. 从单元格到DataTable,其实也就几句代码的事情,当数据进入到DataTable后,可以使…
在VSTO开发过程中,因其和普通的Winform开发有点差别,具体细节笔者也说不清楚,大概是VSTO的插件是寄生在Excel中,不属于独立的进程之类的,其异步方法调用时,未能如Winform那样直接用await async异步方法就结束,仍需要再作简单的处理. 使用场景 在Excel上直接使用异步方法,貌似有上述提及的问题,不像Winform程序那样,需要Excel上调出窗体,再从窗体上作异步方法的操作,直接调用的话,遇到用户用键盘.鼠标交互Excel操作会报错. Excel催化剂中有些操作与外…
在VS开发环境中,特别是VSTO的开发,微软已经现成地给开发者准备了设计器模式的功能区开发,相对传统的VBA.ExcelDna和其他方式的COM加载项开发来说,不需要手写xml功能区,直接类似拖拉窗体控件一样,即可完成Ribbon功能区的开发,开发效率极高. 这样的开发方式,非常适合于对Ribbon没有太高要求,太多的高级定制需要的场景,一般来说足够普通插件开发的需要,给用户在Ribbon功能区安放个按钮,让用户可以点击按钮即可触发某个功能运行. 有某些场景,想动态地加载菜单时,在设计器的功能区…
在Excel里如何将多个工作簿合并到一个工作簿中 当你必须将多个工作簿合并到一个工作簿时,你遇到过麻烦吗?最让人心烦的就是需要合并的工作簿里有很多张工作表.有人能推荐方法解决这个问题吗? 利用VBA 将多个工作簿合并到一个工作簿中复杂,高级用户使用 Excel 的专业用户可以使用VBA 将多个工作簿合并到一个主要的工作簿中.你可以按照如下步骤操作: 1. 将需要合并的所有工作簿都 放置在同一个目录下.如图: 2. 打开一个工作簿,其他工作簿将被合并到这个工作簿中. 3. 点击开发工具 >> V…
原文:VSTO 学习笔记(十一)开发Excel 2010 64位自定义公式 Excel包含很多公式,如数学.日期.文本.逻辑等公式,非常方便,可以灵活快捷的对数据进行处理,达到我们想要的效果.Excel的内置公式虽然强大,但是在ERP等系统中,往往需要进行很多业务上的计算,如收发存台账.指定年.月.部门的消耗查询等,都是需要从数据库中查询的,且和业务紧密相连.这时仅仅依靠Excel的内置公式就不够了,需要添加自定义的公式来进行这些业务计算. 测试代码下载 本系列所有测试代码均在Visual St…
帮朋友来写个Excel VBA 以前写过ASP,所以对vb略微熟悉,但VBA 没有仔细研究过. 以前只研究过 vba 写一个 计算个人所得税的程序. 这次写的功能也算是简单,但也耗费了两天的功夫. 需求: 1 从[操作]表中,查找最后一行的数据,每一列 都为关键字 2 遍历这些关键字,从[总表]中查询这个关键字,把这一行后面的内容复制到 [预算]表中去 3 把[操作]中制定内容复制到[信息统计]中 Function Get操作NullLine() ' '从 操作表 获取最后一个有数据下面的空行…
本文分步介绍了多种从 Microsoft Visual C# 2005 或 Microsoft Visual C# .NET 程序向 Microsoft Excel 2002 传输数据的方法.本文还提供了每种方法的优点和缺点,以便您可以选择最适合您的情况的解决方案. 概述 最常用于向 Excel 工作簿传输数据的方法是“自动化”.利用“自动化”功能,您可以调用特定于 Excel 任务的方法和属性.“自动化”功能为您提供了指定数据在工作簿中所处的位置.将工作簿格式化以及在运行时进行各种设置的最大的…
VBA关闭工作簿和退出Excel链接:http://www.excelpx.com/thread-233045-1-1.html 兰色幻想VBA基础入门和高级开发全套80集视频教程,助你成为VBA开发高手. 要用VBA来关闭工作簿,用Workbook.Close 方法即可,而要退出Excel,则用Application.Quit 方法.下面是一些代码示例: 关闭活动工作簿,如果工作簿有更改,提示是否保存: Sub CloseWorkbook() ActiveWorkbook.Close End…