我想创建简单的文件查看器。 我应该使用什么控件来查看我的应用程序中的office文档(word,excel)。
答案 0 :(得分:3)
How to use the WebBrowser control to open Office documents in Visual C# 2005 or in Visual C# .NET
如果您使用的是较新版本的Office,则可以通过OpenXML SDK处理文档。有一些基于OOXML的库具有更高级别的抽象,如DocX或OpenXML Document Viewer。但是你必须自己实现查看器控件。
答案 1 :(得分:2)
旧版本的Office用于支持OLE嵌入,允许您在DsoFramer控件的Web浏览器中显示其内容。那些日子结束了,DsoFramer不再可用,Office版〜2007在他们自己的程序中打开文档。你不能再做这项工作了。
答案 2 :(得分:2)
@ hans-passant:但我是通过DsoFramer组件来做的。该组件适用于Word 2007和Word 2010.使用这种方式有很多功能。 欢呼声。
答案 3 :(得分:0)
对我们有用的是将文档下载到本地工作站。将其存储在用户个人文件夹路径中的某个位置。使用系统上安装的软件进行显示。
使用以下方法获取个人文件夹路径:
Environment.GetFolderPath(Environment.SpecialFolder.Personal)
将所需文件下载到该路径。
然后使用以下内容向文件外壳:
if (File.Exists(fullLocalDocumentPath) == true)
{
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.EnableRaisingEvents = false;
proc.StartInfo.FileName = fullLocalDocumentPath;
proc.Start();
}
这将使用OS配置的程序(基于文件扩展名)打开文件并显示它。这不是一个完美的解决方案,但它确实对我们有用,可能符合您的需求。
警告是:
仅显示具有映射到应用程序的扩展名的文件
打开应用程序副本以显示文件
您应该提供一些机制来清除个人
文件夹中的下载文件。
使用此技术经常“正常工作”的文件扩展名:
* .doc,* .docx,*。xls, .xlsx(docx和xlsx是Office 2007及以上版本)
.pdf(每个人都安装了这个,对吗?)
.xps(如果安装了.NET将会工作,如果运行.NET程序,这将不是问题)
.TXT
可能的工作:
* .pptx(需要电源点)
只有安装了专业软件才能工作:
Visio文件,Autocad等...
即使用户没有安装Office,这也可以工作。用户只需安装MS的免费阅读器应用程序。