• 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
        }
    }



  • 相关阅读:
    JVM Ecosystem Report 2020
    TiDB 简介
    Docker镜像分层打包方案
    Promethues + Grafana + AlertManager使用总结
    Spring Boot自动注入原理
    Spring Boot 2.x 自定义Endpoint
    Oracle 等待事件 Enq: CF
    1000行MySQL学习笔记
    PostgreSQL DBA常用SQL查询语句
    MongoDB DBA常用的NoSQL语句
  • 原文地址:https://www.cnblogs.com/itrena/p/7434071.html
Copyright © 2020-2023  润新知