首页 > 编程 > .NET > 正文

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

2024-07-10 13:29:16
字体:
来源:转载
供稿:网友

这篇文章主要用asp.net技术实现直接在线预览word、excel、txt文件,有需要的朋友可以参考下

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

 

 
  1. using System; 
  2. using System.Collections.Generic; 
  3. using System.Linq; 
  4. using System.Web; 
  5. using System.Web.Mvc; 
  6. using Microsoft.Office.Interop.Excel; 
  7. using System.Diagnostics; 
  8. using System.IO; 
  9. using Microsoft.Office.Interop.Word; 
  10. namespace Suya.Web.Apps.Areas.PMP.Controllers 
  11. /// <summary> 
  12. /// 在线预览Office文件 
  13. /// </summary> 
  14. public class OfficeViewController : Controller 
  15. #region Index页面 
  16. /// <summary> 
  17. /// Index页面 
  18. /// </summary> 
  19. /// <param name="url">例:/uploads/......XXX.xls</param> 
  20. public ActionResult Index(string url) 
  21. string physicalPath = Server.MapPath(Server.UrlDecode(url)); 
  22. string extension = Path.GetExtension(physicalPath); 
  23. string htmlUrl = ""
  24. switch (extension.ToLower()) 
  25. case ".xls"
  26. case ".xlsx"
  27. htmlUrl = PreviewExcel(physicalPath, url); 
  28. break
  29. case ".doc"
  30. case ".docx"
  31. htmlUrl = PreviewWord(physicalPath, url); 
  32. break
  33. case ".txt"
  34. htmlUrl = PreviewTxt(physicalPath, url); 
  35. break
  36. case ".pdf"
  37. htmlUrl = PreviewPdf(physicalPath, url); 
  38. break
  39. return Redirect(Url.Content(htmlUrl)); 
  40. #endregion 
  41. #region 预览Excel 
  42. /// <summary> 
  43. /// 预览Excel 
  44. /// </summary> 
  45. public string PreviewExcel(string physicalPath, string url) 
  46. Microsoft.Office.Interop.Excel.Application application = null
  47. Microsoft.Office.Interop.Excel.Workbook workbook = null
  48. application = new Microsoft.Office.Interop.Excel.Application(); 
  49. object missing = Type.Missing; 
  50. object trueObject = true
  51. application.Visible = false
  52. application.DisplayAlerts = false
  53. workbook = application.Workbooks.Open(physicalPath, missing, trueObject, missing, missing, missing, 
  54. missing, missing, missing, missing, missing, missing, missing, missing, missing); 
  55. //Save Excel to Html 
  56. object format = Microsoft.Office.Interop.Excel.XlFileFormat.xlHtml; 
  57. string htmlName = Path.GetFileNameWithoutExtension(physicalPath) + ".html"
  58. String outputFile = Path.GetDirectoryName(physicalPath) + "//" + htmlName; 
  59. workbook.SaveAs(outputFile, format, missing, missing, missing, 
  60. missing, XlSaveAsAccessMode.xlNoChange, missing, 
  61. missing, missing, missing, missing); 
  62. workbook.Close(); 
  63. application.Quit(); 
  64. return Path.GetDirectoryName(Server.UrlDecode(url)) + "//" + htmlName; 
  65. #endregion 
  66. #region 预览Word 
  67. /// <summary> 
  68. /// 预览Word 
  69. /// </summary> 
  70. public string PreviewWord(string physicalPath, string url) 
  71. Microsoft.Office.Interop.Word._Application application = null
  72. Microsoft.Office.Interop.Word._Document doc = null
  73. application = new Microsoft.Office.Interop.Word.Application(); 
  74. object missing = Type.Missing; 
  75. object trueObject = true
  76. application.Visible = false
  77. application.DisplayAlerts = WdAlertLevel.wdAlertsNone; 
  78. doc = application.Documents.Open(physicalPath, missing, trueObject, missing, missing, missing, 
  79. missing, missing, missing, missing, missing, missing, missing, missing, missing, missing); 
  80. //Save Excel to Html 
  81. object format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatHTML; 
  82. string htmlName = Path.GetFileNameWithoutExtension(physicalPath) + ".html"
  83. String outputFile = Path.GetDirectoryName(physicalPath) + "//" + htmlName; 
  84. doc.SaveAs(outputFile, format, missing, missing, missing, 
  85. missing, XlSaveAsAccessMode.xlNoChange, missing, 
  86. missing, missing, missing, missing); 
  87. doc.Close(); 
  88. application.Quit(); 
  89. return Path.GetDirectoryName(Server.UrlDecode(url)) + "//" + htmlName; 
  90. #endregion 
  91. #region 预览Txt 
  92. /// <summary> 
  93. /// 预览Txt 
  94. /// </summary> 
  95. public string PreviewTxt(string physicalPath, string url) 
  96. return Server.UrlDecode(url); 
  97. #endregion 
  98. #region 预览Pdf 
  99. /// <summary> 
  100. /// 预览Pdf 
  101. /// </summary> 
  102. public string PreviewPdf(string physicalPath, string url) 
  103. return Server.UrlDecode(url); 
  104. #endregion 

以上就是针对直接在线预览word、excel、text、pdf文件的全部内容,希望大家喜欢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表