十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
思路:读取注册表获得word的安装路径,然后shell命令加参数打开。
成都创新互联是一家集网站建设,天水企业网站建设,天水品牌网站建设,网站定制,天水网站建设报价,网络营销,网络优化,天水网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。
简单说一下这个思路:
首先在注册表
[hkey_classer_root]
中查找注册文件类型,我们以.doc为例,那么在[hkey_classer_root]
中可以找到.doc项,查看右边的键,有一个键名为“默认”,其对应键值是【word.document.8】。
利用这个查询结果,在[hkey_classer_root]中重新查找名为【word.document.8】的项,就会发现这项存在子项shell
-
open
-
command,在command项中存一个名为“默认”的键,其键值是【"c:\program
files\microsoft
office\office14\winword.exe"
/n
"%1"】(这里是以我的电脑为例的),这就是打开对应文件的程序路径和参数。
至于vb.net读取注册表,网上有很多示例了,这里不再赘述。
我试着按我自己的思路给你改一下,你看看成不成型!
......
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文档的内容到 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直接修改成数值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程序相关变量,注意步骤不能乱。
Dim appObj As New Word.Application '新建一个word程序对象
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对象和文档对象,应该提示错误,你只需要点击“示警”图标,在展打的选项里选第1项导入就可以了。
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行政数据识别,B技术结构数据")
objSelection.TypeParagraph()
wordApp.Selection.TypeText("A行政数据识别。B技术结构数据。C档案资料(全、不全、或无)。D最近技术状况评定")
objSelection.InsertBreak() '插入分页符,相当于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