如何使用 Vb.net 在 Openoffice 中进行 Mailmerge
Posted
技术标签:
【中文标题】如何使用 Vb.net 在 Openoffice 中进行 Mailmerge【英文标题】:How to do Mailmerge in Openoffice using Vb.net 【发布时间】:2009-01-29 11:56:12 【问题描述】:它的第 5 个问题,除此之外,我没有得到专家的答复....
希望这次我能得到帮助。
我想使用 Vb.net 在 openoffice 中进行邮件合并,而我对 openoffice 完全陌生。 我在网上搜索了一些帮助以了解如何将 openoffice 与 vb.net 一起使用,但我得到的只是一半信息.....所以请你帮我并给我在 vb.net for openoffice 中的 mailmerge 代码。
【问题讨论】:
“邮件合并”到底是什么意思?而且“请给我代码”不会增加你得到答案的机会。 【参考方案1】:好吧,我有 DB 中的工人名单,并且有这个设施,如果他们想邮寄给所有或部分工人,那么他们可以做到。我现在使用 Microsoft Office 作为插件完成了这项任务,我们是提供使用 Open Office 执行相同任务的设施。
他们所要做的就是选择工作人员列表并单击一个按钮,它将使用数据库中这些工作人员数据的字段自动进行邮件合并。我的代码如下所示
Public Sub OpenOfficeMail(ByVal StrFilter As String)
Dim oSM ''Root object for accessing OpenOffice from VB
Dim oDesk, oDoc As Object ''First objects from the API
Dim arg(-1) ''Ignore it for the moment !
''Instanciate OOo : this line is mandatory with VB for OOo API
oSM = CreateObject("com.sun.star.ServiceManager")
''Create the first and most important service
oDesk = oSM.createInstance("com.sun.star.frame.Desktop")
''Create a new doc
oDoc = oDesk.loadComponentFromURL("private:factory/swriter", "_blank", 0, arg)
''Close the doc
oDoc.Close(True)
oDoc = Nothing
''Open an existing doc (pay attention to the syntax for first argument)
oDoc = oDesk.loadComponentFromURL("file:///C:\Users\Savan\Documents\1.odt", "_blank", 0, arg)
Dim t_OOo As Type
t_OOo = Type.GetTypeFromProgID("com.sun.star.ServiceManager")
Dim objServiceManager As New Object
objServiceManager = System.Activator.CreateInstance(t_OOo)
Dim oMailMerge As New Object
oMailMerge = t_OOo.InvokeMember("createInstance", Reflection.BindingFlags.InvokeMethod, Nothing, _
objServiceManager, New [Object]() "com.sun.star.text.MailMerge") 'com.sun.star.text.MailMerge")
oMailMerge.DocumentURL = "file:///C:\Users\Savan\Documents\1.odt"
oMailMerge.DataSourceName = CreateSource(StrFilter)''Function that will return the datasource name which will be a text file's path
oMailMerge.CommandType = 0
oMailMerge.Command = "file:///C:\Mail.txt"
oMailMerge.OutputType = 2
oMailMerge.execute(New [Object]() )**---->I am getting Error here**
End Sub
【讨论】:
以上是关于如何使用 Vb.net 在 Openoffice 中进行 Mailmerge的主要内容,如果未能解决你的问题,请参考以下文章