C#在线预览文档(word,excel,pdf,txt,png)
来源:互联网 发布:从1688复制到淘宝店 编辑:程序博客网 时间:2024/05/16 15:10
C#在线预览文档(word,excel,pdf,txt,png)
1、预览方式:将word文件转换成html文件然后预览html文件
2、预览word文件:需要引入Interop.Microsoft.Office.Interop.Word.dll(Com组件)
3、预览Excel文件:需要引入Interop.Microsoft.Office.Interop.Excel.dll(Com组件,Microsoft Excel 12.0(or other version) Object Library)
4、PDF文件直接嵌入到浏览器中进行查看,无需转换(需安装pdf阅读器)
5、文本文件直接嵌入到浏览器进行查看,无需转换
6、图片文件直接嵌入到浏览器进行查看,无需转换
Excel预览方法using Microsoft.Office.Interop.Excel;using System;using System.Collections;using System.Collections.Generic;using System.Diagnostics;using System.Linq;using System.Web;/// <summary>/// Summary description for ExcelPreview/// </summary>public class ExcelPreview{ 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(); }}Pdf类using Microsoft.Office.Interop.Word;using System;using System.Collections.Generic;using System.Diagnostics;using System.IO;using System.Linq;using System.Web;/// <summary>/// Summary description for WordPreview/// </summary>public class PDFPreview{ 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(); }}Word预览方法using Microsoft.Office.Interop.Word;using System;using System.Collections.Generic;using System.Diagnostics;using System.IO;using System.Linq;using System.Web;/// <summary>/// Summary description for WordPreview/// </summary>public class WordPreview{ public static void Priview(System.Web.UI.Page p, string inFilePath, string outDirPath = "") { object missingType = Type.Missing; object readOnly = true; object isVisible = false; object documentFormat = 8; string randomName = DateTime.Now.Ticks.ToString(); object htmlFilePath = outDirPath + randomName + ".htm"; string directoryPath = outDirPath + randomName + ".files"; object filePath = inFilePath; //Open the word document in background ApplicationClass applicationclass = new ApplicationClass(); applicationclass.Documents.Open(ref filePath, ref readOnly, ref missingType, ref missingType, ref missingType, ref missingType, ref missingType, ref missingType, ref missingType, ref missingType, ref isVisible, ref missingType, ref missingType, ref missingType, ref missingType, ref missingType); applicationclass.Visible = false; Document document = applicationclass.ActiveDocument; //Save the word document as HTML file document.SaveAs(ref htmlFilePath, ref documentFormat, ref missingType, ref missingType, ref missingType, ref missingType, ref missingType, ref missingType, ref missingType, ref missingType, ref missingType, ref missingType, ref missingType, ref missingType, ref missingType, ref missingType); //Close the word document document.Close(ref missingType, ref missingType, ref missingType); #region Read the Html File as Byte Array and Display it on browser //byte[] bytes; //using (FileStream fs = new FileStream(htmlFilePath.ToString(), FileMode.Open, FileAccess.Read)) //{ // BinaryReader reader = new BinaryReader(fs); // bytes = reader.ReadBytes((int)fs.Length); // fs.Close(); //} //p.Response.BinaryWrite(bytes); //p.Response.Flush(); //p.Response.End(); #endregion Process process = new Process(); process.StartInfo.UseShellExecute = true; process.StartInfo.FileName = htmlFilePath.ToString(); process.Start(); #region Delete the Html File and Diretory 删除生成的文件 //File.Delete(htmlFilePath.ToString()); //foreach (string file in Directory.GetFiles(directoryPath)) //{ // File.Delete(file); //} //Directory.Delete(directoryPath); #endregion }}文本预览方法using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Web;/// <summary>/// Summary description for TextFilePreview/// </summary>public class TextFilePreview{ 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(); }} 图片预览方法using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Web;/// <summary>/// Summary description for TextFilePreview/// </summary>public class TextFilePreview{ public static void Preview(System.Web.UI.Page p, string inFilePath) { string fileName = inFilePath.Substring(inFilePath.LastIndexOf('\\') + 1); p.Response.ContentType = "images/*"; p.Response.ContentEncoding = System.Text.Encoding.UTF8; p.Response.AddHeader("content-disposition", "filename=" + fileName); p.Response.WriteFile(inFilePath); p.Response.End(); }} 以上的pdf,txt,图片这个三种方式在MVC下不可用,在aspx界面可用。研究后进行了更改 以上是转成html进行预览,预览效果不是太好。以下是转成pdf预览代码 1 新建windows应用程序项目 2 3 添加以下com组件的引用 4 5 Microsoft Word 12.0 Object Library 6 7 Microsoft PowerPoint 12.0 Object Library 8 9 Microsoft Excel 12.0 Object Library 10 11 12 13 ------------------------------------------------------ 14 15 using Word = Microsoft.Office.Interop.Word; using Excel = Microsoft.Office.Interop.Excel; using PowerPoint = Microsoft.Office.Interop.PowerPoint; 16 17 using Microsoft.Office.Core; 18 19 20 21 我们可以使用一个枚举类型来决定生成文件的类型 22 23 Word.WdExportFormat wd = Microsoft.Office.Interop.Word.WdExportFormat.wdExportFormatPDF; 24 25 Excel.XlFixedFormatType excelType = Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF; PowerPoint.PpSaveAsFileType ppType = Microsoft.Office.Interop.PowerPoint.PpSaveAsFileType.ppSaveAsPDF; 26 27 28 //将word文档转换成PDF格式 29 private bool Convert(string sourcePath, string targetPath, Word.WdExportFormat exportFormat) 30 { 31 bool result; 32 object paramMissing = Type.Missing; 33 Word.ApplicationClass wordApplication = new Word.ApplicationClass(); 34 Word.Document wordDocument = null; 35 try 36 { 37 object paramSourceDocPath = sourcePath; 38 string paramExportFilePath = targetPath; 39 40 Word.WdExportFormat paramExportFormat = exportFormat; 41 bool paramOpenAfterExport = false; 42 Word.WdExportOptimizeFor paramExportOptimizeFor = 43 Word.WdExportOptimizeFor.wdExportOptimizeForPrint; 44 Word.WdExportRange paramExportRange = Word.WdExportRange.wdExportA
后来又改了几次方式。可以采用点聚的weboffice对word和excel,ppt进行展示,这样展示效果比较好。而且可以进行编辑
0 0
- C#在线预览文档(word,excel,pdf,txt,png)
- Android实现在线预览office文档(Word,Pdf,excel,PPT.txt等格式)
- ASP.NET MVC在线预览Excel、Word、TXT、PDF文件
- 类似百度文库在线预览文档flash版(支持word、excel、ppt、pdf)+在线预览文档html版
- 类似百度文库在线预览文档flash版(支持word、excel、ppt、pdf)+在线预览文档html版
- 类似百度文库在线预览文档flash版(支持word、excel、ppt、pdf)+在线预览文档html版
- 类似百度文库在线预览文档flash版(支持word、excel、ppt、pdf)+在线预览文档html版
- 类似百度文库在线预览文档flash版(支持word、excel、ppt、pdf)+在线预览文档html版
- java通过url在线预览Word、excel、ppt、pdf、txt文档中的内容【只获得其中的文字】
- JQuery在线生成word、pdf、excel、txt等文档
- 使用PageOffice实现文档(word,excel,pdf)在线预览编辑
- 使用PageOffice实现文档(word,excel,pdf)在线预览编辑
- 在线预览WORD文档,PDF文档
- 在线文档格式转换API word,excel,ppt等在线文件转pdf、png
- word文档 pdf在线预览方案
- apache poi操作office文档----java在线预览txt、word、ppt、execel,pdf代码
- 类似百度文库在线预览文档flash版(支持word、excel、ppt、pdf)
- Word,Excel,Powerpoint,Txt,Pdf 等文档的在线浏览的实现
- 对象序列化对于一个对象被多个对象共享的处理方法
- 第17课:Spark Streaming资源动态申请和动态控制消费速率原理剖析
- laravel5.2.3入门(一)
- Middle-题目83:49. Group Anagrams
- HDU 还是畅通工程
- C#在线预览文档(word,excel,pdf,txt,png)
- Java字符串截取
- 如何阅读java项目的源代码
- 欢迎使用CSDN-markdown编辑器
- Android5.0改变support中AlertDialog的样式
- Android自定义竖直SeekBar Android5.0可以用
- android:configChanges="screenSize | orientation | keyboardHidden"
- Android自动化测试之Robotium学习(一)
- Paxos算法细节详解(一)--通过现实世界描述算法