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文件的全部内容,希望大家喜欢。
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有