Asp.net實(shí)現(xiàn)直接在瀏覽器預(yù)覽Word、Excel、PDF、Txt文件(附源碼)
1.功能說明
輸入文件路徑,在瀏覽器輸出文件預(yù)覽信息,經(jīng)測(cè)試360極速(Chrome)、IE9/10、Firefox通過
2.分類文件及代碼說明
DemoFiles 存放可測(cè)試文件
Default.aspx 啟動(dòng)頁
ExcelPreview.cs Excel預(yù)覽類
public static void Priview(System.Web.UI.Page p, string inFilePath, string outDirPath = "")
{
Microsoft.Office.Interop.Excel.Application excel = null;
Microsoft.Office.Interop.Excel.Workbook xls = null;
excel = new Microsoft.Office.Interop.Excel.Application();
object missing = Type.Missing;
object trueObject = true;
excel.Visible = false;
excel.DisplayAlerts = false;
string randomName = DateTime.Now.Ticks.ToString(); //output fileName
xls = excel.Workbooks.Open(inFilePath, 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;
Workbook wsCurrent = xls;//(Workbook)wsEnumerator.Current;
String outputFile = outDirPath + randomName + ".html";
wsCurrent.SaveAs(outputFile, format, missing, missing, missing,
missing, XlSaveAsAccessMode.xlNoChange, missing,
missing, missing, missing, missing);
excel.Quit();
//Open generated Html
Process process = new Process();
process.StartInfo.UseShellExecute = true;
process.StartInfo.FileName = outputFile;
process.Start();
}
4.PDfPreview.cs Pdf預(yù)覽類
public static void Priview(System.Web.UI.Page p, string inFilePath)
{
p.Response.ContentType = "Application/pdf";
string fileName = inFilePath.Substring(inFilePath.LastIndexOf('\\') + 1);
p.Response.AddHeader("content-disposition", "filename=" + fileName);
p.Response.WriteFile(inFilePath);
p.Response.End();
}
5.TextFilePreview.cs 文本文件預(yù)覽類
public static void Preview(System.Web.UI.Page p, string inFilePath)
{
string fileName = inFilePath.Substring(inFilePath.LastIndexOf('\\') + 1);
p.Response.ContentType = "text/plain";
p.Response.ContentEncoding = System.Text.Encoding.UTF8; //保持和文件的編碼格式一致
p.Response.AddHeader("content-disposition", "filename=" + fileName);
p.Response.WriteFile(inFilePath);
p.Response.End();
}
6. WordPreview.cs Word預(yù)覽類
7.Readme.txt 說明了基本功能及引用Com組件的方法(首先需要安裝office),需引入的組件包括
Microsoft Word 15.0
Microsoft Excel 15.0

預(yù)覽效果
1、Word

2、Excel

3、Pdf

4、Txt

未解決的問題
Pdf、txt文件只能在當(dāng)前頁顯示,并導(dǎo)致后退鍵無效,請(qǐng)各位幫忙解決此兩種文件和doc、xls一樣在新的tab中打開
5.源碼下載:http://xiazai.jb51.net/201612/yuanma/FilePreviewInBrowser_jb51.rar
以上就是本文的全部內(nèi)容,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作能帶來一定的幫助,同時(shí)也希望多多支持腳本之家!
- C#實(shí)現(xiàn)pdf導(dǎo)出 .Net導(dǎo)出pdf文件
- ASP.NET實(shí)現(xiàn)將word文檔轉(zhuǎn)換成pdf的方法
- asp.net 按指定模板導(dǎo)出word,pdf實(shí)例代碼
- ASP.NET MVC 項(xiàng)目直接預(yù)覽PDF文件
- 詳解開源免費(fèi)且穩(wěn)定實(shí)用的.NET PDF打印組件itextSharp(.NET組件介紹之八)
- asp.net實(shí)現(xiàn)將ppt文檔轉(zhuǎn)換成pdf的方法
- ASP.NET保存PDF、Word和Excel文件到數(shù)據(jù)庫
- 如何使用Rotativa在ASP.NET Core MVC中創(chuàng)建PDF詳解
相關(guān)文章
一個(gè)基于Asp.Net MVC的權(quán)限方案
最近這段時(shí)間博客園有幾位同學(xué)在探討通用的權(quán)限方案,偶閑來無事,也來湊湊熱鬧,下面簡單說一下我的簡單解決方案,基于AOP的。由于使用了Asp.Net MVC 開發(fā),可能需要先對(duì)MVC有些了解,思路都是差不多的。2010-02-02
在ASP.Net中實(shí)現(xiàn)flv視頻轉(zhuǎn)換的代碼
在ASP.Net中實(shí)現(xiàn)flv視頻轉(zhuǎn)換的代碼...2007-09-09
Xamarin渲染器移植到.NET?MAUI項(xiàng)目中
這篇文章介紹了Xamarin渲染器移植到.NET?MAUI項(xiàng)目中的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02
aspnetcore 實(shí)現(xiàn)簡單的偽靜態(tài)化功能
這篇文章主要介紹了aspnetcore 實(shí)現(xiàn)簡單的偽靜態(tài)化功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
ADO調(diào)用分頁查詢存儲(chǔ)過程的實(shí)例講解
下面小編就為大家分享一篇ADO調(diào)用分頁查詢存儲(chǔ)過程的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2017-12-12
asp.net網(wǎng)站的404錯(cuò)誤頁面的正確設(shè)置方法
asp.net網(wǎng)站的404錯(cuò)誤頁面的正確設(shè)置方法,需要的朋友可以參考下。2010-05-05
asp.net省市三級(jí)聯(lián)動(dòng)的DropDownList+Ajax的三種框架(aspnet/Jquery/ExtJs)示例
前段時(shí)間需要作一個(gè)的Web前端應(yīng)用,需要用多個(gè)框架,一個(gè)典型的應(yīng)用場(chǎng)景是省市三級(jí)聯(lián)動(dòng),基于此應(yīng)用,特將三種主要的ajax框架略作整理,方便有需要的朋友查閱。2010-06-06

