C#中mvc模式在线预览Office(word 可编辑、txt)文件

来源:互联网 发布:软件测试薪资 编辑:程序博客网 时间:2024/06/08 14:28
 
 /// <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;            }            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    }


原文地址:http://www.jb51.net/article/70561.htm

阅读全文
0 0
原创粉丝点击