这篇文章主要用asp.net技术实现直接在线预览word、excel、txt文件,有需要的朋友可以参考下
具体实现过程不多说了,直接贴代码了。
- 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;
- }
- 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
- }
- }
以上就是针对直接在线预览word、excel、text、pdf文件的全部内容,希望大家喜欢。
新闻热点
疑难解答
图片精选