思路:讀取注冊表獲得word的安裝路徑,然后shell命令加參數(shù)打開。
成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),天水企業(yè)網(wǎng)站建設(shè),天水品牌網(wǎng)站建設(shè),網(wǎng)站定制,天水網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,天水網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。
簡單說一下這個思路:
首先在注冊表
[hkey_classer_root]
中查找注冊文件類型,我們以.doc為例,那么在[hkey_classer_root]
中可以找到.doc項,查看右邊的鍵,有一個鍵名為“默認(rèn)”,其對應(yīng)鍵值是【word.document.8】。
利用這個查詢結(jié)果,在[hkey_classer_root]中重新查找名為【word.document.8】的項,就會發(fā)現(xiàn)這項存在子項shell
-
open
-
command,在command項中存一個名為“默認(rèn)”的鍵,其鍵值是【"c:\program
files\microsoft
office\office14\winword.exe"
/n
"%1"】(這里是以我的電腦為例的),這就是打開對應(yīng)文件的程序路徑和參數(shù)。
至于vb.net讀取注冊表,網(wǎng)上有很多示例了,這里不再贅述。
我試著按我自己的思路給你改一下,你看看成不成型!
......
End?if
Dim?WDAPP?As?Object,Wd1?as?object,Wd2?as?object
wdapp?=?new?word.application
wdapp.visible?=?true
wd1?=?WDAPP.Documents.open(FileName:=TextBox1.Text)
wd2?=?WDAPP.Documents.open(FileName:=TextBox2.Text)
For?j?=?0?To?q?-?1
Wd1.activate
WDAPP.Selection.Find.ClearFormatting()
With?WDAPP.Selection.Find.text?=?p(j)
WDAPP.Selection.Find.Execute(p(j))
Dim?i?As?String
i?=?WDAPP.Selection.Information(3)
Dim?missing?=?System.Reflection.Missing.Value
Dim?unit?=?Word.WdUnits.wdStory
wd2.Activate
WDAPP.Selection.EndKey(unit,?missing)
WDAPP.Selection.TypeText(text:=p(j))
WDAPP.Selection.MoveDown(Unit:=4,?Count:=1)
WDAPP.Selection.EndKey()
WDAPP.Selection.ParagraphFormat.TabStops.Add(Position:=WDAPP1.CentimetersToPoints(20),?Alignment:=2,?Leader:=2)
WDAPP.Selection.TypeText(Text:=vbTab)
WDAPP.Selection.TypeText(Text:=i)
WDAPP.Selection.TypeText(Text:=vbCrLf)
If?WDAPP.ActiveDocument.Saved?=?False?Then
WDAPP.ActiveDocument.Save()
End?If
End?With
Next
WDAPP.Quit()
WDAPP?=?Nothing
End?If
End?If
添加spire.doc.dll為引用,在vb.net中讀取指定word文檔的內(nèi)容到?txt文件,代碼示例如下:
'加載Word文檔
Dim doc As Document = New Documentdocument.LoadFromFile("測試文檔.docx")
'使用GetText方法獲取文檔中的所有文本
Dim s As String = doc.GetText
File.WriteAllText("文本1.txt", s.ToString)
將WDApp.wdParagraph直接修改成數(shù)值4,也就是變成 Unit:=4 試試看!
同時將后面的:Alignment:=WDAPP.wdAlignTabRight改成:Alignment:=2,
將Leader:=WDAPP.wdTabLeaderDashes改成: Leader:=2
如果今后遇到這種問題,直接打開Word,然后
sub xx()
msgbox wdParagraph
end sub
就可以得到wdParagraph的真實值。
不清楚報錯信息,只能給以下提示:
1、工程--引用,選Microsoft Word 11.0 Object Library
2、聲明并賦值word程序相關(guān)變量,注意步驟不能亂。
Dim appObj As New Word.Application '新建一個word程序?qū)ο?/p>
Dim docObj As Word.Document '聲明文檔對象,也可以用new新建
Dim strFile As String = "D:\MyDocu.doc"
docObj = appObj.Documents.Open(strFile, False, False, False, "", "", False, "", "", , False, False, False) '打開文檔
docObj.Activate()'激活文檔
.......
With docObj
.Save()
.Close()
End With
docObj = Nothing
appObj = Nothing
注意:聲明word對象和文檔對象,應(yīng)該提示錯誤,你只需要點擊“示警”圖標(biāo),在展打的選項里選第1項導(dǎo)入就可以了。
VB.NET寫 word文件代碼:
Dim wordApp As New Word.Application
Dim objSelection As Word.Selection
Dim Title As String = "K388+400常勝溝大橋"
wordApp.Documents.Add()
oDocument = wordApp.ActiveDocument
objSelection = wordApp.Selection
wordApp.Selection.TypeText(Title)
objSelection.TypeParagraph()
wordApp.Selection.TypeText("一、橋梁基本狀況卡片")
objSelection.TypeParagraph()
wordApp.Selection.TypeText("A行政數(shù)據(jù)識別,B技術(shù)結(jié)構(gòu)數(shù)據(jù)")
objSelection.TypeParagraph()
wordApp.Selection.TypeText("A行政數(shù)據(jù)識別。B技術(shù)結(jié)構(gòu)數(shù)據(jù)。C檔案資料(全、不全、或無)。D最近技術(shù)狀況評定")
objSelection.InsertBreak() '插入分頁符,相當(dāng)于2個字符
objSelection.TypeText("E修建工程記錄")
SetRange(1)
With wordApp.Selection
.Font.Size = 18 '字體(小二)
.ParagraphFormat.Alignment = 1 '水平居中
.Font.Bold = True
End With
SetRange(2)
With wordApp.Selection
.Font.Size = 14 '字體(四)
.Font.Bold = True
.Font.Name = "華文琥珀"
End With
SetRange(25, 44, True)
With wordApp.Selection
.Font.Size = 9 '字體(小五)
.Font.Bold = True
.Font.Italic = True
End With
SetRange(4, 2)
With wordApp.Selection
.Font.Size = 9 '字體(小五)
.Font.Bold = True
End With
'文件保存
oDocument.SaveAs("d:\" Title ".doc")
wordApp.Visible = True