未发布 Edraw Office Viewer component教程(一):将Microsoft Word嵌入VB.NET并使之自动化
在VB.Net应用程序中嵌入word文档的最佳方法是什么?相信大多数人都记得OLE技术,它可以将Excel图表嵌入到Word文档中。使用Office XP Primary Interpol Assemblies或嵌入WebBrowser控件并导航到相应的Office文档等。但是所有这些技术都不支持完整的Microsoft Word功能。也有很多已知的错误。
本文将逐步介绍如何使用Edraw office viewer component在VB.NET应用程序中嵌入MS Word文件。如果你没有officeviewer.ocx文件,请先安装。
打开Visual Studio并创建一个新的VB.NET应用程序。
右键单击HostOffice解决方案。然后单击“Add Reference...”的选项。
在弹出的对话框中,从浏览选项卡中选择officeviewer.ocx文件。
或从COM选项卡中选择Edraw Office Viewer Component。
单击确定。Edraw Office Viewer Component引用此时已添加到新的vb.net项目中。
切换到Form1的Form设计窗口。
将Edraw Office Viewer Component从“工具箱”面板拖到form1中。
添加以下VB.NET代码来新建、打开、保存、关闭并打印一个word文档,如下所示:
Public Class Form1 Private Sub btnNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNew.Click If Dialog1.ShowDialog() Then If Dialog1.GetChooseType() = 1 Then AxEDOffice1.CreateNew("Word.Application") ElseIf Dialog1.GetChooseType() = 2 Then AxEDOffice1.CreateNew("Excel.Application") ElseIf Dialog1.GetChooseType() = 3 Then AxEDOffice1.CreateNew("PowerPoint.Application") ElseIf Dialog1.GetChooseType() = 4 Then AxEDOffice1.CreateNew("Visio.Application") ElseIf Dialog1.GetChooseType() = 5 Then AxEDOffice1.CreateNew("MSProject.Application") End If End If End Sub Private Sub btnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpen.Click AxEDOffice1.OpenFileDialog() End Sub Private Sub btnSaveAs_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSaveAs.Click AxEDOffice1.SaveFileDialog() End Sub Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click AxEDOffice1.CloseDoc() End Sub Private Sub btnPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrint.Click AxEDOffice1.PrintDialog() End Sub Private Sub btnPreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPreview.Click AxEDOffice1.PrintPreview() End Sub Private Sub btnToolbars_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnToolbars.Click If AxEDOffice1.Toolbars = True Then AxEDOffice1.Toolbars = False Else AxEDOffice1.Toolbars = True End If End Sub Private Sub btnAbout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAbout.Click AxEDOffice1.AboutBox() End Sub End Class |
打开配置管理器。将Active解决方案平台更改为x86选项。
然后创建VB.NET项目并开始运行。

The office viewer component支持MS Word 97、Word 2000、Word 2003、Word 2007、Word 2010。它可以在Windows 2000/Xp/Vista/2008/7的32位或64位操作系统上运行。将MS Excel或PowerPoint、Visio、Project嵌入到VB.NET应用程序中,只需要改变Open方法的第二个参数。如下所示:public void Open() { axEDOffice1.Open(sPath,“Excel.Application”); axEDOffice1.Open(sPath,“PowerPoint.Application”); axEDOffice1.Open(sPath,“Visio.Application”); axEDOffice1.Open(sPath,“MSProject.Application”); } |
有了word组件,在Visual Basic应用程序中使用COM实现Word自动化就会变得十分简单。从解决方案资源管理器引用中为Word Object Library 11.0添加引用。在这里我所用Word 2003,所以对象库的版本是11.0。
下面的示例代码显示了如何构建一个最小的文档,插入一个书签,并且在随后用文本更换空书签。
Imports Microsoft.Office.Interop.Word Private Sub Automating_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)Handle Automating.Click Dim word = AxEDOffice1.GetApplication() word.Visible = True Dim doc As Document = AxEDOffice1.ActiveDocument() Dim range As Range = doc.Range range.InsertAfter(“Range1”+ vbCrLf) range.Collapse(WdCollapseDirection.wdCollapseEnd) doc.Bookmarks.Add(“MijnBookmark”,range) range.InsertAfter(“Range2”+ vbCrLf) Dim bookmark As Bookmark = doc。书签(1) range = bookmark.Range range.Text =“Bookmark”+ vbCrLf range.Font.Color = WdColor.wdColorBlue End Sub |
以上就是本次教程的全部内容,接下来会有更多相关教程,敬请关注!您也可以在评论者留下你的经验和建议。
未发布 微软C# 8.0中的四个特性 可空的引用类型(Nullable Reference Types)
可空的引用类型可概括地表述为,引用类型将不再默认可空。因此,开发人员必须使用定义可空值类型的同样语法“Type?”,显式地标记一个引用类型为可空。
如果将一个空值赋值给一个非可空的引用类型,那么将会给出一个编译器警告。与之相类似,从可空类型中读取也会给出编译器警告,除非显式地提前检查了被质疑的变量是否为空值。因此从理论上讲,开发人员需要做的唯一更改就是在代码的适当位置标上问号。
该特性新加了一个语法。该语法针对开发人员明知一个可空变量x并非实际为空值却无法证明给编译器的情况。在上述情况下,开发人员现在可以定义x!.Method(),消除编译器对于潜在空值引用异常的警告。
异步流(Async Streams),即foreach async
异步流是IEumerable的异步等价类。C#团队自2015以来就一直在努力实现异步流。在经历了很多争议后,其语法被定为: foreach await (string s in asyncStream)
开发人员将使用如下的函数签名定义一个异步迭代器:
async IAsyncEnumerable MethodName()
就像使用一个正常的IEnumerable方法一样,开发人员可以使用“yield return”以懒方式(Lazy)构建对象流。
相比于源自响应式扩展(Reactive Extensions)的IObservable,使用这一方法的优点在于让消费者控制流速,这被称为“Pull模式”。与之相对,IObservable是一种“Push模式”,这意味着生产者可以使用高于消费者所能处理的流速让流涌向消费者。
缺省接口实现(Default Interface Implementations)
缺省接口实现在本质上是一种有限形式的多重继承。它允许抽象接口像抽象类一样,对方法进行完全的定义,只是抽象接口依然不能定义构造函数和字段。
需注意,开发人员可以通过使用ConditionalWeakTable在接口上模拟字段。
默认接口实现的主要好处是,开发人员可以在不破坏向后兼容的条件下,将一个新方法添加到一个已有的接口中。但是这并非是有保证的,因为默认接口只是在可以设计出适合的默认方法时才能工作。
扩展(Extension)
开发人员可以编写扩展方法,但是不能扩展属性,这是长期以来对C#一直存在的一个问题。事实上,如果使用当前的模式,甚至是不能定义一个扩展属性或事件的。此外,在很多开发人员看来,在静态类中放置扩展方法是“很诡异的”。
新的设计中新给出了一种称为“扩展”(Extension)的顶层语言构件。例如,如果开发人员想要为自定义的Customer类创建一个扩展方法和属性,可编写如下代码:
extension CustomerExt extends Customer {
//定义方法和属性的代码。
}就接口而言,是不能在扩展中定义实例字段的,但是可以使用ConditionalWeakTable实现模拟。定义静态字段也是允许的。
除了对属性、事件和操作符重载的扩展,C#团队甚至考虑允许扩展构造函数。扩展构造函数非常适用于工厂模式(Factory)和对象池场景。
扩展接口(Extension Interfaces)C#团队还考虑了扩展接口,即在已有类中添加新接口的能力。但是扩展接口将不会成为C# 8中的特性,因为它需要更改底层的运行时。
未发布 MailBee.NET Objects发送电子邮件(SMTP)教程七:添加多个附件 MailBee.NET Objects是一款为创建、发送、接收以及处理电子邮件而设计的健壮、功能丰富的.NET控件。几行代码便可为应用程序添加E-Mail支持,简单高效。具备“必需”以及独特的功能,这些控件帮助开发人员简单快速地将复杂的电子邮件功能添加到他们的应用程序中。
本文主要介绍了如何使用MailBee.NET Objects在邮件中添加多个附件的代码示例。目前MailBee.NET Objects在线订购享75折优惠正在进行中,欢迎您下载试用版进行运用!
| C#: oMailer.Message.Attachments.Add(@"C:\Temp\report.doc"); oMailer.Message.Attachments.Add(@"C:\Temp\prices_2005.xls", "prs2005.xls"); oMailer.Message.Attachments.Add(@"C:\Temp\my_photo.jpg", "pic1.jpg","<12s4a8a8778c$5664i1b1$ir671781@tlffmdqjobxj>"); oMailer.Message.Attachments.Add(@"C:\Temp\john_doe_photo.jpg", "pic2.jpg","<12s4a8a8932r$5664i1t1$iy671661@yljfmkqjghxu>", "image/gif", null, NewAttachmentOptions.Inline, MailTransferEncoding.Base64); |
VB.NET: oMailer.Message.Attachments.Add("C:\Temp\report.doc") oMailer.Message.Attachments.Add("C:\Temp\prices_2005.xls", "prs2005.xls") oMailer.Message.Attachments.Add("C:\Temp\my_photo.jpg", "pic1.jpg","<12s4a8a8778c$5664i1b1$ir671781@tlffmdqjobxj>") oMailer.Message.Attachments.Add("C:\Temp\john_doe_photo.jpg", "pic2.jpg", "<12s4a8a8932r$5664i1t1$iy671661@yljfmkqjghxu>", "image/gif", Nothing, NewAttachmentOptions.Inline, MailTransferEncoding.Base64) |
上面的示例向邮件添加了四个附件。第一个文档作为report.doc附加。第二个文件作为附带指定的CID的prs2005.xls。第三个附件是一张图片,也有自己的CID。最后一个附件被强制作为Base64编码中的内联对象。
如果附件被认为是一个内联对象,它将与邮件正文一起显示。但是,如果开发人员需要从邮件正文的任何地方引用此附件,则应将相应的CID分配给此附件。
以上就是本次教程的全部内容,接下来会有更多相关教程,敬请关注!您也可以在评论者留下你的经验和建议。
未发布 Essential Studio for JavaScript发布2017 v4版本,添加Essential JS 2工具包 ESSENTIAL JS 2:企业级JAVASCRIPT UI工具包
Essential JS 2是一个现代的JavaScript UI工具包,具有轻量级、响应式和模块化的特点。它是用TypeScript编写的,完全支持Angular和React框架的完整支持。目前有以下组件可供使用:
Grid
Chart
Drop-Down List
Tree View
Date Picker
Dialog
Numeric Text Box
Tab
Toolbar
Circular Gauge
Linear Gauge
Form Validator
Combo Box
Autocomplete
Multiselect Drop-Down
Calendar
Date Range Picker
Button
Radio Button
Check Box
Text Box
Time Picker
Masked Text Box
List View
Tooltip
Context Menu
Accordion
支持ANGULAR 5
用于Angular组件的基本JavaScript已经升级到无缝支持Angular 5。
组合框
新的控件
组合框组件允许用户输入一个值或从预定义选项列表中选择一个选项。单击此组件的箭头图标时,下拉列表将显示用户可以从中选择的值列表。
主要特征
数据绑定:允许绑定和访问本地或服务器端数据源的项目列表。
分组:支持将单个或特定类别下的逻辑相关项目进行分组。
排序:支持按字母顺序(升序或降序)排序列表项。
过滤:允许根据组件中输入的字符过滤列表项目。
模板:允许自定义列表项目、选定的值、页眉、页脚、类别组页眉。
可访问性:内置的可访问性支持有助于通过键盘、屏幕阅读器或其他辅助技术设备访问所有组件的功能。
媒体播放器
新的控件
JavaScript的媒体播放器提供了一个简单而强大的视频和音频播放器,内置控制选项。它支持HTML5标准音频和视频格式,如MP4、MP3、WebM和Ogg。
主要特征
CHART
轴标签
支持显示多行轴标签。
显示外部数据标签
现在可以在图表区域内显示部分可见的数据标签。
数据管理器
防伪
防伪令牌可用于帮助保护应用程序免受跨站请求伪造。它生成一个隐藏的表单字段(防伪造标记),在提交表单时进行验证。
额外的数据操作
提供了IN和NotIN过滤器操作用于在WHERE过滤器中指定多个值。
DIAGRAM
对齐
支持定制用户手柄的位置。
端口增强
现在可以拖动端口来重新定位端口。
对称布局
对称布局是用于以圆形和对称方式排列图的自动布局。
标签交互
已经为标签提供了交互支持。他们可以被选中、拖动、调整大小和旋转。
AUTOCOMPLETE
搜索索引多栏弹出
现在可以区分多列AUTOCOMPLETE控件中的显示格式和搜索字段,允许用户在列表中搜索任意数量的字段,而无需修改所选的文本格式。
条码
EAN
条形码控制器现在支持EAN-8和EAN-13条形码。
计算
27个新的Excel公式
支持以下Excel公式:
ASINH,ATANH,AVERAGEIF,AVERAGEIFS,BASE,BESSELI,BESSELJ,BESSELK,BESSELY,COUNTIF,MMULT,MOD,NORMSDIST,NORMDIST,ODD,POWER,PV,RADIANS,RAND,ROUND,ROUNDUP,ROUNDDOWN,SECH,SUMPRODUCT,TEXT, VLOOKUP和STDEV。
下拉列表
服务器过滤
在搜索框中输入文本时,此功能将过滤数据源。过滤是基于包含来自整个数据源的匹配项。
服务器过滤:远程数据
服务器过滤:本地数据
文件管理器
支持鼠标选择
支持在文件资源管理器控件中使用鼠标管理文件/文件夹。
KANBAN
外部拖放
KANBAN控件现在支持与其他控件之间的拖放操作。
没有数据源的KANBAN列
KANBAN列可以在不绑定数据源的情况下显示。
滑块
添加按钮
添加了一个可以隐藏的按钮,允许增加和减少滑块的值。
甘特图
资源分配视图
甘特图控件支持资源分配视图。使用该视图,用户可以解释在同一日期发生的任务以及项目中资源的过度分配。
排序
现在可以根据行顺序显示具有序列号的任务。
多行选择
现在可以选择多行并执行缩进和负缩进操作。
列过滤
现在可以过滤甘特图控件中的特定字段或列。
展开/折叠记录
甘特图控制现在支持扩展和折叠特定的记录。
未发布 扫描识别控件Dynamic Web TWAIN v12.3.1发布,更新服务证书丨附下载 Dynamic Web TWAIN是一个专为Web应用程序设计的TWAIN扫描识别控件。你只需在TWAIN接口写几行代码,就可以用兼容TWAIN的扫描仪扫描文档或从数码相机/采集卡中获取图像。然后用户可以编辑图像并将图像保存为多种格式,用户可保存图像到远程数据库或者SharePoint。这个TWAIN控件还支持上传和处理本地图像。
Dynamic Web TWAIN能够在所有主流浏览器上面进行网页扫描。兼容 Firefox, Mozilla , Chrome , Safari , Opera以及其他的浏览器;目前主要有三个版本:ActiveX, Plugin 和 Mac。
Dynamic Web TWAIN v12.3.1更新内容:
修复:
[仅限HTML5]更新了Dynamic Web TWAIN服务的证书来处理Windows 7/8 / 8.1上IE 10/11中的不兼容性。
Dynamic Web TWAIN v12.3更新内容:
改进:
[仅限HTML5]升级了Dynamic Web TWAIN服务的证书来处理Chrome 58+中的更新。
[仅限HTML5]更新了Dynamic Web TWAIN服务中用于安全连接的密钥交换和密码。
未发布 微软:Visual Studio 2017是迄今为止最高效的版本 Visual Studio 2017 全面上市。
欢迎大家即刻下载体验全新的 Visual Studio 2017!我们还为整个 Visual Studio 产品系列进行了更新,让 Visual Studio 订阅用户和 Visual Studio Dev Essentials 的会员收获更多价值。
Visual Studio 2017:迄今为止最高效的版本
我们针对 Visual Studio 2017 的多个关键领域进行了重点研发——包括改进基础部件、提供五星级的云和移动开发体验,以及提升 DevOps 功能,以确保 Visual Studio 2017 可以助力每一位开发者在各种平台上开发各类应用。
在发展 Visual Studio 2017 这一全新版本时,我们将云和移动开发置于最重要的位置。为了简化云开发流程,内置的各项工具将为您提供有关.NET Core、Azure 应用、微服务、容器等应用开发的完整集成功能,甚至现在可以更轻松地由 IDE 直接开发和部署 Azure 应用和服务。Visual Studio 2017 with Xamarin 让你能够通过先进的调试和分析工具更加快速地为安卓、iOS 和 Windows 平台开发移动应用。
我们也重视聆听用户心声,并清楚地了解到用户希望 Visual Studio 变得更为快速、更精简,即使所面对的应用开发和项目愈加庞大。因此,我们将为用户提供全新的安装体验,让一切变得轻便而模块化。为提高 Visual Studio 的性能,我们还增强了多项功能。Visual Studio 2017 还将交付多项全新特性,帮助开发团队能够轻松地实践现代化的 DevOps 做法,更为快速而持续地应对市场变化。为了帮助开发者更好地把自己的数据库嵌入 DevOps,加速发布周期,Redgate Data Tools 工具现已加入 Visual Studio Enterprise 2017 服务当中。
未发布 多比图形控件教程:基于Flex/Javascript的网页绘图控件 1.概述
多比矢量图控件是一个在Web上绘图的组件,适用于需要在网页中/编辑流程图、图表、网络图和普通矢量图形的Web应用程序组件。多比控件提供充分的编程接口,可以非常容易的和ASP.NET、JavaWeb技术集成。
【最新多比图形控件(Web)v3.5点击下载>>>】
1.1 技术特征
多比矢量图控件采用最新的AJAX技术,他以Flex和Javascript为基础,可以很方便的在网页中展现绚丽的矢量图形。相比传统的技术,多比矢量图控件有以下的突出优点。
- l 只需要安装Flash播放器,不需要其他第三方插件, 不依赖任何插件供应商。很多国有企业、政府部门、军工企业,由于安全性等原因,环境往往不能安装浏览器插件。
- l 标准的Web技术,非常容易和Java或.NET集成。
- l 可扩展,可修改,可配置。和ActiveX控件不同,多比控件很容易修改和扩展,只需要很少的脚本代码,就可以实现和默认行为不一样的功能。
1.2 应用领域
多比图形控件是一款基于Web的矢量图形控件, 类似于网页上的Visio控件,是目前国内外最佳的基于web的工作流设计器、工作流流程监视器解决方案。 可广泛应用于包括:电力、军工、煤炭、化工、科研、能源等各种监控软件、web工作流设计器、asp.net工作流设计器、电力、化工、煤炭、工控组态软件、仿真、地理信息系统、工作流、复杂报表 工业SCADA系统、ERP流程设计系统、图形管理、图形拓扑分析、GIS地理信息系统系统、工程制图等领域。目前已经为全球20多个国家的数千家客户采用。
1.3运行一下例子
首先, 你需要到多比的官方网站上下载最新版的多比控件。你可以直接到这个链接下载 http://www.duobee.com/Page-d-key-visio_download。
下载完成后,你需要将现有的包解压,并且发到IIS或者TOMCAT下的某个目录,然后通过http://localhost/download/testing这种方式打开。 请不要直接双击打开(file:///),这种方式将导致flash文件加载不正确。