微软的 Visual Studio IDE 中提供了一个软件开发工具集 VSTO,通过 VSTO 可以支持在 .NET 中开发 Office 加载项,还允许创建能够执行这些加载项的 Office 文档文件...本地 VSTO 本地的 VSTO 会将 .NET 编译的 .DLL 加载项及其依赖项与为执行它而创建的 Office 文档存放在一起,例如 ISO 文件中。...恶意 ISO 文件 例如针对葡萄牙语用户的恶意 ISO 文件,其中包含一个恶意的 Word 文档文件与隐藏的 VSTO 加载项及其依赖项。...例如,恶意 Word 文档从远程获取 VSTO 加载项: 远程 VSTO 下载的 DLL 加载项中,嵌入了下载加密的 ZIP 文件的代码。...结论 尽管 VSTO 在实际中并不常见,但由于其攻击能力的完整,研究人员认为未来会有更多的攻击者开始采用这种攻击向量,尤其是国家级攻击组织。
但正如POI所定义的那样:作为“Poor Obfuscation Implementation”首字母的缩写,Apache POI仅提供“简单的模糊实现”,其在创建复杂逻辑的大型文档时,经常会捉襟见肘。...如果想通过简单的代码逻辑,快速创建、加载、编辑、导入/导出大型文档(Excel、Word、PDF),并将其部署到云端时,又该如何实现?...Office 和 Acrobat 组件的情况下,提供快速生成、加载、编辑和保存 Excel、PDF、Word文档的功能。...Excel 文档 API —— GcExcel(Java) 适用于所有 .NET 平台的 PDF 文档 API —— GcPDF 适用于所有 .NET 平台的 Word 文档 API —— GcWord...条件格式 GcExcel支持多种条件格式,如自定义图标集、判断是否高于平均值(AboveAverage)、发生日期判断、Top 10和重复项判断,且这些条件格式的设置规则与VSTO保持一致。
【OFFICE插件管理工具】因用户需求而生,在1230版本再增加了修复VSTO插件安装过程高频出现的type属性错误的功能。...新增功能20200902 在名称叫法上,用回加载项这个名称,防止大家和OFFICE的叫法对不上,OFFICE加载项,现在有3类,分别是COM加载项,普通加载项和Web加载项。 ?...若想完成卸载,可以删除对应加载项路径的文件。 安装过WPS的电脑,可能会出现本功能不可用问题,因WPS强制抢夺了OFFICE的接口,在开发者群体中很被诟病的作法。 ?...其快捷的打开方式为在功能区里打开【开发工具】选项卡,可快速通过【Excel加载项】定位到此加载项清单。...因登录用户不同会有不同,所有的OFFICE普通加载项都在这个文件夹里。 当然也可以不在这个文件夹里也可以安装到如下图若点击【浏览】按钮去安装到的插件,就不在此文件夹里。 ?
一、遍历本机或当前用户下的所有COM加载项插件 此处的插件清单仅为COM加载项插件,一般性的普通加载项不在此清单范围内,而且普通加载项一般出问题不多,下文也会简单说明如何维护普通加载项的插件。...六、打开OFFICE加载项文件夹 前面提到,本工具仅对COM加载项的插件进行管理,普通加载项如Excel的以xlam结尾的文件(使用xll技术开发的插件,同样会落在此清单范围内,如Excel催化剂开发的自定义函数和...其快捷的打开方式为在功能区里打开【开发工具】选项卡,可快速通过【Excel加载项】定位到此加载项清单。...因登录用户不同会有不同,所有的OFFICE普通加载项都在这个文件夹里。 当然也可以不在这个文件夹里也可以安装到如下图若点击【浏览】按钮去安装到的插件,就不在此文件夹里。 ?...希望笔者开发的此款小工具,能够让大家在使用众多OFFICE插件过程中,更加顺畅,减少各种意外情况,并且也将OFFICE插件的管理更简单和清晰化。
第一步,创建一个VSTO项目(excel,word,ppt)等操作一样 Public Class ThisAddIn #Region "任务窗格对象" ''' ...Me.Startup ''--加载窗体到任务窗格 Dim frm As New Form_main MotCtp = CustomTaskPanes.Add...Private Sub MotCtp_DockPositionChanged() End Sub #End Region End Class 第二步,添加一个,功能区,这里用的是可视化功能区...第三步,添加两个按钮,用来控制任务窗格,隐藏或者展开 Imports Microsoft.Office.Tools.Ribbon Public Class Ribbon_main '''... ''' 功能区加载事件 ''' ''' ''' <param name
在VS开发环境中,特别是VSTO的开发,微软已经现成地给开发者准备了设计器模式的功能区开发,相对传统的VBA、ExcelDna和其他方式的COM加载项开发来说,不需要手写xml功能区,直接类似拖拉窗体控件一样...有某些场景,想动态地加载菜单时,在设计器的功能区开发中,相对xml功能区,来得更容易,本篇给大家介绍两种场景。...具体场景 场景一、某些情况下才显示某个按钮 在Excel催化剂中,有一个【智能选区】的菜单,仅在用户选择数据区域,且仅选择一个单元格时,才会显示出来。...某些菜单下的内容不固定,根据用户的配置文件信息的条目数据多寡来动态加载,例如Excel催化剂中大量使用的动态菜单效果 在设计器中无需拖拉控件进来,代码动态生成 需要使用动态菜单功能,需要在menu控制中...,在设计器属性中打开Dynamic属性 打开Menu控件的Dynamic属性 在ItemsLoading事件中,用代码动态生成控件。
现在使用OFFICE插件的群体越来越多,在8月份修复过的【OFFICE插件管理工具】,尝试将COM加载项的插件管理进行完善。 但仍然有一小部分普通加载项的管理未能加到里面。...新增功能 在名称上,用回加载项这个名称,防止大家和OFFICE的叫法对不上,OFFICE加载项,现在有3类,分别是COM加载项,普通加载项和Web加载项。 ?...若想完成卸载,可以删除对应加载项路径的文件。 安装过WPS的电脑,可能会出现本功能不可用问题,因WPS强制抢夺了OFFICE的接口,在开发者群体中很被诟病的作法。 ?...其快捷的打开方式为在功能区里打开【开发工具】选项卡,可快速通过【Excel加载项】定位到此加载项清单。...因登录用户不同会有不同,所有的OFFICE普通加载项都在这个文件夹里。 当然也可以不在这个文件夹里也可以安装到如下图若点击【浏览】按钮去安装到的插件,就不在此文件夹里。 ?
Office VSTO 将加载项加载到单独的 AppDomain 中[6]以进行隔离。 DotNetBrowser 在非默认 AppDomain 中运行。...事实上,可以在不同的 AppDomain 中创建多个 Chromium 引擎并同时使用它们。因此,DotNetBrowser 可用于创建 VSTO 加载项。...在初始化过程中,它会检查当前进程的 DPI 感知,并为相应的 Chromium 引擎设置匹配的 DPI 感知。因此,无需让您的应用程序显式识别 DPI 以避免在高 DPI 显示上呈现伪影。...它也不能用于暗示在单独的 AppDomain(如 VSTO)中运行代码的环境。对于其他一些情况,例如播放使用专有编解码器编码的内容,您必须自己构建、更新和维护 CEF。...: https://github.com/cefsharp/CefSharp/wiki/General-Usage [6] 将加载项加载到单独的 AppDomain 中: https://learn.microsoft.com
在用Word写技术文档的时候,免不了要在文档中插入一些源代码。为了使插入进来的源代码更可读,就需要使这些代码的关键字高亮显示。...所以在写这些文档的时候,我经常需要再开一个Visual Studio,在Visual Studio里编辑好代码之后,复制到Word里面,Word会帮助我们保留代码的格式,达到关键字高亮的效果。...如何开发Word的外接程序是需要解决的第一个问题,可以参考博客园的一个系列:我的VSTO之路,我就是参考着他这个系列做的这个插件,不过目前这个插件只支持Word 2010。 接下来,怎样实现代码高亮?...它支持多种语言的Highlighter,并提供Html和Rtf两种格式的parser把Highlighter的code转换为html或rtf的格式。 最后,怎样把高亮后的代码插入到Word中?...点设置按钮弹出设置界面,支持Rtf和Html两种格式,还可以设置边框、背景、交替行等样式,不过我比较懒,没去研究怎么在Rtf格式下设置边框、背景,所以在Rtf格式下是不支持边框颜色、背景颜色和交替行的。
(通常在默认的文件扩展名后面添加一个x以示区分,如Word 2003的格式是doc,而Word 2007虽然依然支持doc,但更推荐用户使用docx文件格式)。...这个后来被正式命名为OpenXML的技术,微软在经过实践后将其贡献给ECMA,并被ISO和IEC等组织认定为开发文档格式的国际标准。...针对.NET开发人员,微软还专门提供了OpenXML SDK,支持从自定义程序中通过OpenXML的标准操作Office文档(不要求本地安装有Office)。 ?...VBA代码的部署一般分为两种,它可以作为Office文档的一部分存在(例如只是某个文件的特定功能的话),也可以单独存在(假定是一个通用的功能,尤其是希望在应用程序启动的时候就自动加载的话)。...最新版本的Visual Studio 2017中,采用了模块化的安装体验,如果选择了Office 开发这个模块,那么就可以在项目模板中看到一大堆VSTO的模板(针对不同的应用程序,还会有不同的模板),如下图所示
因此,它不能用于通过 VSTO 插件或 Excel-DNA 将 Chromium 嵌入到 Office 应用程序中[6]。...Office VSTO 将加载项加载到单独的 AppDomain 中以进行隔离。DotNetBrowser 在非默认 AppDomain 中运行。...事实上,可以在不同的 AppDomain 中创建多个 Chromium 引擎并同时使用它们。因此,DotNetBrowser 可用于创建 VSTO 加载项。...在初始化过程中,它会检查当前进程的 DPI 感知,并为相应的 Chromium 引擎设置匹配的 DPI 感知。因此,无需让您的应用程序显式识别 DPI 以避免在高 DPI 显示上呈现伪影。...它也不能用于暗示在单独的 AppDomain(如 VSTO)中运行代码的环境。对于其他一些情况,例如播放使用专有编解码器编码的内容,您必须自己构建、更新和维护 CEF。
在使用一个文档的同时,可以打开别的文档,还可以新建一个文档,Word能够分别处理这些Word文档 例如.创建了一个新的Word文档,又需要打开以前保存的文档,操作方法是选择“文件”→“打开”,在弹出的...---- (1)查找和替换 在完成文档之后,有时会发现拼错了一个重要的单词,这个单词在整篇文档中重复出现了多次。除非认真检查整篇文档,否则很难保证更正了所有拼错的单词。...选择“开始”选项卡,在“编辑”选项组中,通过单击“替换”按钮,可弹出如图所示 ‘查找和替换”对话框,“查找”选项卡可帮助我们在文档中查找特定文本,“替换”选项卡可帮助我们用新文本替换特定文本。...如果确定需要替换该单词的所有重复项,只需单击“全部替换”按钮即可替换所有重复项。但是,如果只想替换该单词的某些项,可以单击“查找下一处”按钮,Word会引导整篇文档逐项查看。 ...拼写检查功能根据词典检查文档中的每个单词,如果出现拼写错误的单词,就在其下方加上红色波浪线,词典中找不到的单词也用红色波浪线标记,运行拼写检查功能时,用户将得到正确的拼写并进行更正。
在各大插件中,破解工作表、工作薄密码的功能比比皆是,此篇开源确实有些炒冷饭凑文章的嫌疑,但换个角度,当时笔者开发过程中,找寻相关的代码,也还是花上一些的时间在百度里找了好久,原因如下: 1.大部分能够找到的代码都是...VBA的代码 这说明在Excel高级开发群体中,特别是VSTO、COM加载项开发群体中,还是守口如瓶的,仿佛越是高级的开发者,越对自己掌握的“核心”技术保密,希望Excel催化剂这一系列的开源文章对此风气有所好转...代码实现 工作表保护破解 在微软官方文档中,看到工作表保护在Excel2013上得到增强,着实吓一跳,以为是旧的破解代码肯定会失效。...而非像其他VBA方法那样只是遍历工作表复制到新的工作薄中,这样可能会引起原文档中有宏代码或其他自定义文档信息等不能同步带过去。...,但VSTO仍是十分欠缺,但其实也不完成是欠缺,只要合理使用搜索引擎和官方帮助文档,还是可以找到够用的知识点使用的。
在传统的VBA开发中,若是用的是普通加载项方法,是可以存储数据在xlam上的,若用的是Com加载项方法同时是Addins程序级别的项目开发的,配置文件没法保存到工作薄中,一般另外用配置文件来存放供调用。...(如果是xlsm或文档型VSTO项目可以做到数据在文件中,但代码也仅能对此文档有效,对其他文档无效,也不是此处需要的完美解决方案) 大部分人能想到的方案是在自定义属性里CustomDocumentProperties...且此对象不止于在VSTO内使用,在VBA上也同样有此对象可供计用。...具体场景分享 在Excel催化剂的功能中,有好几个经典功能用上了CustomXMLPart存储配置信息,跟随文档传输的安全。...同样用到了自定义文档属性,用于存放customXMLPart的ID信息 Wb.CustomDocumentProperties.Add( Name: xmlPartIdName
一年前我写了一个word2010的代码高亮插件,但当时那个版本有一个问题:在用word发布博客的时候,高亮的代码在博客中的格式乱了。...主要改进是用ol和li代替了pre,虽然发布到博客后,ol中设置的style和class依然会被改动,但可以在博客中用css来纠正。...安装成功后的提示如下: ? 安装插件后,会在word中多一个功能区(支持word2007和word2010): ? 点击"设置"按钮,弹出设置界面: ?...这里简化了配置,去掉了前一个版本中的一些设置。 点击"插入代码"按钮,弹出如下界面: ? 可以选择C#、Java、Xml、Javascript等多种语言。 在word效果如下: ?...所以我们在博客中,不得设置所有ol的style,幸好博客园的文章都是在一个id为cnblogs_post_body的div下的,所以我在我博客中加了下面的style: #cnblogs_post_body
您可以在单个选项卡式窗口中打开多个文档/文件例如使用浏览器IE 8/9/10、Firefox和Google ChromeKutools for Excel、Word、Outlook是功能强大的插件拥有适用于...通过创建了简单但功能强大的加载项,以改进和增强Microsoft Office应用程序,让众多ExtendOffice的顾客摆脱大多数Office用户每天必须执行的耗时操作!...05、建立新文件您可以通过双击选项卡栏空白处的左按钮来快速创建新文档,或者选择使用上下文菜单上的“新建”命令项。06、保存文件上下文菜单中的“保存”和“全部保存”命令可用于一键保存所有文档。...Kutools for Excel简介Kutools for Excel是一个便捷的Excel加载项,具有300多种高级功能,可将各种复杂的任务简化为在Excel中的几次单击。...简介适用于Microsoft的Kutools® Word是一个功能强大的加载项,可以使您摆脱大多数Word用户每天必须执行的耗时的操作。
以下是历史内容: 昨天匆忙间发布了使用外部程序/VSTO插件执行JSA宏的推文,其实还有一些后续的更劲爆的效果,在某些场景上可以有很好的发挥。...可以在外部程序/VSTO插件里直接使用Application.Addins.Add,将xlam文件加载进来。当然也可以直接修改注册表,让WPS表格每次启动时自动加载。...使用xlam文件,将它变成普通加载项,不会出现一个新的工作薄的打开。使用体验更友好。 接着,如果用户想获得某个JSA宏嵌入到它的当下的工作薄里,这个又该如何处理。...经过以上三步操作,重新将解压后的xlsx文件进行zip压缩后,改后缀名为xlsm,使用WPS表格打开后,即可将JSA宏代码加载进文件中并可使用。 如果还想在工作表上,将形状绑定这个JSA宏代码呢?...有了本篇的进一步探索,也将JSA宏的应用场景,特别是第三方程序去调用、创建等环节,已经完全打通,接下来就是想象力的时间,一些特定场景,用上本篇的黑科技,产出的效果将是非常惊艳。
IE设置-Internet选项-程序-管理加载项-所有加载项。如果BHOmanager Class是未启用状态,改为启用。...如果所有加载项中没有BHOmanager Class,打开开始菜单-HP Software-HP Unified Functional Testing-Tools-AdditionalInstallation...,添加后如图: 输入以下脚本: 2、执行后打开对象库,选择”word”对象使用Highlightin Application,在搜索后的百度页面仍能定位。...如图, Property “value” has the expected value:”QTP”.对象“word”的value属性的值是期望的“QTP”,检查点Pass。...3、Run脚本,可以看到执行过程中依次搜索了Global表中的数据,打开Last Run Results,可以每次迭代的结果,如图,每次迭代检查点都有记录。
近期在野捕获的Office Word文档中发现QBot变体,但未发现其传播方式。本文将分析它在受害者机器上的工作方式及其使用的技术。...QBot文档 Word文档中包含一个恶意宏,打开文件后将要求受害者单击黄色按钮,如图1.1(左侧)所示。右侧的图像显示了单击“启用内容”按钮后的内容, 它让受害者误以为文档正在努加载数据。 ?...“/C”功能用于检查它是否在分析环境中运行。以下是检测方式: 1、使用关键字“ VMXh”执行ASM代码,如果在虚拟机中将触发异常。异常处理程序可以捕获异常并返回1,否则返回0。下面是ASM代码段。...在Explorer.exe中执行QBot 在“explorer.exe”中运行的代码主要任务是加载和解密资源“307”。...完成上述步骤后调用核心模块的入口点。 ? 总结 本报告第一部分中详细说明了Office Word文档如何通过恶意宏下载QBot变体,以及它如何使用复杂的技术隐藏和保护自己。
在VSTO开发过程中,因其和普通的Winform开发有点差别,具体细节笔者也说不清楚,大概是VSTO的插件是寄生在Excel中,不属于独立的进程之类的,其异步方法调用时,未能如Winform那样直接用await...使用场景 在Excel上直接使用异步方法,貌似有上述提及的问题,不像Winform程序那样,需要Excel上调出窗体,再从窗体上作异步方法的操作,直接调用的话,遇到用户用键盘、鼠标交互Excel操作会报错...await webClient.DownloadFileTaskAsync(uri, dstFilePath); //线程间操作无效: 从不是创建控件的线程访问它...//线程间操作无效: 从不是创建控件的线程访问它。...因为VSTO的特殊性,可能这些问题,在专业程序猿群体中,不会遇到,但在VSTO开发群体中,这里的确是个大坑,希望给大家填补此坑后,大家可以更顺畅地写出更好的代码。
领取专属 10元无门槛券
手把手带您无忧上云