zoukankan      html  css  js  c++  java
  • ASP.NET MVC在线预览Excel、Word、TXT、PDF文件

    
    话不多说直接上代码:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using Microsoft.Office.Interop.Excel;
    using System.Diagnostics;
    using System.IO;
    using Microsoft.Office.Interop.Word;
    
    namespace Suya.Web.Apps.Areas.PMP.Controllers
    {
        /// <summary>
        /// 在线预览Office文件
        /// </summary>
        public class OfficeViewController : Controller
        {
            #region Index页面
            /// <summary>
            /// Index页面
            /// </summary>
            /// <paramname="url">例:/uploads/......XXX.xls</param>
            public ActionResult Index(stringurl)
            {
                stringphysicalPath = Server.MapPath(Server.UrlDecode(url));
                stringextension = Path.GetExtension(physicalPath);
    
                stringhtmlUrl = "";
                switch(extension.ToLower())
                {
                   case ".xls":
                   case ".xlsx":
                       htmlUrl = PreviewExcel(physicalPath, url);
                       break;
                   case ".doc":
                   case ".docx":
                       htmlUrl = PreviewWord(physicalPath, url);
                       break;
                   case ".txt":
                       htmlUrl = PreviewTxt(physicalPath, url);
                       break;
                   case ".pdf":
                       htmlUrl = PreviewPdf(physicalPath, url);
                       break;
                   case ".jpg":
                   case ".jpeg":
                   case ".bmp":
                   case ".gif":
                   case ".png":
                       htmlUrl = PreviewImg(physicalPath, url);
                       break;
                   default:
                       htmlUrl = PreviewOther(physicalPath, url);
                       break;
                }
    
                returnRedirect(Url.Content(htmlUrl));
            }
            #endregion
    
            #region 预览Excel
            /// <summary>
            /// 预览Excel
            /// </summary>
            public string PreviewExcel(stringphysicalPath, string url)
            {
               Microsoft.Office.Interop.Excel.Application application = null;
               Microsoft.Office.Interop.Excel.Workbook workbook = null;
                application= new Microsoft.Office.Interop.Excel.Application();
                objectmissing = Type.Missing;
                objecttrueObject = true;
               application.Visible = false;
               application.DisplayAlerts = false;
                workbook =application.Workbooks.Open(physicalPath, missing, trueObject, missing, missing,missing,
                   missing, missing, missing, missing, missing, missing, missing, missing,missing);
                //Save Excelto Html
                objectformat = Microsoft.Office.Interop.Excel.XlFileFormat.xlHtml;
                stringhtmlName = Path.GetFileNameWithoutExtension(physicalPath) + ".html";
                StringoutputFile = Path.GetDirectoryName(physicalPath) + "\" + htmlName;
               workbook.SaveAs(outputFile, format, missing, missing, missing,
                                 missing, XlSaveAsAccessMode.xlNoChange, missing,
                                 missing, missing, missing, missing);
               workbook.Close();
               application.Quit();
                returnPath.GetDirectoryName(Server.UrlDecode(url)) + "\" + htmlName;
            }
            #endregion
    
            #region 预览Word
            /// <summary>
            /// 预览Word
            /// </summary>
            public string PreviewWord(stringphysicalPath, string url)
            {
               Microsoft.Office.Interop.Word._Application application = null;
               Microsoft.Office.Interop.Word._Document doc = null;
                application= new Microsoft.Office.Interop.Word.Application();
                objectmissing = Type.Missing;
                objecttrueObject = true;
                application.Visible= false;
               application.DisplayAlerts = WdAlertLevel.wdAlertsNone;
                doc =application.Documents.Open(physicalPath, missing, trueObject, missing, missing,missing,
                   missing, missing, missing, missing, missing, missing, missing, missing,missing, missing);
                //Save Excelto Html
                objectformat = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatHTML;
                stringhtmlName = Path.GetFileNameWithoutExtension(physicalPath) + ".html";
                StringoutputFile = Path.GetDirectoryName(physicalPath) + "\" + htmlName;
               doc.SaveAs(outputFile, format, missing, missing, missing,
                                 missing, XlSaveAsAccessMode.xlNoChange, missing,
                                 missing, missing, missing, missing);
                doc.Close();
               application.Quit();
                returnPath.GetDirectoryName(Server.UrlDecode(url)) + "\" + htmlName;
            }
            #endregion
    
            #region 预览Txt
            /// <summary>
            /// 预览Txt
            /// </summary>
            public string PreviewTxt(stringphysicalPath, string url)
            {
                returnServer.UrlDecode(url);
            }
            #endregion
    
            #region 预览Pdf
            /// <summary>
            /// 预览Pdf
            /// </summary>
            public string PreviewPdf(stringphysicalPath, string url)
            {
                returnServer.UrlDecode(url);
            }
            #endregion
    
            #region 预览图片
            /// <summary>
            /// 预览图片
            /// </summary>
            public string PreviewImg(stringphysicalPath, string url)
            {
                returnServer.UrlDecode(url);
            }
            #endregion
    
            #region 预览其他文件
            /// <summary>
            /// 预览其他文件
            /// </summary>
            public string PreviewOther(stringphysicalPath, string url)
            {
                returnServer.UrlDecode(url);
            }
            #endregion
        }
    }



  • 相关阅读:
    【PAT甲级】1063 Set Similarity (25 分)
    【PAT甲级】1062 Talent and Virtue (25 分)
    【PAT甲级】1061 Dating (20 分)
    Codeforces Global Round 5E(构造,思维)
    Codeforces Round #592 (Div. 2)G(模拟)
    POJ 刷题进程.1
    登录页面 (带遮罩层的) ---2017-04--5
    回答: 2017-03-19的关于css+div布局的疑问 2017-04-05
    关于js高度和宽度的获取 ----2017-03-29
    如何用写js弹出层 ----2017-03-29
  • 原文地址:https://www.cnblogs.com/itrena/p/7434071.html
Copyright © 2011-2022 走看看