Asp.net实现在线预览Word、Excel、PDF和TXT文件:含源码与浏览器兼容示例

10 下载量 152 浏览量 更新于2024-08-29 收藏 186KB PDF 举报
本文档详细介绍了如何在ASP.NET中实现在浏览器直接预览Word、Excel、PDF和TXT文件的功能。开发者提供了一个实用的示例,其中包含关键的代码和文件结构。以下是核心知识点的详细解析: 1. **功能概述** - 该解决方案允许用户在Web应用程序中输入文件路径,然后在用户的浏览器上显示文件内容,支持360极速浏览器(Chrome)、IE9/10以及Firefox等主流浏览器。 2. **文件和代码结构** - **DemoFiles**:这是一个存储测试用文件的文件夹,包含了各种类型的文档如Word、Excel、PDF和TXT,用于验证预览功能的正确性。 - **Default.aspx**:作为项目的启动页面,可能是用户上传文件或选择文件的地方,然后调用预览功能的接口。 - **ExcelPreview.cs**:这是一个关键类,定义了名为`Preview`的静态方法,这是整个预览功能的核心部分。它使用Microsoft Office Interop库与Excel进行交互,以读取和转换Excel文件为HTML格式。 3. **代码实现** - 在`Preview`方法中: - 创建`Microsoft.Office.Interop.Excel.Application`对象来初始化Excel应用程序。 - 使用`Workbooks.Open`方法打开指定路径的文件,并设置一些属性,如`Visible`和`DisplayAlerts`为False,以隐藏应用程序窗口并减少用户干扰。 - 生成随机名称用于保存转换后的HTML文件,如`randomName + ".html"`. - 将Excel工作簿转换为HTML格式(`xlHtml`),并保存到指定的输出目录。 - 最后,保存工作簿为HTML文件,完成预览过程。 4. **技术细节** - 利用了Microsoft Office Interop库,这是一种COM(Component Object Model)接口,允许在.NET应用程序中与Office应用(如Excel)进行交互。通过这种方式,可以读取、操作Excel文件,然后将其转换为适合浏览器显示的格式。 5. **应用场景** - 这个功能可以应用于企业内部系统、文件分享平台或者在线办公环境中,让用户无需下载文件就能直接查看各种格式的文档,提高了用户体验。 总结: 通过这篇教程,开发者能够学习到如何在ASP.NET中使用微软Office Interop库来预览不同格式的文件,并将其转换为HTML格式以便在浏览器中展示。这是一项实用的技能,有助于简化文件分享和协作流程。源代码的提供方便了直接在项目中集成和调试,无论是对于初学者还是经验丰富的开发人员,都能从中获益。
2021-12-11 上传
【核心代码】 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 using Aspose.Cells; using Aspose.Slides.Pptx; using System; using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Text; using System.Web.Http; namespace DocOnlineView.UI.Controllers.MVCAPI { public class HomeController : ApiController { [HttpGet] public DataTable CourseViewOnLine(string fileName) { DataTable dtlist = new DataTable(); dtlist.Columns.Add("TempDocHtml", typeof(string)); string fileDire = "/Files"; string sourceDoc = Path.Combine(fileDire, fileName); string saveDoc = ""; string docExtendName = System.IO.Path.GetExtension(sourceDoc).ToLower(); bool result = false; if (docExtendName == ".pdf") { //pdf模板文件 string tempFile = Path.Combine(fileDire, "temppdf.html"); saveDoc = Path.Combine(fileDire, "viewFiles/onlinepdf.html"); result = PdfToHtml( sourceDoc, System.Web.HttpContext.Current.Server.MapPath(tempFile), System.Web.HttpContext.Current.Server.MapPath(saveDoc)); } else { saveDoc = Path.Combine(fileDire, "viewFiles/onlineview.html"); result = OfficeDocumentToHtml( System.Web.HttpContext.Current.Server.MapPath(sourceDoc), System.Web.HttpContext.Current.Server.MapPath(saveDoc)); }