如何使用 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的主要内容,如果未能解决你的问题,请参考以下文章

从 C# ASP.NET 中的数据集进行邮件合并

vb.net 如何在一个项目中创建类,并且使用他?

如何在vb.net中使用.eof OR .bof条件?

如何录制特定应用程序的音频? vb.net

如何在 VB.Net 的虚拟键语句中使用变量

如何使用 vb.net 2003 在 asp.net 1.1 中手动填充数据网格?