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>
            /// <param name="url">例:/uploads/......XXX.xls</param>
            public ActionResult Index(string url)
            {
                string physicalPath = Server.MapPath(Server.UrlDecode(url));
                string extension = Path.GetExtension(physicalPath);
    
                string htmlUrl = "";
                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;
                }
    
                return Redirect(Url.Content(htmlUrl));
            }
            #endregion
    
            #region 预览Excel
            /// <summary>
            /// 预览Excel
            /// </summary>
            public string PreviewExcel(string physicalPath, string url)
            {
                Microsoft.Office.Interop.Excel.Application application = null;
                Microsoft.Office.Interop.Excel.Workbook workbook = null;
                application = new Microsoft.Office.Interop.Excel.Application();
                object missing = Type.Missing;
                object trueObject = 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 Excel to Html
                object format = Microsoft.Office.Interop.Excel.XlFileFormat.xlHtml;
                string htmlName = Path.GetFileNameWithoutExtension(physicalPath) + ".html";
                String outputFile = Path.GetDirectoryName(physicalPath) + "\" + htmlName;
                workbook.SaveAs(outputFile, format, missing, missing, missing,
                                  missing, XlSaveAsAccessMode.xlNoChange, missing,
                                  missing, missing, missing, missing);
                workbook.Close();
                application.Quit();
                return Path.GetDirectoryName(Server.UrlDecode(url)) + "\" + htmlName;
            }
            #endregion
    
            #region 预览Word
            /// <summary>
            /// 预览Word
            /// </summary>
            public string PreviewWord(string physicalPath, string url)
            {
                Microsoft.Office.Interop.Word._Application application = null;
                Microsoft.Office.Interop.Word._Document doc = null;
                application = new Microsoft.Office.Interop.Word.Application();
                object missing = Type.Missing;
                object trueObject = 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 Excel to Html
                object format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatHTML;
                string htmlName = Path.GetFileNameWithoutExtension(physicalPath) + ".html";
                String outputFile = Path.GetDirectoryName(physicalPath) + "\" + htmlName;
                doc.SaveAs(outputFile, format, missing, missing, missing,
                                  missing, XlSaveAsAccessMode.xlNoChange, missing,
                                  missing, missing, missing, missing);
                doc.Close();
                application.Quit();
                return Path.GetDirectoryName(Server.UrlDecode(url)) + "\" + htmlName;
            }
            #endregion
    
            #region 预览Txt
            /// <summary>
            /// 预览Txt
            /// </summary>
            public string PreviewTxt(string physicalPath, string url)
            {
                return Server.UrlDecode(url);
            }
            #endregion
    
            #region 预览Pdf
            /// <summary>
            /// 预览Pdf
            /// </summary>
            public string PreviewPdf(string physicalPath, string url)
            {
                return Server.UrlDecode(url);
            }
            #endregion
    
            #region 预览图片
            /// <summary>
            /// 预览图片
            /// </summary>
            public string PreviewImg(string physicalPath, string url)
            {
                return Server.UrlDecode(url);
            }
            #endregion
    
            #region 预览其他文件
            /// <summary>
            /// 预览其他文件
            /// </summary>
            public string PreviewOther(string physicalPath, string url)
            {
                return Server.UrlDecode(url);
            }
            #endregion
    
        }
    }
    View Code
  • 相关阅读:
    安装armadillo
    windows sublime 2 破解
    ubuntu10.04安装有线网卡驱动
    x250装无线网卡驱动ubuntu
    main restricted universe muitiverse
    apt-get error
    新系統必須安裝的軟件列表
    更新ubuntu軟件源爲阿里雲腳本
    轉載:让重定向>,>>具有root权限
    margin的相关属性:
  • 原文地址:https://www.cnblogs.com/s0611163/p/4699948.html
Copyright © 2011-2022 走看看