如何将Word、Excel、PowerPoint嵌入WPF应用程序?大部分人应该都记得可以将Excel图表嵌入到Word文档中的OLE技术,但该技术并不支持所有的Microsoft Office文档。它不支持表单中的多个MS Word实例。而Edraw office viewer component对于开发人员可以说是最简单的可以将Word文档、Excel工作表、PowerPoint演示文稿嵌入到WPF应用程序中的解决方案。
本文将演示如何逐步嵌入MS Word到wpf应用程序中。如果你没有officeviewer.ocx文件,请先安装。在组件安装文件夹中,你还可以找到wpf示例项目。
安装地址:https://www.evget.com/product/2071/download
打开Visual Studio并创建一个新的WPF应用程序。右键单击WpfApplication1解决方案。然后单击“Add”菜单并选择“User Control...”。
wpf项目中将会增加一个新的窗体。选择“User Control”项。不是“User Control(WPF)”项。双击解决方案面板中的UserControl1.CS。打开“工具箱”面板,然后单击菜单中的“ Choose Items...”。
在弹出的“Choose Toolbox Items”对话框中,选择“Edraw Office Viewer Component”,然后单击“确定”。
现在,Edraw Office Viewer Component已添加到工具箱的“常规”选项卡中。在UserControl窗体中拖动它。
通过Visual Studio将AxEDofficeLib和EDOfficeLib添加到该解决方案中。
输入打开word文档的C#代码,并保护word文档的修改如下所示:
using System;using System.Collections.Generic;using System.ComponentModel;using System.Drawing;using System.Data;using System.Linq;using System.Text;using System.Windows.Forms;namespace WpfApplication1 { public partial class UserControl1 : UserControl{ public UserControl1(){ InitializeComponent();} public void Open(){ axEDOffice1.OpenFileDialog();} public void Protect(){ if (axEDOffice1.GetCurrentProgID() == "Word.Application"){ axEDOffice1.ProtectDoc(2);} } public void Print(){ axEDOffice1.PrintPreview();} public void Close(){ axEDOffice1.ExitOfficeApp();} } } |
最后,你需要为UserControl编写主机窗口。切换到Windows1.xaml文件,然后添加打开、保护、打印和关闭的按钮,如图所示。
添加以下c#代码来关联office component。
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Windows;using System.Windows.Controls;using System.Windows.Data;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Imaging;using System.Windows.Navigation;using System.Windows.Shapes;namespace WpfApplication1 { public partial class Window1 : Window{ public Window1(){ InitializeComponent();} private void Open_Click(object sender, RoutedEventArgs e){ _host.Open();} private void Protect_Click(object sender, RoutedEventArgs e){ _host.Protect();} private void Print_Click(object sender, RoutedEventArgs e){ _host.Print();} private void Close_Click(object sender, RoutedEventArgs e){ _host.Close();} } } |
打开配置管理器。将Active Solution平台更改为x86选项。然后建立并运行。
Office Viewer component支持所有版本的MS Word。要将MS Excel或PowerPoint Visio、Project嵌入到WPF应用程序中,你只需要调用Open方法,如下所示:
public void Open() { //axEDOffice1.OpenFileDialog();axEDOffice1.Open(sPath, "Word.Application");axEDOffice1.Open(sPath, "Excel.Application");axEDOffice1.Open(sPath, "PowerPoint.Application");axEDOffice1.Open(sPath, "Visio.Application");axEDOffice1.Open(sPath, "MSProject.Application");} |