在vb.net 2013中或20008中,怎样实现打开一个word文件,并向其中写入数据?

qxtclj 2019-12-15 03:19:13
想在vb.net中写一段程序,把特定的内容写入一个已有的word 文件。网上提供了一些方法,但是,并没有解决我的问题。
比如:Dim wApp As Word.Application
Set wApp = New Word.Application
wApp.Visible = True

还有
1Public Class WordOpLib
2
3
4 Private oWordApplic As Word.ApplicationClass
5 Private oDocument As Word.Document
6 Private orange As Word.Range
7 Private oShape As Word.Shape
8 Private oSelection As Word.Selection


这类的方法,写了就会提示有错,真不知道问题出在哪里?
求高手指点
...全文
179 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sanmujunace 2020-01-13
  • 打赏
  • 举报
回复
正好前一段时间研究过,给你一段代码。我是直接把textbox控件内的内容写入word内。
Private Sub Button47_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button47.Click
'检测结果保存至word文件
If TextBox24.Text = Nothing Then '判断是否已经完成行低压负荷表检测
MsgBox("请先执行低压负荷表检测步骤!", MessageBoxIcon.Exclamation)
Exit Sub
End If
Dim WordApp As Word.Application '声明word对象
Dim WordFile As Word.Document '声明文档对象
Dim FileSave As New SaveFileDialog '保存文件对话框
Dim SavePath As String '文件保存路径
WordApp = New Word.Application '实例化doc对象
WordApp.Visible = False '隐藏doc文件
FileSave.Filter = "Word File(*.docx)|*.docx|Word File(*.doc)|*.doc" '保存为docx文件或者doc文件
FileSave.ShowDialog() '显示保存文件对话框
SavePath = FileSave.FileName '文件保存路径
If SavePath = Nothing Then '如果未保存文件,则退出过程
Exit Sub
End If
If Not File.Exists(SavePath) Then '文件不存在则创建文件
WordApp.Documents.Add.SaveAs(SavePath)
Else
'文件存在则删除至回收站,重新创建文件
My.Computer.FileSystem.DeleteFile(SavePath, FileIO.UIOption.OnlyErrorDialogs, FileIO.RecycleOption.SendToRecycleBin, FileIO.UICancelOption.DoNothing)
WordApp.Documents.Add.SaveAs(SavePath)
End If
WordFile = WordApp.Documents.Open(SavePath, Nothing) '打开文件
WordApp.Visible = False '文件隐藏
WordApp.Selection.TypeText("低压负荷统计表检测结果") '写入标题
WordApp.Selection.TypeParagraph() '插入空行
WordApp.Selection.TypeText(TextBox24.Text) '写入检测结果
WordFile.Save()
WordApp.Quit() '结束wordApp对象
System.Runtime.InteropServices.Marshal.ReleaseComObject(WordApp)
WordApp = Nothing '释放wordApp对象
MsgBox("文件已保存至:" & SavePath & "!", MessageBoxIcon.Information)
End Sub
hztltgg 2020-01-13
  • 打赏
  • 举报
回复
我一般写个word文件,需要变化的用占位符标识好,保存为xml格式,扩展名再改成doc,这样打开还是word打开,看不出来。 代码就是打开这个xml文本文件,替换占位符就可以。 xml格式可能比较乱,中英文会分开定义样式,可能占位符被拆分了,需要稍微文本方式处理处理。
by_封爱 2020-01-13
  • 打赏
  • 举报
回复
一般都用第三方控件 aspose 是用的最多的 你可以百度一下.
清晨曦月 元老 2019-12-15
  • 打赏
  • 举报
回复
用第三方控件吧,全脱的也有很多不是,微软这套各个版本兼容就够你一受,控制得了程序你还控制得了客户了←_←。。。。。。。写入word一般不就是格式化好的word文件替换几个字符么。。。
lxjwxy 2019-12-15
  • 打赏
  • 举报
回复
set 是vb6的

要先添加com引用

Dim wApp As new Word.Application
wApp.Visible = True

16,721

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧