使用WebBrowser 控件打开Office文档

合集下载

Excel上使用VBA的WebBrowser控件实现单点登录(SSO)

Excel上使用VBA的WebBrowser控件实现单点登录(SSO)

Excel上使⽤VBA的WebBrowser控件实现单点登录(SSO)需求Excel 上可以做出很多漂亮的报表, 产品经理希望能够在Excel上弹出登录页⾯,实现单点登录,登录完成后,从服务器端取回模板列表,选择其中⼀个模板,插⼊到Excel中。

设计1. 登录界⾯可⽤前端技术实现,⽐如Angular与VUE2. VBA中⾃带的WebBrowser控件可以作为加载Web登录页⾯的“壳”。

3. VBA不断尝试获取页⾯上的cookie,直到取到cookie,并且cookie中包含token。

4. 使⽤URLDecode解码cookie,获取token。

5. 使⽤该token发出rest api请求获取模板列表。

部分实现从WebBrowser获取cookiePublic Function GetCookieFromBrowser(serverIP As String)Dim url As StringDim encodedCookie As StringencodedCookie = ""url = "https://" + serverIP + "/test/login/" + "?refresh=" + Guid()FLoginWeb.FWebBrowser.Silent = TrueFLoginWeb.FWebBrowser.Navigate urlFLoginWeb.Show vbModelessDo Until InStr(FLoginWeb.FWebBrowser.Document.cookie, "token") > 0: DoEvents: LoopIf FLoginWeb.FWebBrowser.Document.cookie <> "" ThenencodedCookie = FLoginWeb.FWebBrowser.Document.cookieFLoginWeb.HideEnd IfGetEncodedCookieFromWebBrowser = encodedCookieEnd Function注意1. 由于VBA的WebBrowser是IE内核,⽽微软官⽅已经宣布放弃⽀持IE,因此随着Angular、VUE等版本的升级,可能会出现WebBrowser⽆法正常加载⽹页的情况,需要多做测试。

microsoft web browser activex使用方法

microsoft web browser activex使用方法

microsoftwebbrowseractivex使用方法**一、概述**ActiveX是一种由Microsoft开发的控件,可用于在Web浏览器中嵌入和执行各种应用程序。

它允许开发人员创建在Internet上运行的自定义应用程序,并提供了一个方便的集成方式。

ActiveX也广泛用于Microsoft的InternetExplorer浏览器中。

**二、安装和启用**要使用ActiveX,首先需要确认您的操作系统是否支持。

通常,大多数现代操作系统都内置了ActiveX的支持。

对于Windows操作系统,您可以按照以下步骤进行安装和启用:1.打开控制面板,并找到“程序和功能”选项。

2.在程序列表中找到并选中“InternetExplorer”,然后点击“打开或关闭Windows功能”。

3.在打开的窗口中,找到ActiveX控件和插件复选框,勾选它们以启用ActiveX。

4.确认更改并重启浏览器。

**三、使用方法**一旦ActiveX被启用,您就可以在Web浏览器中使用它了。

下面是一些基本的使用方法:1.打开InternetExplorer并访问一个包含ActiveX控件的网站。

2.通常,您不需要做任何特殊操作,因为ActiveX控件会自动在您的浏览器中加载并开始工作。

3.如果您需要更改ActiveX控件的设置或属性,通常可以在浏览器的工具栏中找到相关的选项或菜单项。

4.如果您遇到任何问题或错误,请尝试查看浏览器的错误报告或调试工具,以获取更多信息。

**四、注意事项**1.请注意,不是所有的网站都支持ActiveX控件。

一些网站可能会阻止或限制ActiveX的使用,以保护用户的安全和隐私。

2.某些ActiveX控件可能包含不安全的漏洞,因此请务必保持您的浏览器和操作系统更新到最新版本,以获得最佳的安全性。

3.避免在不信任或不安全的网站上加载和使用未知来源的ActiveX控件。

总的来说,MicrosoftWeb浏览器中的ActiveX使用相对简单和直观。

开源代码系列之Office文档读写(ExcelWord)

开源代码系列之Office文档读写(ExcelWord)

开源代码系列之Office文档读写(Excel/Word)Office系列文档使用的是所谓的Compound File,也就是Structured Storage,简单地说,也就是在一个文件中有一个文件系统,结构化保存复合内容(流)。

微软为了垄断,这些文件结构是不公开的,但有牛人研究出来,一个很不错的例子就是Open Office代码,里面就有大部分Office系列文档格式的java代码,包括Word、Excel、PowerPoint、Outlook等,现在市面上的商业化软件很多都在使用别人的劳动成功,明的暗的。

今天介绍的是3个开源代码,都是关于Excel的,应用.NET编写,2个是读,一个是写。

□koogra:超一流的Excel文件解析类库,支持最新版本的Excel文件,包括2003版本的,在我向作者指出的错误之后,作者特别添加了对中文的支持,C#编写,(这是我介绍的所有的开源代码中第二个获得我给予的6星评价的,大家可以体验一下),用了这个类库,大家就不需要打开Excel实例来解析Excel文件了!□Smart Excel Library:这个东西是我写的,用以写BIFF2.1格式的文件,,不支持最新版本的Excel格式,但任何版本的Excel都可以直接打开,我记得有个博客园的朋友移植到C#,大家可以搜索一下。

用了这个类库,大家就可以不用Excel而直接生成标准的Excel文件,而不是那种CSV,又或者通过HTTP Header来让Excel认为是Excel的做法,因为它不支持格式。

□OLE Structured Storage Classes,VB大牛Edanmo用写的结构化文档格式读取类库,不喜欢而喜欢C#的朋友将就一下,反正是类库,编译一下便可通用:)事实上肯定不只这些,如果大家知道,可以和别人分享一下:)posted on 2005-02-28 00:03 奋斗中的灵感之源阅读(4141) 评论(14)编辑收藏收藏至365Key所属分类: 3.开源项目FeedBack:# re: 开源代码系列之Office文档读写(Excel/Word)2005-02-28 09:18 | 强把忧郁再掩盖我用不开源得Aspose 回复# re: 开源代码系列之Office文档读写(Excel/Word)2005-02-28 09:22 | 灵感之源:PSP团队GuruAspose 不是开源的啊!回复# re: 开源代码系列之Office文档读写(Excel/Word)2005-02-28 09:45 | HelloSnoopy开发田地有没有word读写的?? 回复# re: 开源代码系列之Office文档读写(Excel/Word)2005-02-28 10:08 | daniel非常usefull. thanks a lot.真的希望您能够再写一篇关于Word控件的文章。

WebBrowser.ExecWB的完整说明

WebBrowser.ExecWB的完整说明

WebBrowser.ExecWB的完整说明<OBJECT classid=CLSID:8856F961-340A-11D0-A96B-00C04FD705A2 height=0id=WebBrowser width=0></OBJECT><input name=Button .Click=document.all.WebBrowser.ExecWB(1,1) type=button value=打开> <input name=Button .Click=document.all.WebBrowser.ExecWB(2,1) type=button value=关闭所有><input name=Button .Click=document.all.WebBrowser.ExecWB(4,1) type=button value=另存为><input name=Button .Click=document.all.WebBrowser.ExecWB(6,1) type=button value=打印> <input name=Button .Click=document.all.WebBrowser.ExecWB(6,6) type=button value=直接打印><input name=Button .Click=document.all.WebBrowser.ExecWB(7,1) type=button value=打印预览><input name=Button .Click=document.all.WebBrowser.ExecWB(8,1) type=button value=页面设置><input name=Button .Click=document.all.WebBrowser.ExecWB(10,1) type=button value=属性> <input name=Button .Click=document.all.WebBrowser.ExecWB(17,1) type=button value=全选> <input name=Button .Click=document.all.WebBrowser.ExecWB(22,1) type=button value=刷新> <input name=Button .Click=document.all.WebBrowser.ExecWB(45,1) type=button value=关闭> WebBrowser组件的execWB方法1. <object id="WebBrowser" width=0 height=0 classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2"></object>2. 调用方法:WebBrowser.ExecWB nCmdID, nCmdExecOpt, [pvaIn], [pvaOut]3. 参数说明:(a).nCmdIDOLECMDID_OPEN = 1,OLECMDID_NEW = 2,OLECMDID_SAVE = 3,OLECMDID_SAVEAS = 4,OLECMDID_SAVECOPYAS = 5,OLECMDID_PRINT = 6,OLECMDID_PRINTPREVIEW = 7,OLECMDID_PAGESETUP = 8,OLECMDID_SPELL = 9,OLECMDID_PROPERTIES = 10,OLECMDID_CUT = 11,OLECMDID_COPY = 12,OLECMDID_PASTE = 13,OLECMDID_PASTESPECIAL = 14,OLECMDID_UNDO = 15,OLECMDID_REDO = 16,OLECMDID_selectALL = 17,OLECMDID_CLEARselectION = 18,OLECMDID_ZOOM = 19,OLECMDID_GETZOOMRANGE = 20OLECMDID_updateCOMMANDS = 21OLECMDID_REFRESH = 22OLECMDID_STOP = 23OLECMDID_HIDETOOLBARS = 24OLECMDID_SETPROGRESSMAX = 25OLECMDID_SETPROGRESSPOS = 26OLECMDID_SETPROGRESSTEXT = 27OLECMDID_SETTITLE = 28OLECMDID_SETDOWNLOADSTATE = 29OLECMDID_STOPDOWNLOAD = 30上面的关键词都可以在浏览器的菜单里面找到对应的选项﹐大家一看就明白的﹗(b).nCmdExecOptOLECMDEXECOPT_DODEFAULT = 0,OLECMDEXECOPT_PROMPTUSER = 1,LECMDEXECOPT_DONTPROMPTUSER = 2,OLECMDEXECOPT_SHOWHELP = 3对于这个参数﹐一般来说﹐选1就可以了。

vba webbrowser控件实例

vba webbrowser控件实例

VBA WebBrowser控件实例01. 简介VBA (Visual Basic for Applications) 是一种用于创建自定义软件解决方案的编程语言,它通常用于Microsoft Office应用程序中,比如Excel、Word等。

在VBA中,WebBrowser控件是一种非常强大的工具,它可以用来显示Web页面、执行脚本和与网页进行交互。

在本文中,我们将介绍如何在VBA中使用WebBrowser控件,并且给出一些实例来演示其功能和用法。

02. WebBrowser控件的引用我们需要确保已经在VBA项目中引用了“Microsoft Internet Controls”和“Microsoft HTML Object Library”这两个组件。

这样才能在VBA中使用WebBrowser控件。

引用这两个组件的方法很简单,在VBA项目中点击“工具” -> “引用”,然后勾选这两个组件即可。

03. WebBrowser控件的创建和基本设置接下来,我们需要在VBA中创建一个新的UserForm,并在UserForm中添加一个WebBrowser控件。

添加WebBrowser控件的方法是,打开VBA编辑器,双击UserForm,在工具箱中选择“Microsoft Web Browser”,然后在UserForm中拖动鼠标绘制WebBrowser控件的大小。

在VBA中给WebBrowser控件取一个适当的名称,比如“WebBrowser1”。

接下来,我们需要设置WebBrowser控件的一些基本属性,比如URL、高度、宽度等。

可以通过VBA代码来实现这些设置,比如:```vbaPrivate Sub UserForm_Initialize()WebBrowser1.Height = 500WebBrowser1.Width = 800WebBrowser1.Navigate ""End Sub```04. WebBrowser控件的基本功能一旦WebBrowser控件被创建并设置好,就可以开始实现其基本功能了。

webbrowser 用法

webbrowser 用法

一、webbrowser 的定义与作用webbrowser,即网页浏览器,是一种用于访问互联全球信息站网页的软件工具。

通过webbrowser,用户可以输入网页位置区域并访问网页内容,浏览器还可以展示各种网页元素,如文字、图片、视瓶和动画等。

由于其重要作用,webbrowser在现代社会中被广泛使用,成为人们日常生活中不可或缺的工具之一。

二、webbrowser 的基本使用方法在使用webbrowser时,我们通常需要了解一些基本的使用方法,以便更加高效地浏览网页内容。

1. 打开 webbrowser要打开webbrowser,只需在计算机桌面或程序菜单中找到已安装的浏览器图标,并双击打开即可。

常见的webbrowser包括Google Chrome、Mozilla Firefox、Microsoft Edge和Safari等。

用户可以根据自己的喜好和需求选择合适的浏览器。

2. 输入全球信息站在webbrowser的位置区域栏中输入网页的URL位置区域,即可打开相应的网页。

用户也可以利用webbrowser提供的搜索引擎功能,在搜索框中输入关键词进行网页搜索。

3. 浏览网页内容一旦打开了网页,用户可以通过滚动页面、点击信息或者进行搜索等操作来浏览网页内容。

webbrowser还提供了书签功能,用户可以将常用的网页添加到书签栏中,以便快速访问。

4. 下载和管理文件webbrowser允许用户在网页上下载各种文件,如文档、图片、音频和视瓶等。

用户可以在下载管理器中查看和管理已下载的文件。

5. 多标签浏览现代webbrowser支持多标签浏览功能,用户可以在同一个浏览器窗口中打开多个标签页,方便在不同页面之间进行切换和比较。

6. 清除浏览数据webbrowser还提供清除浏览数据的功能,用户可以清除浏览历史、缓存文件和 Cookie 等数据,以保护个人隐私并提升浏览速度。

三、webbrowser 的高级功能与技巧除了基本的浏览网页功能外,webbrowser还具有一些高级功能和技巧,可以帮助用户更好地利用浏览器。

Visual Basic 6.0 的 WebBrowser 控件

Visual Basic 6.0 的 WebBrowser 控件

Visual Basic 6.0 的 WebBrowser 控件可以同时显示solidworks的工具栏及文档,并且能够对已建立的solidworks文档进行修改。

WebBrowser 控件不是 Visual Basic 6.0 的内置控件,所以要把它添加到Visual Basic 6.0界面的【工程】选项卡中。

具体的添加方法是:【工程】→【部件】,然后选择【Microsoft Internet Controls】。

使用WebBrowser 的Navigator方法打开文档,用以下代码即可显示文档内容。

WebBrowser1.Navigate "Solidworks文档的位置\文档的名称. 文档的类型"
例如:WebBrowser1.Navigate "文档的位置\螺旋棒.SLDPRT "→(打开零件文档)WebBrowser1.Navigate "文档的位置\机头装配体.SLDASM"→(打开装配体文档)
WebBrowser1.Navigate "文档的位置\活塞装配体.SLDDRW "→(打开工程图文档)。

Weboffice--使用说明及问题解决

Weboffice--使用说明及问题解决

Weboffice--使⽤说明及问题解决⼴东药学院毕业论⽂实践教学管理系统Weboffice--使⽤说明及问题解决⼀、系统weboffice软件介绍: (2)1.系统weboffice介绍 (2)2.功能介绍 (2)3.使⽤⽀持 (2)⼆、weboffice的使⽤介绍: (2)1.weboffice安装 (2)2.⽂件保存到服务器 (3)3.提交到服务器(教师端) (4)4. 痕迹提⽰和修改 (4)三、问题及解决⽅法 (5)1.⽆提⽰安装weboffice (5)2.⽆法正常打开⽂档(或者屏幕⼀⽚⿊⾊) (9)3.⽂档上传不成功 (9)⼀、系统weboffice软件介绍:1.系统weboffice介绍系统weboffice是⼀个web在线编辑软件,实现⾃动⽣成模版,提供痕迹修改的功能。

经过⼀段时间的使⽤,此软件经过⼀系列的修改维护后,此软件已经⽐较完善和稳定(),如发现有问题和意见,希望⼤家能向我们提供宝贵意见。

2.功能介绍a.实现web在线word编辑。

b.模版⾃动⽣成。

c.痕迹提⽰和修改。

d.在线下载,上传和提交。

3.使⽤⽀持a.客户端需要安装office2003或者office2000。

(本软件暂不⽀持office2007及WPS)b.浏览器根据系统提⽰安装weboffice插件。

c.本软件⽀持的浏览器为IE(IE系列最适宜),360(运⾏有时有点慢)。

⼆、weboffice的使⽤介绍:1.weboffice安装第⼀次使⽤时需要安装weboffic插件,安装过程如下所⽰:a.第⼀次加载时系统会提⽰如下安装提⽰,如图1所⽰:(如⽆法出现如下提⽰,请参考问题解决办法)图1b.点击运⾏此加载项,然后出现如下提⽰:图2c.点击上图的运⾏,安装完毕后重新打开weboffice编辑页⾯就可以运⾏此软件。

d.在浏览器上出现如下所⽰,则说明安装完成:图32.⽂件保存到服务器当编辑完成后可点击按钮进⾏保存上传,如提⽰保存成功或上传成功则说明⽂件上传成功。

WebOffice控件的使用----后台操作

WebOffice控件的使用----后台操作

WebOffice控件的使用----后台操作SetMsgByName (String, String) 设置字段值GetMsgByName(String) 取得字段值MsgTextClear() 清除所有字段MsgError() 取得错误信息MsgError(String) 设置错误信息MsgErrorClear() 清除错误信息MsgVariant() 取得信息包内容MsgVariant(byte[]) 设置信息包内容MsgVersion() 取得信息包版本MsgFileLoad(String) 装入文件MsgFileSave(String) 保存文件MsgFileBody() 取得文件内容MsgFileBody(byte[]) 设置文件内容MsgFileSize() 取得文件大小MsgFileSize(int) 设置文件大小MsgFileClear() 清除文件内容接口说明:SetMsgByName (FieldName String, FieldValue String) 功能说明设置字段值输入参数设置字段域的名称与所对应的值。

FieldName String 字段域的名称FieldValue String 字段域的值输出参数 Boolean=成功/失败。

特别说明系统公共GetMsgByName(FieldName String)功能说明取得字段值输入参数 FieldName String 字段域的名称。

输出参数 String =字段域的值。

MsgTextClear()功能说明清除所有字段输入参数无。

输出参数无。

特别说明系统公共MsgFileLoad(FileName String)功能说明装入文件输入参数 FieldName String 服务器磁盘文件名称。

输出参数 Boolean=成功/失败。

特别说明系统公共MsgFileSave(FileName String)功能说明保存文件输入参数 FieldName String 服务器磁盘文件名称。

office web viewer编程

office web viewer编程

Office Web Viewer 是Microsoft Office 提供的一种在线查看Office 文档的功能。

通过Office Web Viewer,用户可以在浏览器中查看和编辑Word、Excel、PowerPoint 等Office 文档。

如果你想在编程中集成Office Web Viewer,可以使用Microsoft Office 的API 和控件来实现。

下面是一些可能的方法:使用Office Web Viewer 控件Office Web Viewer 控件是一种用于在Web 应用程序中嵌入Office 文档的控件。

它提供了对Office 文档的查看和编辑功能,可以在浏览器中使用。

你可以在开发工具中添加Office Web Viewer 控件,并将其嵌入到你的Web 应用程序中。

使用Microsoft Graph APIMicrosoft Graph API 是一种用于与Microsoft Office 365 服务进行交互的API。

你可以使用它来获取和操作Office 文档,并将其嵌入到你的Web 应用程序中。

通过使用Microsoft Graph API,你可以获取文档的在线版本,并将其显示在Web 应用程序中。

使用第三方库除了Microsoft 的Office Web Viewer 和Graph API 外,还有许多第三方库和框架可用于在Web 应用程序中嵌入Office 文档。

你可以根据你的需求选择一个适合的库,并按照其文档说明进行使用。

无论你选择哪种方法,都需要了解如何将Office 文档转换为可以在浏览器中查看的格式。

通常,Office 文档是以二进制格式存储的,因此需要将其转换为可以在Web 中显示的格式,例如HTML 或PDF。

如何使用WebBrowser控件打开Office文档

如何使用WebBrowser控件打开Office文档

如何使用WebBrowser控件打开Office文档•WebBrowser 控件不会同步浏览到文档。

也就是说,在调用WebBrowser1.Navigate 时,该调用会在文档被完全加载之前将控件返回到Visual Basic 应用程序。

如果打算为所包含的文档实现自动操作,则需要使用NavigateComplete2事件在文档完成加载后发出通知。

使用传入的WebBrowser 对象的文档属性获取对Office 文档对象的引用,该对象在前述代码中设置为 oDocument。

•WebBrowser 控件不支持菜单合并。

如果需要将文档的菜单项与 Visual Basic 菜单一起显示,则必须改用 OLE 容器控件。

•WebBrowser 控件在显示 Office 文档之前通常会隐藏所有停靠工具栏。

您可以使用“自动化”功能通过类似下面的代码来显示浮动工具栏:•With mandBars("Standard") •.Position = 4 '[msoBarFloating]•.Visible = True•End With较新版本的Internet Explorer(5.0 和更高版本)还允许您使用以下代码来显示停靠工具栏:' This is a toggle option, so call it once to show the' toolbars and once to hide them. This works with Internet Explorer 5' but often fails to work properly with earlier versions...WebBrowser1.ExecWB OLECMDID_HIDETOOLBARS, OLECMDEXECOPT_DONTPROMPTUSER•已知在一个项目中有多个WebBrowser 控件,并且每个控件都加载了相同类型的 Office 文档(即,全部都是 Word 文档或者全部都是Excel 电子表格)时,会出现多种问题。

使用WebBrowser 控件打开Office文档

使用WebBrowser 控件打开Office文档

如何使用WebBrowser 控件在Visual C# 2005 或Visual C# .NET 中打开Office 文档查看本文应用于的产品本文的发布号曾为CHS304662有关本文的Microsoft Visual Basic .NET 版本,请参阅304643。

本页∙概要∙更多信息o创建可打开Office 文档的Visual C# 应用程序o使用WebBrowser 控件的注意事项o将WebBrowser 控件与2007 Microsoft Office 程序一起使用时的注意事项∙参考展开全部| 关闭全部概要您可能希望直接在Microsoft Visual C# 窗体中显示或嵌入Microsoft Office 文档。

Microsoft Visual C# 2005 和Microsoft Visual C# .NET 不提供用于在窗体中嵌入Office 文档的OLE 控件。

如果希望嵌入现有文档并将其作为Visual C# 窗体内的就地ActiveX 文档对象打开,一个可能的解决方案是使用Microsoft WebBrowser 控件。

本文阐述如何使用WebBrowser 控件在Visual C# 窗体内浏览到现有Office 文档并显示它。

回到顶端更多信息ActiveX 文档是比传统OLE 对象更像ActiveX 控件的可嵌入OLE 对象。

与传统嵌入对象不同的是,ActiveX 文档不是作为更大文档中所包含的对象而设计的。

其本身可以算作是仅供查看(如用Microsoft Internet Explorer 查看)或是与其他文档(如Microsoft Office 活页夹文件)一起集中到单个资源的完整文档。

WebBrowser 控件中承载的ActiveX 文档始终是活动的;因此,与传统的OLE 嵌入对象不同,无需就地激活。

尽管Visual C# 2005 和Visual C# .NET 当前不支持直接承载ActiveX 文档,但您可以使用WebBrowser 控件来实现此目的。

web使用openoffice实现在线预览office文档

web使用openoffice实现在线预览office文档

web使用openoffice实现在线预览office文档最近搞web项目,使用框架struts+spring+jpa实现,做到项目里面一个在线预览功能,试过无数的方法,最后得到了一个非常使用的方法,这方法也是我看过多篇博客的出来的,仅限参考。

效果图如下:第一步:通过第三方软件openoffice将office文档ppt,pptx,doc,docx,xls,xlsx转换成pdf文档;openoffice下载链接:/zh-cn/download/,第二步:JODConverter一个Java的OpenDocument 文件转换器,导入其相关的jar包下载地址:/detail/tan313/9041821第三步:进行安装文件,在进行项目开发前,必须启动openoffice,我这里不需要之前启动openoffice,启动openoffice写在代码中,使用代码进行启动;不过你唯一要改的就是你的openoffice安装路径,这里在后边我会说到的。

上面相关jar 包导入后,而且openoffice也安装好后,就可以进行项目开发:首先给出工具类,很重要:[java] view plain copy /** * */ package com.sdbd.utils; import java.io.File; import java.util.Date; importjava.util.regex.Pattern; importorg.artofsolving.jodconverter.OfficeDocumentConverter; importorg.artofsolving.jodconverter.office.DefaultOfficeManager Configuration; importorg.artofsolving.jodconverter.office.OfficeManager; /** * 这是一个工具类,主要是为了使Office2003-2007全部格式的文档(.doc|.docx|.xls|.xlsx|.ppt|.pptx) * 转化为pdf文件&lt;br&gt; * Office2010的没测试&lt;br&gt; * *@date 2012-11-5 * @author xhw * */ public class Office2PDF { /** * 使Office2003-2007全部格式的文档(.doc|.docx|.xls|.xlsx|.ppt|.pptx) 转化为pdf文件&lt;br&gt; * * @param inputFilePath *源文件路径,如:"e:/test.docx" * @param outputFilePath * 目标文件路径,如:"e:/test_docx.pdf" * @return */ public boolean openOfficeToPDF(String inputFilePath, String outputFilePath) { return office2pdf(inputFilePath,outputFilePath); } /** * 根据操作系统的名称,获取 3的安装目录&lt;br&gt; * 如我的 3安装在:C:/Program Files(x86)/ 3&lt;br&gt; * * @return 3的安装目录*/ public String getOfficeHome() { String osName =System.getProperty("");System.out.println("操作系统名称:"+osName); if (Pattern.matches("Linux.*", osName)){ return "/opt/3"; } else if (Pattern.matches("Windows.*", osName)){ return "C:/Program Files/OpenOffice 4"; } else if (Pattern.matches("Mac.*", osName)) { return"/Application/.app/Contents"; } return null; } /** * 连接 并且启动 * * @return */ public OfficeManager getOfficeManager(){ DefaultOfficeManagerConfiguration config = new DefaultOfficeManagerConfiguration(); // 获取 3的安装目录String officeHome = getOfficeHome();config.setOfficeHome(officeHome); // 启动OpenOffice的服务OfficeManager officeManager = config.buildOfficeManager(); officeManager.start(); returnofficeManager; } /** * 转换文件* * @param inputFile * @param outputFilePath_end * @param inputFilePath * @param outputFilePath * @param converter*/ public void converterFile(File inputFile, String outputFilePath_end, String inputFilePath, String outputFilePath, OfficeDocumentConverter converter){ File outputFile = new File(outputFilePath_end); // 假如目标路径不存在,则新建该路径if(!outputFile.getParentFile().exists()){ outputFile.getParentFile().mkdirs();} converter.convert(inputFile, outputFile); System.out.println("文件:" + inputFilePath + "\n转换为\n 目标文件:" + outputFile + "\n成功!"); } /** * 使Office2003-2007全部格式的文档(.doc|.docx|.xls|.xlsx|.ppt|.pptx) 转化为pdf文件&lt;br&gt; * * @param inputFilePath * 源文件路径,如:"e:/test.docx" * @param outputFilePath* 目标文件路径,如:"e:/test_docx.pdf" * @return */ public boolean office2pdf(String inputFilePath, String outputFilePath) { boolean flag = false; OfficeManager officeManager = getOfficeManager(); // 连接OpenOffice OfficeDocumentConverter converter = new OfficeDocumentConverter(officeManager); long begin_time = new Date().getTime(); if (null != inputFilePath) { File inputFile = newFile(inputFilePath); // 判断目标文件路径是否为空if (null == outputFilePath){ // 转换后的文件路径String outputFilePath_end =getOutputFilePath(inputFilePath); if (inputFile.exists()) {// 找不到源文件, 则返回converterFile(inputFile, outputFilePath_end, inputFilePath, outputFilePath, converter); flag = true; } } else{ if (inputFile.exists()) {// 找不到源文件, 则返回converterFile(inputFile, outputFilePath, inputFilePath, outputFilePath, converter); flag = true; } }officeManager.stop(); } else{ System.out.println("con't find the resource"); } long end_time = new Date().getTime(); System.out.println("文件转换耗时:[" + (end_time - begin_time) + "]ms");return flag; } /** * 获取输出文件* * @param inputFilePath * @return */ public String getOutputFilePath(String inputFilePath){ String outputFilePath =inputFilePath.replaceAll("." + getPostfix(inputFilePath),".pdf"); return outputFilePath; }/** * 获取inputFilePath的后缀名,如:"e:/test.pptx"的后缀名为:"pptx"&lt;br&gt; * * @param inputFilePath * @return */ public String getPostfix(String inputFilePath) { return inputFilePath.substring(stIndexOf(".") + 1); } } 在该工具类中,你需要改动的就是getOfficeHome()函数中返回值为你的openoffice的安装路径。

WebBrowser控件使用详解

WebBrowser控件使用详解

WebBrowser控件使用详解WebBrowser 的事件Private Events Description BeforeNavigate2 导航发生前激发,刷新时不激发CommandStateChange 当命令的激活状态改变时激发。

它表明何时激活或关闭Back和Forward菜单项或按钮DocumentComplete 当整个文档完成是激发,刷新页面不激发DownloadBegin 当某项下载操作已经开始后激发,刷新也可激发此事件DownloadComplete当某项下载操作已经完成后激发,刷新也可激发此事件NavigateComplete2 导航完成后激发,刷新时不激发NewWindow2 在创建新窗口以前激发OnFullScreen 当FullScreen属性改变时激发。

该事件采用VARIENT_BOOL的一个输入参数来指示IE是全屏显示方式(VARIENT_TRUE)还是普通显示方式(VARIENT_FALSE)OnMenuBar 改变MenuBar的属性时激发,标示参数是VARIENT_BOOL类型的。

VARIANT_TRUE是可见,VARIANT_FALSE是隐藏OnQuit 无论是用户关闭浏览器还是开发者调用Quit方法,当IE退出时就会激发OnStatusBar 与OnMenuBar调用方法相同,标示状态栏是否可见。

OnToolBar 调用方法同上,标示工具栏是否可见。

OnVisible 控制窗口的可见或隐藏,也使用一个VARIENT_BOOL类型的参数StatusTextChange 如果要改变状态栏中的文字,这个事件就会被激发,但它并不理会程序是否有状态栏TitleChange Title有效或改变时激发一些使用技巧1.禁止右键看到很多关于WebBrowser控件禁止右键的提问,回复的方法很多,其中有提到使用微软提供的Webbrowser扩展COM服务器对象(WBCustomizer.dll),但是该方法在我们想使用Webbrowser编辑网页(Webbrowser1.Document.execCommand "editMode")的时候有很多弊端,比如不能显示选中的文本等。

OA谷歌浏览器运行office设置

OA谷歌浏览器运行office设置

OA⾕歌浏览器运⾏office设置
OA ⾕歌浏览器设置
以下设置开启iWebPlugin插件,解决word套打等OA中不能正常运⾏office的问题
⼀、版本确认
1.打开⾕歌浏览器,在地址栏中输⼊:chrome:version,弹出如下界⾯
2.确认浏览器版本为:v4.4以下的32位⾕歌浏览器版本(注意:版本过低可能同样不⽀持)
3.如果浏览器版本为V31.0.1650.63,则不⽤作以下设置,该版本⾃动⽀持iWebPlugin插件。

⼆、开启对iWebPlugin插件的⽀持
1.打开⾕歌浏览器,在地址栏中输⼊chrome://plugins,弹出如下界⾯
a)Ctrl+F,搜索iWebPlugin;
b)点击始终允许运⾏
2.如果未找到iWebPlugin,则在地址栏中输⼊:chrome://flags/#enable-npapi,弹出如下界⾯
a)Ctrl+F,搜索NPAPI;
b)找到“启⽤NPAPI”点击启⽤,并重启浏览器。

如上图所⽰;
c)再次执⾏步骤1。

Web在线操作Office文件(转)

Web在线操作Office文件(转)

Web在线操作Office⽂件(转)来⾃:最近公司有个项⽬,需要直接在IE浏览器中操作Word⽂档,随后在⽹上搜了⼀些资料,感觉都不是很理想.不过,最后还是找到了⼀个功能⽐较强的控件,是⽼外开发的控件,需要注册.还好,没有注册时,只是在页⾯关闭时弹出⼀个对话框,如果某⼈能把它…掉,本⼈⾮常感激,嘿嘿好了,废话不多说.先说说最近搜集的成果,不同级别的功能有不同级别的对应⽅案,要看⼤家需要了,这⾥我提三个⽅案.第1个⽅案,原汁原味Word,Excel或Vioso⽂档等Office,2003以后的版本,是都可以进⾏转换的,⽐如转换为Xml或Html,所以最简单的⽅案就是直接通过代码将Word⽂档转为Html格式,这样就可以在线浏览,只是在线浏览,是不能编辑的.其中,Excel⽂件如果转为Xml格式,是可以在线操作的,详细操作⽅式请参考我之前写的⼀篇贴⼦WebExcel⽂件展现.附件,还附加了⼀个⽤代码⽅式将Word⽂件转为Html格式的例⼦,仅供⼤家参考吧,偶也是从其他地⽅下下来的,经测试可以使⽤第2个⽅案,⼤树底下好乘凉说这句话,我们的第2个⽅案就是要⽤微软的东东,其实微软有好多好东东的,只是它喜欢偷偷摸摸的放出来,很少被⼈知道.或者说,他根本不打算推这个产品,只能说:这个可以有.好了,我们要⽤到的就是微软的dsoframer控件,它是免费的,⽐第1个⽅案,功能稍强,这个控件没有详细研究,看了看别⼈的demo,感觉功能不强就没研究下去,附件中也有相关代码的,⼤家直接参考下好了.第3个⽅案,另辟蹊径既然微软这棵⼤树我们靠不住,就只能借助于第三⽅控件了,⽼外在这⽅向做得很⽜X,⽅⽅⾯⾯的控件或插件都有,只有想不到,没有找不到…唉,中国啊…这个控件是OfficeOCXSetup插件,当前版本是7.4.0.236,附件有此安装程序,安装完以后有各编程⼯具的⽰例,安装程序提供的⽰例只提供了简单的打开,关闭,保存等操作.看提供的Demo⾥,好像可以对Word,Excel,PPT,Vioso等Office⽂件操作,确实很强⼤哈!下⾯我说⼀个⽐较复杂的业务场景:客户的某个单据需要录⼊,但单据⾥⾯的标签等其他帮助性⽂字是不允许客户修改的,客户所允许修改的地⽅我们要预留出来.也就是说,Word本⾝提供的⽂档,也相当于ASPX页⾯,只留⼀些控件允许客户编辑就⾏了.同时,Word本⾝还提供⼀些简单的控件,⽐如⽇期,下拉菜单等.如果对下拉菜单取值,赋值等.好了,制作流程如下所⽰1. 环境要求a) Word2007,最好是2007版本,因为控件有所新增b) 可维护xsd⽂件的⼯具(推荐使⽤VS2005或VS2008)1. 名词解释a) 书签Word⽂档⾥的书签,我也不太好讲,可以理解为在⽂档中预留⼀个标识符,找数据的时候可以按此标识符查找即可b) 结点Word本⾝⽀持导⼊XSD架构⽂档,结点功能与书签功能类似,可理解为书签,只是功能更强⼤1. 结点操作步骤a) 制作Word模板⽂件,如图-1所⽰图-1b) 开发员收到Word⽂档后,需要制作xsd⽂档(相当于定义XML⽂件结构的,如图-2和图-3所⽰.图-2图-3说明:i. xsd提供可视化和编码维护两种⽅式,个⼈建议使⽤编码⽅式维护ii. <xs:element name=”死亡报卡”>结点为报卡名称iii. <xs:element name=”xingming”>为某个结点,相当于DbTable中的某个DbColumnName名称iv. <xs:attribute name=”dbtablename”为结点的⾃定义属性,是由我们⾃⾏增加的,⽬前的属性定义如下dbtablename结点所属Db表名称dbcolumnname结点所属Db表中列名称dbcolumndatatype列数据类型,如int,varchar等dbcolumnedittype列编辑类型,如textbox,dropdownlistdbcolumnvalue列栏值,若编辑类型是下拉菜单,则数据值写⼊此属性helpsign公⽤帮助标识,如民族,疾病等comments列中⽂含义,可⽤于必输项检测,弹出提⽰内容v. 只需复制结点,修改其⾃定义属性值即可c) 完成xsd⽂档的编写,我们就需要将xsd⽂档并⼊Word中,因为我们使⽤结点⽅式操作数据i. 打开Word⽂档,选择”开发⼯具”页⾯ii. 单击”架构”菜单,出现”模板和加载项”对话框,如图-4所⽰图-4iii. 再单击”添加架构”,将我们刚才定义好的xsd⽂件引⼊其中,并为其定义⼀个别名,如图-5所⽰图-5iv. 上述操作完成后,再点击如图-4所⽰”结构”菜单,结果会出现如图-6所⽰界⾯.注意:”仅列出当前元素的⼦元素”不要勾选图-6v. 在如图-6所⽰的界⾯中,⼦项中有”死亡报卡”⼀项,它是我们所有<xs:element>项⽬的⽗级结点,需要将其引⼊其中,注意引⼊时必须选择”应⽤于整篇⽂档”,如图-7所⽰图-7vi. 接下来的事情,我们就可以选择⼦项到单元格了,只需单击即可,操作效果如图-8所⽰图-8vii. 选择我们刚才新增的结点,右键,属性,弹出如图-8所⽰的界⾯,这个界⾯⽤于将我们⾃定义的属性加⼊到结点中,即增加⾄”分配的属性”项中.这样我们就可以通过代码⽅式取值和赋值⾃定义属性了,增加后的效果如图-9所⽰图-9viii. 通过上述步骤,我们完成了报卡的设置⼯作,到此我们就可以通过编码⽅式对⽂档操作,包括结点取值和赋值,结点⾃定义属性取值和赋值.不过,如果直接拿给客户使⽤,会造成某些⽂字误删,因此,还需要对⽂档进⾏保护处理,同时,设置好只允许客户编辑的区域d) 对⽂档进⾏保护,只允许录⼊,详细操作步骤如下i. 切换到”开发⼯具”页⾯,单击”保护⽂档”,出现如图-10所⽰界⾯图-10ii. 选中某个我们刚才编辑好的模板,将右侧”仅允许在⽂档中进⾏此类编辑”勾选,再勾选”每个⼈”复选框即可iii. 其余结点均按此操作步骤即可,设置完以后,选择”是,启动强制保护”即可(没有设置密码).这样操作以后,交付给客户使⽤时,客户就不会误删数据了,因为所有数据都被保护起来了,留下来的都是允许客户编辑的,iv. 保护起来后,效果如图-11所⽰,可以停⽌保扩.注意:不要勾选”突出显⽰可编辑的区域”复选框,它的作⽤是显⽰/隐藏保护区域图-11e) 最后,我们需要美化⼀下,如图-12所⽰不要勾选”在⽂档中显⽰XML标记”复选框,它的作⽤是显⽰/隐藏结点项图-121. 设置书签步骤a) 以设置页眉为例i. 在页眉中,录⼊”医院名称”⽂字,然后按⼏个空格,再选中刚才的空格,切换到”插⼊”页⾯,选择书签,弹出如图-13所⽰页⾯,录⼊⼀个书签名称,添加⾄列表框中即可图-13ii. 设置完以后,如图-14所⽰.这是我们设置好以后的书签,是否保护可以通过设置结点保护⽅式即可图-141. 控件安装程序说明a) 安装完此控件后,找到安装路径.如图-15所⽰i. Officeviewer.cab⽂件就是我们程序所要加载的cab控件包ii. Samples⽂件夹,是各编程⼯具的⽰例,可直接运⾏,⾥⾯有⽰例,我们以此为例图-15b) 打开页⾯,cab加载⽅式也按它的加载⽅式即可i. 我们在使⽤时,直接照搬过来即可,例:打开Word⽂档,事件注册⽅式等.ii. 这⾥重点说明我们以后会频繁操作的事件,就是双击事件,因为我们需要双击事件弹出公⽤帮助,提供快速录⼊功能,如图-16所⽰图-16c) 代码说明i. 声明页⾯变量array_xmlnodenameist和array_bookmarknamelist两个变量,⽤于存储Word⽂档中结点名称列表和书签名称列表,⽬的是提⾼性能,不必每次再循环获取.上述变量可在OA1_DocumentOpened事件中赋值.ii. 控件与Db表数据取值和赋值⽅式如图-17和图-18所⽰.iii. Js⽅法可参考edrawoffice.js⽂件,已对⼀些功能有所封装图-17图-181. Word控件使⽤a) 使⽤Word2007中⾃带的控件,实现数据的简单定义后,数据的取值和赋值操作,如⽇期,性别下拉菜单等,如图-22所⽰图-22b) 数据赋值时,若是下拉菜单操作,需要将显⽰值显⽰在页⾯控件,数据值存储在结点的⾃定义属性中,此功能已实现,代码在edrawoffice.js中备注1. 本要提供对此控件的技术⽀持,有问题可以与我联系,同时我提供的类库中若在问题,也请与我联系,谢谢2. 此控件的评估版本,页⾯关闭时会弹出对话框,如图-23所⽰.若有⾼⼿可以解决,本⼈不胜感谢!。

在中WebBrowser加载Excel后获取excel对象

在中WebBrowser加载Excel后获取excel对象

标题: 在中WebBrowser加载Excel后获取excel对象- 邓春光 2010-04-20 11:11 阅读:59- 评论:0 | 添加评论 | 返回↓在最新的Visual Studio 2005中,为我们提供了一个WebBrowser的封装控件,这个控件隐藏了底层的axWebBrowser控件,我们就利用WebBrowser控件来完成我们的Excel等ActiveDocument的嵌入和操作。

在此之前,你需要将Office的.Net库安装到你的机器上。

1.在你的工具栏上选择WebBrowser控件,将其放到你的Form上2.在Form上增加一个控件来使其加载一个Excel文件,如下:Button的事件处理程序:privatevoidbutton1_Click_1(objectsender, EventArgs e){stringstrFileName =@"d:\a.xls";Object refmissing = System.Reflection.Missing.Value;this.webBrowser1.Navigate(strFileName);objectaxWebBrowser =this.webBrowser1.ActiveXInstance;}3.增加WebBrowser的DocumentComplete事件处理程序privatevoidwebBrowser1_DocumentCompleted_1(objectsender, WebBrowserDocumentCompletedEventArgs e){Object refmissing = System.Reflection.Missing.Value;object[] args =newobject[4];args[0] = SHDocVw.OLECMDID.OLECMDID_HIDETOOLBARS;args[1] = SHDocVw.OLECMDEXECOPT.OLECMDEXECOPT_DONTPROMPTUSER;args[2] = refmissing;args[3] = refmissing;objectaxWebBrowser =this.webBrowser1.ActiveXInstance;axWebBrowser.GetType().InvokeMember("ExecWB",BindingFlags.InvokeMethod,null, axWebBrowser, args);objectōApplication = axWebBrowser.GetType().InvokeMember("Document",BindingFlags.GetProperty,null, axWebBrowser,null);Excel.Workbook wbb = (Excel.Workbook) oApplication;Excel.ApplicationClass excel = wbb.ApplicationasExcel.ApplicationClass;Excel.Workbook wb = excel.Workbooks[1];Excel.Worksheet ws = wb.Worksheets[1]asExcel.Worksheet; ="Verdana";ws.Cells.Font.Size = 14;ws.Cells.Font.Bold =true;Excel.Range range = ws.Cells;Excel.Range ōCell = range[10, 10]asExcel.Range;oCell.Value2 ="你好";}这里要注意,WebBrowser加载Excel文档后,并不显示工具栏,为此我们需要使用高级一点的技术,通过反射调用底层的方法来实现,首先我们需要找到WebBrowser封装的AxWebBrowser控件。

winform显示word和ppt文档

winform显示word和ppt文档

winform显⽰word和ppt⽂档最近所做的项⽬中需要在Winform窗体中显⽰Office⽂档。

刚开始就使⽤webBrowser控件实现的,但是后来发现这个控件在显⽰Office⽂档的时候有个限制:只⽀持Office2003之前的版本,之后的版本都有问题。

在⽹上也有很多⼈遇到这个问题,找了好久的解决⽅案都没有找到,后来在⼀个⽹站上⾯找到了⼀个第三⽅的控件,可以很好的⽀持这个功能,就是Dsoframer(可以从⽹上找到关于Dsoframer的使⽤说明,⾥⾯有很详细介绍它的⽅法和属性)操作步骤:1.需要从⽹站下载dsoframer.ocx⽂件2.把dsoframer.ocx⽂件复制到c:\windows\system32⽬录下开始->运⾏->regsvr32 dsoframer.ocx , 系统会提⽰DSOFramer.ocx中的DllRegisterServer成功。

3.在VS中新建项⽬,添加引⽤4.将该控件加载到⼯具箱中(添加新选项)5.将控件拖到窗体中打开⽂件:this.axFramerControl1.Open(“⽂档地址”); //office的相关⽂档注:此Dsoframer控制还有很多其它很好的⽅法和功能,可以去下载⼀个Dsoframer的使⽤接⼝说明⽂档------------------------------------------------------------------------------------------------------------------------------------------------doc pdf ppt与 txt之间的转换:组件的作⽤⼀般是将⽂件读出成字符格式,并不是单纯的转换⽂件名后缀,所以需要将读出的东西写⼊txt⽂件。

添加office引⽤.net中对office中的word及ppt进⾏编程时,确保安装office时已经安装了word,ppt可编程组件(⾃定义安装时可查看)或者安装“Microsoft Office 2003 Primary Interop Assemblies”安装后,在编程页⾯添加引⽤:添加引⽤-com—microsoft powerpoint object 11.0 libaray/word 11.0 object library;还得添加office组件using Microsoft.Office.Interop.Word;using Microsoft.Office.Interop.PowerPoint;using org.pdfbox.pdmodel;using org.pdfbox.util;using Microsoft.Office.Interop.Word;using Microsoft.Office.Interop.PowerPoint;public void pdf2txt(FileInfo file,FileInfo txtfile){PDDocument doc = PDDocument.load(file.FullName);PDFTextStripper pdfStripper = new PDFTextStripper();string text = pdfStripper.getText(doc);StreamWriter swPdfChange = new StreamWriter(txtfile.FullName, false, Encoding.GetEncoding("gb2312"));swPdfChange.Write(text);swPdfChange.Close();}对于doc⽂件中的表格,读出的结果是去除掉了⽹格线,内容按⾏读取。

WebBrowser中无法正常嵌入Office文档的问题

WebBrowser中无法正常嵌入Office文档的问题

WebBrowser中无法正常嵌入Office文档的问题使用 WebBrowser 的 Navigate 方法打开 Office 文档时,出现以下问题:问题:Office 文档并没有正确嵌入到WebBrowser 控件中,反而被系统自带的Office 应用程序打开了(等同于双击Office 文档);原因:是Office 文档浏览设置的问题解决方法:修改注册表中 Office 文档注册信息,如下Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Docume nt.8]'BrowserFlags'=dword:80000024[HKEY_LOCAL_MACHINE\S OFTWARE\Classes\Word.RTF.8]'BrowserFlags'=dword:80000024[ HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Word.Document.1 2]'BrowserFlags'=dword:80000024[HKEY_LOCAL_MACHINE\SOF TWARE\Classes\Word.DocumentMacroEnabled.12]'BrowserFlags'=dword:80000024[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.Sheet.8]'BrowserFlags'=dword:80000A00[HKEY_LOCAL_ MACHINE\SOFTWARE\Classes\Excel.Sheet.12]'BrowserFlags'=d word:80000A00[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Ex cel.SheetMacroEnabled.12]'BrowserFlags'=dword:80000A00[HK EY_LOCAL_MACHINE\SOFTWARE\Classes\Excel.SheetBinaryMac roEnabled.12]'BrowserFlags'=dword:80000A00[HKEY_LOCAL_M ACHINE\SOFTWARE\Classes\PowerPoint.Show.8]'BrowserFlags'=dword:800000A0[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ PowerPoint.Show.12]'BrowserFlags'=dword:800000A0[HKEY_LO CAL_MACHINE\SOFTWARE\Classes\PowerPoint.ShowMacroEna bled.12]'BrowserFlags'=dword:800000A0[HKEY_LOCAL_MACHIN E\SOFTWARE\Classes\PowerPoint.SlideShow.8]'BrowserFlags'=d word:800000A0[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Po werPoint.SlideShow.12]'BrowserFlags'=dword:800000A0[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PowerPoint.SlideShowMac roEnabled.12]'BrowserFlags'=dword:800000A0把以上内容粘贴到文本文件中,保存为reg 文件,双击注册即可。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

如何使用WebBrowser 控件在Visual C# 2005 或Visual C# .NET 中打开Office 文档查看本文应用于的产品本文的发布号曾为CHS304662有关本文的Microsoft Visual Basic .NET 版本,请参阅304643。

本页∙概要∙更多信息o创建可打开Office 文档的Visual C# 应用程序o使用WebBrowser 控件的注意事项o将WebBrowser 控件与2007 Microsoft Office 程序一起使用时的注意事项∙参考展开全部| 关闭全部概要您可能希望直接在Microsoft Visual C# 窗体中显示或嵌入Microsoft Office 文档。

Microsoft Visual C# 2005 和Microsoft Visual C# .NET 不提供用于在窗体中嵌入Office 文档的OLE 控件。

如果希望嵌入现有文档并将其作为Visual C# 窗体内的就地ActiveX 文档对象打开,一个可能的解决方案是使用Microsoft WebBrowser 控件。

本文阐述如何使用WebBrowser 控件在Visual C# 窗体内浏览到现有Office 文档并显示它。

回到顶端更多信息ActiveX 文档是比传统OLE 对象更像ActiveX 控件的可嵌入OLE 对象。

与传统嵌入对象不同的是,ActiveX 文档不是作为更大文档中所包含的对象而设计的。

其本身可以算作是仅供查看(如用Microsoft Internet Explorer 查看)或是与其他文档(如Microsoft Office 活页夹文件)一起集中到单个资源的完整文档。

WebBrowser 控件中承载的ActiveX 文档始终是活动的;因此,与传统的OLE 嵌入对象不同,无需就地激活。

尽管Visual C# 2005 和Visual C# .NET 当前不支持直接承载ActiveX 文档,但您可以使用WebBrowser 控件来实现此目的。

WebBrowser 控件(Shdocvw.dll) 是Internet Explorer 的一部分,并且只能在安装了Internet Explorer 的系统上使用。

回到顶端创建可打开Office 文档的Visual C# 应用程序要创建可打开Office 文档的Visual C# 应用程序,请按照下列步骤操作:1.在Visual C# 2005 或Visual C# .NET 中新建一个Windows 应用程序项目。

默认情况下创建Form1。

注意:在Visual C# 2005 中,如果您找不到SHDocVw.dll 文件或AxSHDocVw.dll文件,请在Visual Studio 命令提示符下运行下面的命令:aximp %WINDIR%\system32\shdocvw.dll然后,为Microsoft WebBrowser 控件创建公共语言运行库代理(SHDocVw.dll) 和Windows 窗体代理(AxSHDocVw.dll)。

若要在Visual C# 2005 中添加DLL 文件,请按下列步骤操作:a.在“项目”菜单上,单击“添加引用”。

b.在“添加引用”对话框中,单击“浏览”。

c.找到并选择AxSHDocVw.dll 和SHDocVw.dll 文件。

d.若要为这两个文件添加项目引用,请单击“确定”。

2.在“工具”菜单上,单击“自定义工具箱”以打开“自定义工具箱”对话框。

在“COM 组件”选项卡上,添加一个对“Microsoft WebBrowser”的引用。

单击“确定”,将WebBrowser控件添加到Windows 窗体工具箱。

WebBrowser 控件会显示出来,并且在工具箱中带有“Explorer”(资源管理器)字样。

注意:在Visual Studio 2005 中,不必执行步骤2。

3.使用该工具箱向Form1 添加一个WebBrowser 控件、一个OpenFileDialog 控件和一个CommandButton 控件。

这就会向Form1 类添加“AxWebBrowser1”、“OpenFileDialog1”和“Button1”成员变量。

在Visual C# 2005 中,会添加“webBrowser1”、“openFileDialog1”和“button1”成员变量。

4.在Form1 上,双击“Button1”。

这就会向Form1 添加”Button1_Click”事件。

5.在Form1 的代码窗口中,向列表添加以下命名空间:ing System.Reflection;7.如下所示在Form1 类中定义一个私有成员:private Object oDocument;8.在Form1 类的“InitializeComponent”方法的末尾,添加以下代码以处理“Form1_Load”、“Form1_Closed”和“axWebBrowser1_NavigateComplete2”事件:9.this.axWebBrowser1.NavigateComplete2 += newAxSHDocVw.DWebBrowserEvents2_NavigateComplete2EventHand ler(this.axWebBrowser1_NavigateComplete2);10.this.Load += newSystem.EventHandler(this.Form1_Load);11.this.Closed += newSystem.EventHandler(this.Form1_Closed);12.将下面的代码13.private void button1_Click(object sender,System.EventArgs e)14.{15.}替换为:private void button1_Click(object sender,System.EventArgs e){String strFileName;//Find the Office document.openFileDialog1.FileName = "";openFileDialog1.ShowDialog();strFileName = openFileDialog1.FileName;//If the user does not cancel, open the document.if(strFileName.Length != 0){Object refmissing = System.Reflection.Missing.Value;oDocument = null;axWebBrowser1.Navigate(strFileName, ref refmissing , ref refmissing , ref refmissing , ref refmissing);}}public void Form1_Load(object sender, System.EventArgs e) {button1.Text = "Browse";openFileDialog1.Filter = "Office Documents(*.doc, *.xls, *.ppt)|*.doc;*.xls;*.ppt" ;openFileDialog1.FilterIndex = 1;}public void Form1_Closed(object sender, System.EventArgs e){oDocument = null;}public void axWebBrowser1_NavigateComplete2(object sender,AxSHDocVw.DWebBrowserEvents2_NavigateComplete2Event e) {//Note: You can use the reference to the document object to// automate the document server.Object o = e.pDisp;oDocument =o.GetType().InvokeMember("Document",BindingFlags.GetPro perty,null,o,null);Object oApplication =o.GetType().InvokeMember("Application",BindingFlags.Get Property,null,oDocument,null);Object oName =o.GetType().InvokeMember("Name",BindingFlags.GetProperty ,null,oApplication,null);MessageBox.Show("File opened by: " + oName.ToString() );}注意:您必须在Visual Studio 2005 中更改此代码。

默认情况下,当您创建Windows窗体项目时,Visual C# 向该项目添加一个窗体。

该窗体被命名为Form1。

表示该窗体的两个文件被命名为Form1.cs 和Form1.designer.cs。

您在Form1.cs 中编写代码。

Windows 窗体设计器在Form1.designer.cs 文件中编写代码,这些代码实现通过从工具箱拖放控件所执行的所有操作。

有关Visual C# 2005 中Windows 窗体设计器的更多信息,请访问下面的Microsoft Developer Network (MSDN) 网站:/zh-cn/library/ms173077.aspx16.按F5 运行该项目。

单击“浏览”后,会出现“打开”对话框,您可以使用该对话框浏览到Word 文档、Excel 工作表或PowerPoint 演示文稿。

选择任一文件,然后单击“打开”。

文档在WebBrowser 控件内打开,并出现一个显示Office 文档服务器名称的消息框。

回到顶端使用WebBrowser 控件的注意事项使用WebBrowser 控件时应考虑以下几点:∙WebBrowser 控件异步浏览到文档。

在调用“WebBrowser1.Navigate”时,该调用会在文档完全加载之前将控制权返回给Visual C# 应用程序。

如果您打算为所包含的文档实现自动操作,则必须使用“NavigateComplete2”事件在文档完成加载后发出通知。

相关文档
最新文档