WinForm中预览办公室文件的方法

  介绍

小编给大家分享一下WinForm中预览办公室文件的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!

WinForm预览办公室文档的方法,具体内容如下

使用WinForm, WPF,办公室组件

原理:使办公室用COM组件将词,Excel转换为XPS文档,将WPF的主题是控件寄宿到WinForm中,实现预览。

1。新建WinForm项目

2。新建WPF用户控件,注意是WPF控件

 WinForm中预览办公室文件的方法

3。编辑WPF用户控件

& lt; UserControl …   ,,,,,,,在   & lt;才能Grid>   ,,,& lt; DocumentViewer  x: Name=癲ocumentViewer"/比;   & lt;才能/Grid>   & lt;/UserControl>

VS设计预览显示效果如下:

 WinForm中预览办公室文件的方法

如果不需要自带的工具栏,可以添加以下资源隐藏工具栏:

& lt; !——隐藏是边框——比;   & lt; UserControl.Resources>   & lt;才能Style  x:关键=皗x: Type }主题是“,TargetType=皗x: Type }主题是“比;   ,,,& lt; Setter 财产=癋oreground",价值=https://www.yisu.com/zixun/眥DynamicResource {x:静态SystemColors。WindowTextBrushKey}} "/>               <往ControlTemplate中加故事板动画TargetType=" {x:类型是}">   <边境BorderThickness=" {TemplateBinding BorderThickness}”BorderBrush=" {TemplateBinding BorderBrush} " Focusable="假">   <网格KeyboardNavigation.TabNavigation=氨镜亍?                                 0.5                  网格>         

4。新建WinForm用户控件

 WinForm中预览办公室文件的方法

在WinForm上添加ElementHost

 WinForm中预览办公室文件的方法

将WPF用户控件添加到ElementHost上,设计器代码XpsPreviewer.Designer。cs如下

,//ElementHost   private 才能;System.Windows.Forms.Integration.ElementHost  elementHost1;//XpsPreviewer才能变量   private 才能;WPF.XpsPreviewer  xpsPreviewer1;      private 才能;void  InitializeComponent ()   {才能   ,,,this.elementHost1 =, new  System.Windows.Forms.Integration.ElementHost ();   ,,,this.xpsPreviewer1 =, new  WPF.XpsPreviewer ();      ,,,//初始化   ,,,//其他属性初始化……   ,,,this.elementHost1.Child =, this.xpsPreviewer1;   ,,,//其他属性初始化……   以前,,}

在XpsPreviewer。cs后台代码中定义方法:

,,///, & lt; summary>///,才能加载XPS文件///才能,& lt;/summary>///才能,& lt; param  name=癴ileName"在XPS文件名& lt;/param>   internal 才能;void  LoadXps (string 文件名)   {才能   ,,,var  xpsDocument =, new 预(文件名,,FileAccess.Read);   ,,,this.xpsPreviewer1.documentViewer.Document =, xpsDocument.GetFixedDocumentSequence ();   ,,,xpsDocument.Close ();   以前,,}

5。将Excel (Word类似)转换为XPS文件

通过Nuget包管理控制台安装COM组件:

PM>安装包Microsoft.Office.Interop。Excel

转换为XPS:

,,///, & lt; summary>///,才能将Excel文件转换为XPS文件///才能,& lt;/summary>///才能,& lt; param  name=癳xecelFileName"在Excel文件名& lt;/param>///才能,& lt; param  name=皒psFileName"在转换的xps文件名& lt;/param>   public 才能;void  ConvertExcelToXps (string  excelFileName, string  xpsFileName)   {才能   ,,,if  (string.IsNullOrWhiteSpace (excelFileName))   ,,,,,throw  new  ArgumentNullException (excelFileName);   ,,,if  (string.IsNullOrWhiteSpace (xpsFileName))   ,,,,,throw  new  ArgumentNullException (xpsFileName);      null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

WinForm中预览办公室文件的方法