直接在线预览Word、Excel、TXT文件之ASP.NET

具体实现过程不多说了,直接贴代码了。

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、TXT文件之ASP.NET 的全部内容, 来源链接: utcz.com/z/342969.html

回到顶部