麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

office文件在網(wǎng)頁中顯示

2019-11-14 16:12:07
字體:
供稿:網(wǎng)友

1.如何在網(wǎng)頁上顯示WordExcel

  a.可以使用office組件aspose將word 和excel 轉(zhuǎn)換為pdf 然后在網(wǎng)頁上打開pdf,但是效果不是很好

    .比如說excel 多個工作薄不是按exce 格式顯示出來,寬度大小,不好控制(?).

  b.可以使用office組件或aspose將文檔轉(zhuǎn)換為html,但是轉(zhuǎn)換為html 會產(chǎn)生額外的xmlCSS和圖片文件.(當(dāng)文件保存到服務(wù)器其他盤符中,

    文件流讀取html,只好訪問html頁面,其他html附帶的 css和圖片和xml,無權(quán)限訪問,文件流也不好同時讀取他們幾個(?).

  c.可以使用其他轉(zhuǎn)換,比如http://www.cutepdf.com/(?),或者用文件流讀取再轉(zhuǎn)換(沒試過)

  d.最好將文件轉(zhuǎn)換為Mhtml格式的,這是因為Mhtml是個單個網(wǎng)頁文件.(主要是便于文件流讀取放在本地的文件)

     Mhtml稱為聚合html文檔web文檔或單一文件網(wǎng)頁應(yīng)用于(asscss,word,excel)是單個網(wǎng)頁 文件可將網(wǎng)站所有元素(包括聲音,圖片)保存到單個mhtml文件中.

2.對于項目而言如何上傳文件,文件上傳到哪兒,如何保存這些上傳文件

  a.可以將文件上傳到asp.net項目當(dāng)中,但是據(jù)說項目越來越大影響后期運行效率,不利于維護(hù),沒有驗證過.

  b.可以將文件用數(shù)據(jù)流讀取保存到數(shù)據(jù)庫當(dāng)中,沒有實踐過(?).

  b.可以將文件上傳到服務(wù)器本地磁盤當(dāng)中,便于對文件的操作和管理.

      A.如果上傳到服務(wù)器讀取轉(zhuǎn)換的網(wǎng)頁文件

  B.上傳到數(shù)據(jù)庫轉(zhuǎn)換成網(wǎng)頁文件(沒試過)(?)

  C.上傳到服務(wù)器項目外的其他文件中,好像微軟在asp.net上面出于安全考慮并不支持直接訪問站點外的文件(?),其他類型開發(fā)不清楚支不支持,

   所以才必須將office裝換位單個網(wǎng)頁文件Mhtml,用文件流的方式讀取顯示在網(wǎng)頁上,

    1)可以使用添加虛擬目錄,就是在服務(wù)器上添加虛擬目錄路徑,映射到絕對路徑目錄上就是指向你要訪問的圖片路徑,在Vs開發(fā)中新建上傳文件夾,

      只是在發(fā)布文件后的ISS上, 做改動,將原有文件夾變?yōu)樘摂M路徑文件,不過還是按照Server.MapPath(@"~/new_ams/file/" + fileName)獲取路徑,

      (?)具體還沒實踐過.

    2)可以將用文件流讀取本地文,參考代碼http://www.companysz.com/insus/archive/2013/02/05/2892678.html,

     但是有一點文件流好像只可以讀取單個文件(?),不可以讀取同時讀取html +外部CSS+圖片,所以運用前面的方法將文件轉(zhuǎn)換為Mhtml格式的,

              當(dāng)Office轉(zhuǎn)化為來的Mhtml用文件流讀取時web頁面顯示的是Hmtl的亂碼內(nèi)容,原因是解碼問題,具體參考 

          參考鏈接 http://www.companysz.com/SanMaoSpace/archive/2013/03/02/2941078.htm

            

3.利用office 自帶的組件將office轉(zhuǎn)換為Html

        用Office組件將Office轉(zhuǎn)換為Html,參考鏈接  http://zhidao.baidu.com/link?url=AvlZUEusXh7C

  a.引用office組件,如果office 沒有激活,最好激活和添加開發(fā)模式的(?),在vs添加引用里面程序集,如果引用失敗,右擊程序集屬性

    ,嵌入互操類改為False,為什么改為false(?). using Word = Microsoft.Office.Interop.Word; using Excel = Microsoft.Office.Interop.Excel;

  b.如何將office 轉(zhuǎn)變?yōu)閱我痪W(wǎng)頁文件Mhtml,當(dāng)時這個問題搞了一天結(jié)果是應(yīng)該選擇wdFormatWebArchive ,

    Web 檔案格式,他是不帶Mhtml的單次,說明中也沒提示。

  c.但是,由于某些原因(權(quán)限,配置)在服務(wù)器上不可運行,具體解決方法,有待探究.

       文件出自:http://www.companysz.com/mark01/p/4244197.html

 

 

       /// <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            {                FilePath = @"D:/a/請假審批表.doc";                saveFilePath = @"D:/a/請假審批表.html";                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.Reflection.BindingFlags.InvokeMethod, null, docs, new Object[] { FilePath, true, true });                /// 轉(zhuǎn)換格式,另存為 HTML                    Type docType = doc.GetType();                /*下面是Microsoft Word 9 Object Library的寫法: */                /*docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, null, doc, new object[] { saveFilePath, Word.WdSaveFormat.wdFormatHTML });*/                /*下面是Microsoft Word 10 Object Library的寫法: */                docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod,                null, doc, new object[] { saveFilePath, Word.WdSaveFormat.wdFormatFilteredHTML });                /// 退出 Word                   wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null);                return true;            }            catch            {                return false;            }            finally            {                //最后關(guān)閉打開的winword 進(jìn)程                   Process[] myProcesses = Process.GetProcessesByName("WINWORD");                foreach (Process myProcess in myProcesses)                {                    myProcess.Kill();                }            }        }        /// <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            {                FilePath = @"D:/a/申購單.xlsx";                saveFilePath = @"D:/a/申購單.html";                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的寫法: */               Excel._Workbook xls = app.Workbooks.Open(FilePath, o, o, o, o, o, o, o, o, o, o, o, o, o, o);                ///轉(zhuǎn)換格式,另存為 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, Excel.XlSaveAsAccessMode.xlExclusive, o, o, o, o, o);                ///退出 Excel                   app.Quit();                return true;            }            catch            {                return false;            }            finally            {                //最后關(guān)閉打開的excel 進(jìn)程                   Process[] myProcesses = Process.GetProcessesByName("EXCEL");                foreach (Process myProcess in myProcesses)                {                    myProcess.Kill();                }            }        }
officeCom,用office組件將Office轉(zhuǎn)換為Html
   string parameter = context.Request.QueryString["file"];            context.Response.ContentType = "message/rfc822";            FileStream fs = new FileStream(parameter, FileMode.Open,   FileAccess.Read);            BinaryReader br = new BinaryReader(fs);            Byte[] bytes = br.ReadBytes((Int32)fs.Length);            br.Close();            fs.Close();            context.Response.OutputStream.Write(bytes,                                               0,bytes.Length);         
文件流讀取本地文件
            FileStream fileStream = new FileStream(fileResPath, FileMode.Open);            long fileSize = fileStream.Length;            byte[] fileBuffer = new byte[fileSize];            fileStream.Read(fileBuffer, 0, (int)fileSize);            //如果不寫fileStream.Close()語句,用戶在下載過程中選擇取消,將不能再次下載            fileStream.Close();            Context.Response.ContentType = "application/octet-stream";            Context.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName.Substring(19), Encoding.UTF8));            Context.Response.AddHeader("Content-Length", fileSize.ToString());            Context.Response.BinaryWrite(fileBuffer);            Context.Response.End();            Context.Response.Close();
文件流下載本地文件

總結(jié):我認(rèn)為最好的辦法, 上傳為offfice文件時,就將office轉(zhuǎn)換為Mhtml (可以通過Office組件,或者aspose),將他們同時保存到服務(wù)器本地的其他文件中

,然后再用文件流讀取office 和Mhtml ,剛開始就生成mhtml 方便后者的每次預(yù)覽都要生成,速度較慢,保存到服務(wù)器本地完全是減少項目壓力.便于數(shù)據(jù)管理操作.

 

$經(jīng)過幾個星期的磨蹭,感覺用com 組件做,在服務(wù)器上對訪問權(quán)限做配置,因為不太了解,所以還是放棄,但是可以實現(xiàn)當(dāng)然在本地可以運行(?)

,具體解決方法在我的后面一節(jié)有所說明,用aspose 沒有破解版的,最新版本的aspose.cell  可以將excel 轉(zhuǎn)換為Mhtml

 aspose :https://code.msdn.microsoft.com/Applying-Conditional-af9e0e4f/view/Discussions#content

  

 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 7777奇米成人四色影视 | 毛片免费看网站 | 一级免费看片 | 成人午夜天堂 | 粉嫩粉嫩一区二区三区在线播放 | 亚洲成人福利在线观看 | 一级片久久免费 | 黄色毛片免费看 | 久久久久一区二区三区四区五区 | 久久精品亚洲精品国产欧美kt∨ | a一级黄色大片 | 欧美在线观看视频一区二区 | 久久av一区二区 | 国产精品一区二区x88av | 日韩精品久久久久久久电影99爱 | 看免费5xxaaa毛片 | 精品久久久久久综合日本 | 欧美a∨一区二区三区久久黄 | 久久国产精品一区 | 看免费一级毛片 | av成人在线播放 | v11av在线播放 | 中国av中文字幕 | 牛牛热这里只有精品 | 国产69久久精品成人看 | 中文字幕在线永久视频 | 成人在线视频精品 | 最近中文字幕一区二区 | 免费黄色在线电影 | 天堂在线资源av | 久久久久一区二区三区四区五区 | 黄色a级片免费观看 | 高潮娇喘嗯啊~文字 | 成人区一区二区 | 欧美日本不卡 | 中文字幕在线永久视频 | 黄色成人小视频 | 国产精品一区二区三区99 | 久久羞羞 | 狠狠干最新网址 | 欧美精品久久天天躁 |