介绍
小编给大家分享一下WinForm中预览办公室文件的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
WinForm预览办公室文档的方法,具体内容如下
使用WinForm, WPF,办公室组件
原理:使办公室用COM组件将词,Excel转换为XPS文档,将WPF的主题是控件寄宿到WinForm中,实现预览。
1。新建WinForm项目
2。新建WPF用户控件,注意是WPF控件
3。编辑WPF用户控件
& lt; UserControl … ,,,,,,,在 & lt;才能Grid> ,,,& lt; DocumentViewer x: Name=癲ocumentViewer"/比; & lt;才能/Grid> & lt;/UserControl>
VS设计预览显示效果如下:
如果不需要自带的工具栏,可以添加以下资源隐藏工具栏:
& 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 滚动视图> 网格> 边界> 往ControlTemplate中加故事板动画>
4。新建WinForm用户控件
在WinForm上添加ElementHost
将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 nullWinForm中预览办公室文件的方法