欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Asp.Net在線預(yù)覽Word文檔的解決方案與思路詳解

 更新時(shí)間:2022年04月26日 08:31:20   作者:暢飲無(wú)緒  
這篇文章主要介紹了Asp.Net在線預(yù)覽Word文檔的解決方案與思路,大致思路是先將Word文檔轉(zhuǎn)換Html,再預(yù)覽Html,需要注意電腦安裝Office,需要的朋友可以參考下

前幾天有個(gè)老項(xiàng)目找到我,有多老呢?比我工作年限都長(zhǎng),見(jiàn)到這個(gè)項(xiàng)目我還得叫一聲前輩。

這個(gè)項(xiàng)目目前使用非常穩(wěn)定,十多年了沒(méi)怎么更新過(guò),現(xiàn)在客戶想加一個(gè)小功能:在線預(yù)覽Word文檔

首先想到的是用第三方的服務(wù),例如WPS的開(kāi)放平臺(tái)。

剛看完文檔,客戶來(lái)了句,要一次性的哦,后續(xù)再付費(fèi)的通通不要。

得嘞,換其他方案吧。

項(xiàng)目特點(diǎn)

Asp.Net不帶Core,.NET Framework 4.0,部署在Windows平臺(tái)上。

解決方案

大致思路:先將Word文檔轉(zhuǎn)換Html,再預(yù)覽Html。

1、Word文檔轉(zhuǎn)Html

先引用OfficeDLL,在COM里面,注意:電腦需要安裝Office哦。

又注意:請(qǐng)?jiān)?code>DLL屬性里面將嵌入互操作類(lèi)型改為False

轉(zhuǎn)換過(guò)程一個(gè)方法搞定:

using Microsoft.Office.Interop.Word;
public static string WordToHtml(string path)
{
	string root = AppDomain.CurrentDomain.BaseDirectory;
	var htmlName = $"{Guid.NewGuid().ToString("N")}.html";
	var htmlPath = root + $"Resource/Temporary/";
	if (!Directory.Exists(htmlPath))
	{
		Directory.CreateDirectory(htmlPath);
	}

	ApplicationClass word = new ApplicationClass();
	Type wordType = word.GetType();
	Documents docs = word.Documents;
	Type docsType = docs.GetType();
	Document doc = (Document)docsType.InvokeMember("Open", BindingFlags.InvokeMethod, null, docs, new Object[] { (object)path, true, true });
	Type docType = doc.GetType();

	docType.InvokeMember("SaveAs", BindingFlags.InvokeMethod, null, doc, new object[] { (htmlPath + htmlName), WdSaveFormat.wdFormatFilteredHTML });
	docType.InvokeMember("Close", BindingFlags.InvokeMethod, null, doc, null);
	wordType.InvokeMember("Quit", BindingFlags.InvokeMethod, null, word, null);

	return htmlName;
}

2、預(yù)覽

上一步Word轉(zhuǎn)Html的方法已經(jīng)準(zhǔn)備就緒,我們?cè)贉?zhǔn)備這樣一個(gè)Word文檔。

簡(jiǎn)單寫(xiě)一下邏輯:

是不是特別簡(jiǎn)單,我們?cè)倏纯闯善沸Ч?/p>

這種方案局限性比較大,部署平臺(tái)必須安裝Office,剛好客戶能滿足。

到此這篇關(guān)于Asp.Net在線預(yù)覽Word文檔的解決方案與思路的文章就介紹到這了,更多相關(guān)Asp.Net在線預(yù)覽Word文檔內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • asp.net自動(dòng)更新組件分享

    asp.net自動(dòng)更新組件分享

    前兩天在博客上發(fā)布了一篇英文的自動(dòng)更新組件文章Release a AutoUpdater tool,那么在這篇文章中,我們也對(duì)其功能進(jìn)行一些簡(jiǎn)單說(shuō)明,這個(gè)組件非常簡(jiǎn)單,所以大家可以下載進(jìn)行一些改進(jìn)。
    2010-10-10
  • 獲取DataRow[]的值示例

    獲取DataRow[]的值示例

    這篇文章主要介紹了如何獲取DataRow[]的值,需要的朋友可以參考下
    2014-04-04
  • 淺析.net策略模式

    淺析.net策略模式

    這篇文章主要介紹了淺析.net策略模式,需要的朋友可以參考下
    2014-12-12
  • Asp.net FileUpload+Image制作頭像效果示例代碼

    Asp.net FileUpload+Image制作頭像效果示例代碼

    個(gè)人信息中通常需要自己的頭像或者照片,今天主要介紹一下使用FileUpload+img控件上傳照片,感興趣的朋友可以參考下
    2013-08-08
  • VS2008無(wú)法直接查看STL值的解決方法

    VS2008無(wú)法直接查看STL值的解決方法

    這篇文章主要為大家詳細(xì)介紹了VS2008無(wú)法直接查看STL值的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • ASP.NET?Core?MVC中Form?Tag?Helpers用法介紹

    ASP.NET?Core?MVC中Form?Tag?Helpers用法介紹

    這篇文章介紹了ASP.NET?Core?MVC中Form?Tag?Helpers的用法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-02-02
  • asp.net 表單驗(yàn)證新思路

    asp.net 表單驗(yàn)證新思路

    產(chǎn)生環(huán)境:我們編程時(shí),常常會(huì)碰到很多表單,有的表單,項(xiàng)目超多,我做過(guò)最長(zhǎng)的有80多項(xiàng),眼睛真的是看得發(fā)痛。于是想出這樣一個(gè)偷懶的辦法。
    2010-02-02
  • asp.NET開(kāi)發(fā)中正則表達(dá)式中BUG分析

    asp.NET開(kāi)發(fā)中正則表達(dá)式中BUG分析

    又發(fā)現(xiàn)了一個(gè) .net的bug!最近在使用正則表達(dá)式的時(shí)候發(fā)現(xiàn):在忽略大小寫(xiě)的時(shí)候,匹配值從 0xff 到 0xffff 之間的所有字符,正則表達(dá)式竟然也能匹配兩個(gè) ASCII 字符:i(code: 0x69) 和 I(code: 0x49);但是仍然不能匹配其他的 ASCII 字母和數(shù)字。
    2008-10-10
  • Queryable.Union 方法實(shí)現(xiàn)json格式的字符串合并的具體實(shí)例

    Queryable.Union 方法實(shí)現(xiàn)json格式的字符串合并的具體實(shí)例

    這篇文章介紹了Queryable.Union 方法實(shí)現(xiàn)json格式的字符串合并的具體實(shí)例,有需要的朋友可以參考一下
    2013-10-10
  • .net數(shù)據(jù)庫(kù)連接池配置技巧(默認(rèn)值)

    .net數(shù)據(jù)庫(kù)連接池配置技巧(默認(rèn)值)

    ado.net 本就有連接功能,所有.net開(kāi)法基本不用去考慮連接問(wèn)題,怪不得.net的連接池資料網(wǎng)上找不到。.net連接池只要在連接字符串里配制就可以了
    2008-12-12

最新評(píng)論