当然除了这个我还要在该文件最上面输出一个变量,如日期
在VB中客户需求是用mail merge,问题是现在是用.net有办法实现吗?
5 个解决方案
#1
我有现成的代码,等一下我考下来!
Dim xlApp As Object
Dim xlBook As Object
On Error Resume Next
xlApp = CreateObject("word.application")
xlBook = xlApp.Documents.Open(VB6.GetPath & "\格式.doc")
xlBook.AcceptAllRevisions()
xlBook.Activate()
xlBook.Tables(1).Cell(1, 2).Select()
xlBook.Tables(1).Cell(1, 2).Range.InsertAfter(Str(Ht))
xlBook.Tables(1).Cell(1, 4).Range.InsertAfter(Str(He))
xlBook.Tables(1).Cell(2, 2).Range.InsertAfter(Str(HJing))
xlBook.Tables(1).Cell(2, 4).Range.InsertAfter(Str(Nden))
xlBook.Tables(1).Cell(3, 2).Range.InsertAfter(Str(Gr))
xlBook.Tables(1).Cell(3, 4).Range.InsertAfter(Taoguan)
xlBook.Tables(1).Cell(4, 2).Range.InsertAfter(Str(Pi))
'***打开数据库,从表中读取数据到word中***'
Dim cN As ADODB.Connection
Dim Rs As ADODB.Recordset
Rs = New ADODB.Recordset
cN = New ADODB.Connection
Dim strdatafile As String
strdatafile = VB6.GetPath & "\result.mdb"
cN.Provider = "Microsoft.Jet.OLEDB.4.0"
cN.Open(strdatafile, "Admin")
Rs.let_ActiveConnection(cN)
Rs.CursorType = ADODB.CursorTypeEnum.adOpenKeyset
Rs.LockType = ADODB.LockTypeEnum.adLockOptimistic
Rs.Open("select * from auto_result", cN)
Rs.MoveFirst()
While Not Rs.EOF
Temp1(i) = Rs.Fields(0).Value
Temp2(i) = Rs.Fields(1).Value
Temp3(i) = Rs.Fields(2).Value
Temp4(i) = Rs.Fields(3).Value
Temp5(i) = Rs.Fields(4).Value
Temp6(i) = Rs.Fields(5).Value
Temp7(i) = Rs.Fields(6).Value
Temp8(i) = Rs.Fields(7).Value
Temp9(i) = Rs.Fields(8).Value
Temp10(i) = Rs.Fields(9).Value
Rs.MoveNext()
i = i + 1
End While
xlBook.Tables(11).Cell(1, 1).Select()
xlBook.Tables(11).Cell(j + 1, 1).Range.InsertAfter(Temp1(j))
Rs.Close()
cN.Close()
Dim xlApp As Object
Dim xlBook As Object
On Error Resume Next
xlApp = CreateObject("word.application")
xlBook = xlApp.Documents.Open(VB6.GetPath & "\格式.doc")
xlBook.AcceptAllRevisions()
xlBook.Activate()
xlBook.Tables(1).Cell(1, 2).Select()
xlBook.Tables(1).Cell(1, 2).Range.InsertAfter(Str(Ht))
xlBook.Tables(1).Cell(1, 4).Range.InsertAfter(Str(He))
xlBook.Tables(1).Cell(2, 2).Range.InsertAfter(Str(HJing))
xlBook.Tables(1).Cell(2, 4).Range.InsertAfter(Str(Nden))
xlBook.Tables(1).Cell(3, 2).Range.InsertAfter(Str(Gr))
xlBook.Tables(1).Cell(3, 4).Range.InsertAfter(Taoguan)
xlBook.Tables(1).Cell(4, 2).Range.InsertAfter(Str(Pi))
'***打开数据库,从表中读取数据到word中***'
Dim cN As ADODB.Connection
Dim Rs As ADODB.Recordset
Rs = New ADODB.Recordset
cN = New ADODB.Connection
Dim strdatafile As String
strdatafile = VB6.GetPath & "\result.mdb"
cN.Provider = "Microsoft.Jet.OLEDB.4.0"
cN.Open(strdatafile, "Admin")
Rs.let_ActiveConnection(cN)
Rs.CursorType = ADODB.CursorTypeEnum.adOpenKeyset
Rs.LockType = ADODB.LockTypeEnum.adLockOptimistic
Rs.Open("select * from auto_result", cN)
Rs.MoveFirst()
While Not Rs.EOF
Temp1(i) = Rs.Fields(0).Value
Temp2(i) = Rs.Fields(1).Value
Temp3(i) = Rs.Fields(2).Value
Temp4(i) = Rs.Fields(3).Value
Temp5(i) = Rs.Fields(4).Value
Temp6(i) = Rs.Fields(5).Value
Temp7(i) = Rs.Fields(6).Value
Temp8(i) = Rs.Fields(7).Value
Temp9(i) = Rs.Fields(8).Value
Temp10(i) = Rs.Fields(9).Value
Rs.MoveNext()
i = i + 1
End While
xlBook.Tables(11).Cell(1, 1).Select()
xlBook.Tables(11).Cell(j + 1, 1).Range.InsertAfter(Temp1(j))
Rs.Close()
cN.Close()
#2
不行啊
注意这是用在web页面上的,可能有权限问题
注意这是用在web页面上的,可能有权限问题
#3
在服务器后台生成好Doc文件(操作Word对象)然后把文件发送到客户端
#4
我觉得也是,比较有效安全的方法是,先把数据暂时存在临时目录的文本文件里,然后在WORD中有VB编辑器,可以设计成你需要的格式,然后在WORD中写宏,VBA,把临时目录数据装入
#5
具体怎么操作呢?
#1
我有现成的代码,等一下我考下来!
Dim xlApp As Object
Dim xlBook As Object
On Error Resume Next
xlApp = CreateObject("word.application")
xlBook = xlApp.Documents.Open(VB6.GetPath & "\格式.doc")
xlBook.AcceptAllRevisions()
xlBook.Activate()
xlBook.Tables(1).Cell(1, 2).Select()
xlBook.Tables(1).Cell(1, 2).Range.InsertAfter(Str(Ht))
xlBook.Tables(1).Cell(1, 4).Range.InsertAfter(Str(He))
xlBook.Tables(1).Cell(2, 2).Range.InsertAfter(Str(HJing))
xlBook.Tables(1).Cell(2, 4).Range.InsertAfter(Str(Nden))
xlBook.Tables(1).Cell(3, 2).Range.InsertAfter(Str(Gr))
xlBook.Tables(1).Cell(3, 4).Range.InsertAfter(Taoguan)
xlBook.Tables(1).Cell(4, 2).Range.InsertAfter(Str(Pi))
'***打开数据库,从表中读取数据到word中***'
Dim cN As ADODB.Connection
Dim Rs As ADODB.Recordset
Rs = New ADODB.Recordset
cN = New ADODB.Connection
Dim strdatafile As String
strdatafile = VB6.GetPath & "\result.mdb"
cN.Provider = "Microsoft.Jet.OLEDB.4.0"
cN.Open(strdatafile, "Admin")
Rs.let_ActiveConnection(cN)
Rs.CursorType = ADODB.CursorTypeEnum.adOpenKeyset
Rs.LockType = ADODB.LockTypeEnum.adLockOptimistic
Rs.Open("select * from auto_result", cN)
Rs.MoveFirst()
While Not Rs.EOF
Temp1(i) = Rs.Fields(0).Value
Temp2(i) = Rs.Fields(1).Value
Temp3(i) = Rs.Fields(2).Value
Temp4(i) = Rs.Fields(3).Value
Temp5(i) = Rs.Fields(4).Value
Temp6(i) = Rs.Fields(5).Value
Temp7(i) = Rs.Fields(6).Value
Temp8(i) = Rs.Fields(7).Value
Temp9(i) = Rs.Fields(8).Value
Temp10(i) = Rs.Fields(9).Value
Rs.MoveNext()
i = i + 1
End While
xlBook.Tables(11).Cell(1, 1).Select()
xlBook.Tables(11).Cell(j + 1, 1).Range.InsertAfter(Temp1(j))
Rs.Close()
cN.Close()
Dim xlApp As Object
Dim xlBook As Object
On Error Resume Next
xlApp = CreateObject("word.application")
xlBook = xlApp.Documents.Open(VB6.GetPath & "\格式.doc")
xlBook.AcceptAllRevisions()
xlBook.Activate()
xlBook.Tables(1).Cell(1, 2).Select()
xlBook.Tables(1).Cell(1, 2).Range.InsertAfter(Str(Ht))
xlBook.Tables(1).Cell(1, 4).Range.InsertAfter(Str(He))
xlBook.Tables(1).Cell(2, 2).Range.InsertAfter(Str(HJing))
xlBook.Tables(1).Cell(2, 4).Range.InsertAfter(Str(Nden))
xlBook.Tables(1).Cell(3, 2).Range.InsertAfter(Str(Gr))
xlBook.Tables(1).Cell(3, 4).Range.InsertAfter(Taoguan)
xlBook.Tables(1).Cell(4, 2).Range.InsertAfter(Str(Pi))
'***打开数据库,从表中读取数据到word中***'
Dim cN As ADODB.Connection
Dim Rs As ADODB.Recordset
Rs = New ADODB.Recordset
cN = New ADODB.Connection
Dim strdatafile As String
strdatafile = VB6.GetPath & "\result.mdb"
cN.Provider = "Microsoft.Jet.OLEDB.4.0"
cN.Open(strdatafile, "Admin")
Rs.let_ActiveConnection(cN)
Rs.CursorType = ADODB.CursorTypeEnum.adOpenKeyset
Rs.LockType = ADODB.LockTypeEnum.adLockOptimistic
Rs.Open("select * from auto_result", cN)
Rs.MoveFirst()
While Not Rs.EOF
Temp1(i) = Rs.Fields(0).Value
Temp2(i) = Rs.Fields(1).Value
Temp3(i) = Rs.Fields(2).Value
Temp4(i) = Rs.Fields(3).Value
Temp5(i) = Rs.Fields(4).Value
Temp6(i) = Rs.Fields(5).Value
Temp7(i) = Rs.Fields(6).Value
Temp8(i) = Rs.Fields(7).Value
Temp9(i) = Rs.Fields(8).Value
Temp10(i) = Rs.Fields(9).Value
Rs.MoveNext()
i = i + 1
End While
xlBook.Tables(11).Cell(1, 1).Select()
xlBook.Tables(11).Cell(j + 1, 1).Range.InsertAfter(Temp1(j))
Rs.Close()
cN.Close()
#2
不行啊
注意这是用在web页面上的,可能有权限问题
注意这是用在web页面上的,可能有权限问题
#3
在服务器后台生成好Doc文件(操作Word对象)然后把文件发送到客户端
#4
我觉得也是,比较有效安全的方法是,先把数据暂时存在临时目录的文本文件里,然后在WORD中有VB编辑器,可以设计成你需要的格式,然后在WORD中写宏,VBA,把临时目录数据装入
#5
具体怎么操作呢?