日期:2014-05-16  浏览次数:20924 次

asp.net word ecxel类型文件在线预览

asp.net word ecxel类型文件在线预览

首先得引用COM:

Microsoft Excel 10 Object Library

Microsoft Word 10 Object Library

?

或者是 10以上的类库

?

我现在用的是:资源下载: http://download.csdn.net/detail/panfuy/3247641?或者附件

Microsoft Excel 10 Object Library

Microsoft Word 10 Object Library

?

代码如下:

?

using System;  
using System.Data;  
using System.Configuration;  
using System.Collections;  
using System.Web;  
using System.Web.Security;  
using System.Web.UI;  
using System.Web.UI.WebControls;  
using System.Web.UI.WebControls.WebParts;  
using System.Web.UI.HtmlControls;  
using System.IO;  
using System.Diagnostics;  
using Word = Microsoft.Office.Interop.Word;  
using Excel = Microsoft.Office.Interop.Excel;  
using System.Reflection;  
using Microsoft.Office.Interop.Excel;  
  
  
public partial class upload_preview : System.Web.UI.Page  
{  
    protected void Page_Load(object sender, EventArgs e)  
    {  
  
        GenerationWordHTML("E://20110502.doc", "E://20110502.html");  
        GenerationExcelHTML("E://20110502.xls", "E://20110502.html");  
    }  
  
    /// <summary>   
    /// Ecxel文件生成HTML并保存   
    /// </summary>   
    /// <param name="FilePath">需要生成的ecxel文件的路径</param>   
    /// <param name="saveFilePath">生成以后保存HTML文件的路径</param>   
    /// <returns>是否生成成功,成功为true,反之为false</returns>   
    protected bool GenerationExcelHTML(string FilePath, string saveFilePath)  
    {  
        try  
        {  
            Excel.Application app = new Excel.Application();  
            app.Visible = false;  
            Object o = Missing.Value;  
  
            ///打开文件   
            /*下面是Microsoft Excel 9 Object Library的写法: */  
            /*_Workbook xls = app.Workbooks.Open(FilePath, o, o, o, o, o, o, o, o, o, o, o, o);*/  
  
            /*下面是Microsoft Excel 10 Object Library的写法: */  
            _Workbook xls = app.Workbooks.Open(FilePath, o, o, o, o, o, o, o, o, o, o, o, o, o, o);  
  
            ///转换格式,另存为 HTML   
            /*下面是Microsoft Excel 9 Object Library的写法: */  
            /*xls.SaveAs(saveFilePath, Excel.XlFileFormat.xlHtml, o, o, o, o, XlSaveAsAccessMode.xlExclusive, o, o, o, o);*/  
  
            /*下面是Microsoft Excel 10 Object Library的写法: */  
            xls.SaveAs(saveFilePath, Excel.XlFileFormat.xlHtml, o, o, o, o, XlSaveAsAccessMode.xlExclusive, o, o, o, o, o);  
  
            ///退出 Excel   
            app.Quit();  
            return true;  
        }  
        catch  
        {  
            return false;  
        }  
        finally  
        {  
            //最后关闭打开的excel 进程   
            Process[] myProcesses = Process.GetProcessesByName("EXCEL");  
            foreach (Process myProcess in myProcesses)  
            {  
                myProcess.Kill();  
            }  
        }  
    }  
  
    /// <summary>   
    /// WinWord文件生成HTML并保存   
    /// </summary>   
    /// <param name="FilePath">需要生成的word文件的路径</param>   
    /// <param name="saveFilePath">生成以后保存HTML文件的路径</param>   
    /// <returns>是否生成成功,成功为true,反之为false</returns>   
    private bool GenerationWordHTML(string FilePath, string saveFilePath)  
    {  
        try  
        {  
            Word.ApplicationClass word = new Word.ApplicationClass();  
            Type wordType = word.GetType();  
            Word.Documents docs = word.Documents;  
  
            /// 打开文件    
            Type docsType = docs.GetType();  
            Word.Document doc = (Word.Document)docsType.InvokeMember("Open", System.Reflecti