精华内容
下载资源
问答
  • Aspose.Word在进行邮件合并时,默认的几个重载方法对Database支持比较友好,但是也可以通过自定义数据源来实现从集合或者对象中返回数据进行邮件合并。 自定义数据源主要是通过实现IMailMergeDataSource接口来...

    Aspose.Word在进行邮件合并时,默认的几个重载方法对Database支持比较友好,但是也可以通过自定义数据源来实现从集合或者对象中返回数据进行邮件合并。

     

    自定义数据源主要是通过实现IMailMergeDataSource接口来实现的。官方的例子如下:

     

    [C#]
    
    public void MailMergeCustomDataSource()
    {
        // Create some data that we will use in the mail merge.
        CustomerList customers = new CustomerList();
        customers.Add(new Customer("Thomas Hardy", "120 Hanover Sq., London"));
        customers.Add(new Customer("Paolo Accorti", "Via Monte Bianco 34, Torino"));
    
        // Open the template document.
        Document doc = new Document(MyDir + "MailMerge.CustomDataSource.doc");
    
        // To be able to mail merge from your own data source, it must be wrapped
        // into an object that implements the IMailMergeDataSource interface.
        CustomerMailMergeDataSource customersDataSource = new CustomerMailMergeDataSource(customers);
    
        // Now you can pass your data source into Aspose.Words.
        doc.MailMerge.Execute(customersDataSource);
    
        doc.Save(MyDir + "MailMerge.CustomDataSource Out.doc");
    }
    
    /// <summary>
    /// An example of a "data entity" class in your application.
    /// </summary>
    public class Customer
    {
        public Customer(string aFullName, string anAddress)
        {
            mFullName = aFullName;
            mAddress = anAddress;
        }
    
        public string FullName
        {
            get { return mFullName; }
            set { mFullName = value; }
        }
    
        public string Address
        {
            get { return mAddress; }
            set { mAddress = value; }
        }
    
        private string mFullName;
        private string mAddress;
    }
    
    /// <summary>
    /// An example of a typed collection that contains your "data" objects.
    /// </summary>
    public class CustomerList : ArrayList
    {
        public new Customer this[int index]
        {
            get { return (Customer)base[index]; }
            set { base[index] = value; }
        }
    }
    
    /// <summary>
    /// A custom mail merge data source that you implement to allow Aspose.Words 
    /// to mail merge data from your Customer objects into Microsoft Word documents.
    /// </summary>
    public class CustomerMailMergeDataSource : IMailMergeDataSource
    {
        public CustomerMailMergeDataSource(CustomerList customers)
        {
            mCustomers = customers;
    
            // When the data source is initialized, it must be positioned before the first record.
            mRecordIndex= -1;
        }
    
        /// <summary>
        /// The name of the data source. Used by Aspose.Words only when executing mail merge with repeatable regions.
        /// </summary>
        public string TableName
        {
            get { return "Customer"; }
        }
    
        /// <summary>
        /// Aspose.Words calls this method to get a value for every data field.
        /// </summary>
        public bool GetValue(string fieldName, out object fieldValue)
        {
            switch (fieldName)
            {
                case "FullName":
                    fieldValue = mCustomers[mRecordIndex].FullName;
                    return true;
                case "Address":
                    fieldValue = mCustomers[mRecordIndex].Address;
                    return true;
                default:
                    // A field with this name was not found, 
                    // return false to the Aspose.Words mail merge engine.
                    fieldValue = null;
                    return false;
            }
        }
    
        /// <summary>
        /// A standard implementation for moving to a next record in a collection.
        /// </summary>
        public bool MoveNext()
        {
            if (!IsEof)
                mRecordIndex++;
    
            return (!IsEof);
        }
    
        public IMailMergeDataSource GetChildDataSource(string tableName)
        {
            return null;
        }
    
        private bool IsEof
        {
            get { return (mRecordIndex >= mCustomers.Count); }
        }
    
        private readonly CustomerList mCustomers;
        private int mRecordIndex;
    }

     

    参考文档:

    https://apireference.aspose.com/net/words/aspose.words.mailmerging/imailmergedatasource

     

    转载于:https://www.cnblogs.com/liszt/p/how-to-custom-data-source-in-aspose-word-for-mail-merge.html

    展开全文
  • wps文字使用邮件合并时打不开数据源用wps表格打开数据源,另存为一次,格式设为.et试试。为什么邮件合并时显示:wps文字无法打开数据源?此问题可能是因系统里面缺少「accessdatabaseengine...wps的数据源不能用wp...

    wps文字使用邮件合并时打不开数据源

    用wps表格打开数据源,另存为一次,格式设为.et试试。

    为什么邮件合并时显示:wps文字无法打开数据源?

    此问题可能是因系统里面缺少「accessdatabaseengine数据库引擎」导致的,可尝试在网络上下载安装此数据后重新启动wps再次打开数据源尝试。

    wps邮件合并无法打开数据源计算机二级,为何我的打开是这样

    你的数据源是什么格式文件?wps的数据源不能用wps格式(或doc格式),一般使用电子表格或数据库文件当数据源。

    为什么wps邮件合并显示数据源打不开?

    格式不对,解法如下:

    可以重新建一次word和excel并复制入数据;

    a.在保存候均另存为03/07那个,后缀分别为.doc 和 .xls  ;

    b.然后先打开word,点引用-邮件-打开数据源-选取要插入的表格即可。

    WPS邮件合并之后出现:错误!数据源的域名记录中找不到合并域。

    WPS邮件之后出现:!数据源的域名记录不到合并域是设误造成的,解决方:

    1、制作一个Excel表格,包含需要引用的数据内容,如“姓名”、“成绩”等,此表格为邮件合并中需要导入的“数据源”。

    2、打开Word文档,选中需要引用的部分(如:姓名),制作好内容后,依次点击“引用”—“邮件”。

    3、完成上述操作后即可进入到“邮件合并”功能,点击“打开数据源”,选择刚才制作的Excel表格引用。

    4、点击“插入合并域”,在弹出框选择“姓名”后,点击“插入”。

    5、根据上述方式,对其他需要引用的内容进行插入合并域。

    6、根据需要选择“合并到”的方式。

    7、这里选择“合并到新文档”,如图,即可完成“邮件合并”的操作。

    展开全文
  • 1、在你的WORD文档中选择“工具”——”宏“——”Visual Basic 编辑器“2、弹出Visual Basic 编辑器后选择“Project(你的文档名)——”Microsoft Word 对象“——“ThisDocument”3、将下列代码拷贝到代码窗口4、...

    1、在你的WORD文档中选择“工具”——”宏“——”Visual Basic 编辑器“

    2、弹出Visual Basic 编辑器后选择“Project(你的文档名)——”Microsoft Word 对象“——“ThisDocument”

    3、将下列代码拷贝到代码窗口

    4、修改“strExcel”、“strSheet”两个参数的值

    5、保存。OK

    '以下是代码

    'code read environment variable with API

    Private Declare Function GetEnvironmentVariable Lib "kernel32.dll" Alias "GetEnvironmentVariableA" (ByVal lpName As String, ByVal lpBuffer As String) As Long

    Public Function GetVar(strName As String)

    Dim strBuffer As String

    Dim lngLen As Long

    lngLen = 256

    strBuffer = String$(lngLen, Chr$(0))

    lngLen = GetEnvironmentVariable(strName, strBuffer, lngLen)

    If lngLen <> 0 Then

    strBuffer = Left(strBuffer, lngLen)

    GetVar = strBuffer

    End If

    End Function

    Private Sub Document_Close()

    'this necessary if you don't want it ask you to open datasource every time doc is opened

    Me.MailMerge.MainDocumentType = wdNotAMergeDocument

    Me.Save

    End Sub

    Private Sub Document_Open()

    Dim strExcel As String

    Dim strSheet As String

    Dim strDataSource As String

    Dim strConnection As String

    Dim strQuery As String

    Dim tempPath As String

    tempPath = Me.Path

    strExcel = "三非案件资料"

    strSheet = "讨论1"

    ' set this to be the file name of your data source

    strDataSource = tempPath & "\" & strExcel & ".xls"

    ' set this to be the connection string for your data source

    strConnection = ""

    strQuery = "select * from " & strDataSource 'MMerge.TXT"

    With ActiveDocument

    With MailMerge

    .OpenDataSource Name:= _

    strDataSource, _

    ConfirmConversions:=False, ReadOnly:=False, LinkToSource:=True, _

    AddToRecentFiles:=False, PasswordDocument:="", PasswordTemplate:="", _

    WritePasswordDocument:="", WritePasswordTemplate:="", Revert:=False, _

    Format:=wdOpenFormatAuto, Connection:= _

    "Provider=Microsoft.Jet.OLEDB.4.0;Password="""";User ID=Admin;Data Source=" & strDataSource & ";Mode=Read;Extended Properties=""HDR=YES;IMEX=1;"";Jet OLEDB:System database="""";Jet OLEDB:RegistryPath="""";Jet OLEDB:Database Password", SQLStatement:="SELECT * FROM `" & strSheet & "$`", SQLStatement1:="", SubType:= _

    wdMergeSubTypeAccess

    End With

    End With

    End Sub

    展开全文
  • word邮件合并You can use Mail Merge in Word 2003 to create mailing labels for a database full of customers. 您可以在Word 2003中使用“邮件合并”为满载客户的数据库创建邮件标签。 Open Word 2003 and ...
    word邮件合并

    word邮件合并

    You can use Mail Merge in Word 2003 to create mailing labels for a database full of customers. 

    您可以在Word 2003中使用“邮件合并”为满载客户的数据库创建邮件标签。

    Open Word 2003 and click on Tools \ Letters and Mailings \ Mail Merge…

    打开Word 2003,然后单击工具\信件和邮件\邮件合并…

    In the Mail Merge menu on the right under Select document type, select Labels.  Then click Next: Starting document.

    在右侧的“邮件合并”菜单中的“选择文档类型”下,选择“标签”。 然后单击“下一步:启动文档”。

    From step 2 Click on Label options…

    在第2步中,点击标签选项...

    This will bring up a menu allowing you to select the brand and style of the labels you want to print.  Here I am using Avery 4013 on a Dot Matrix printer.  Of course you will want to select what you have, Avery is the most popular in business from my experience.  If you have oddball labels you can always choose custom settings as well.  When your done with the label options click OK.

    这将弹出一个菜单,使您可以选择要打印的标签的品牌和样式。 在这里,我在点矩阵打印机上使用Avery 4013。 当然,您会想要选择您所拥有的,根据我的经验,Avery在业务中最受欢迎。 如果您有奇数球标签,也可以随时选择自定义设置。 完成标签选项后,单击“确定”。

    Now you are going to want to choose your data source.  Under Use an Existing List; click on Browse… Use Explorer to find the data source you want to use and double click it.  (Creating a data source will be covered in another how to).

    现在,您将要选择数据源。 在“使用现有列表”下; 单击浏览...使用资源管理器找到要使用的数据源,然后双击它。 (创建数据源将在另一方法中介绍)。

    You will click on a confirmation screen verifying your data source (I used an Excel spread sheet that I had imported from Access) and get to Mail Merge Recipients window.  Here you can change the order of your information, delete certain users, and validate information.  Since I know the data source is what I want I chose Select All.  Now hit OK.

    您将单击一个确认屏幕,以验证您的数据源(我使用了从Access导入的Excel电子表格),然后转到“邮件合并收件人”窗口。 您可以在此处更改信息的顺序,删除某些用户并验证信息。 因为我知道数据源就是我想要的,所以我选择了“全选”。 现在点击确定。

    Ok, we’re almost complete, just a couple more steps. Click on Next:  Arrange your labels. 

    好的,我们几乎完成了,仅需几个步骤。 单击下一步:排列标签。

    Here Click on More items… 

    在这里点击更多项目…

    Now we can choose the order of the data we want presented on the labels we are creating.  Just double click on each field you want to include.

    现在,我们可以选择要在创建的标签上显示的数据的顺序。 只需双击要包括的每个字段。

    Now if you look over at your document you will notice these fields are being added to your labels.  You can edit them by highlighting the field and moving it to where you want.  For instance on this label I would want the First Name before the Last Name. 

    现在,如果您查看文档,您会发现这些字段已添加到标签中。 您可以通过突出显示该字段并将其移至所需位置来对其进行编辑。 例如,在此标签上,我想要姓氏之前的名字。

    Now over on the Mail Merge menu bar you will want to select the “update all labels” button.  This will populate each label with the fields from the fist label.  Then click on Next: Preview your labels.

    现在,在“邮件合并”菜单栏上,您将要选择“更新所有标签”按钮。 这将使用拳头标签中的字段填充每个标签。 然后单击“ 下一步:预览标签”。

    Your document screen will look similar to this.

    您的文档屏幕将与此类似。

    Now, on the mail merge menu you can click through the Recipients by clicking the back or forward arrows. If you doing hundreds of labels … I would just spot check them.  If you’re satisfied with how they look let’s move to step 6 and complete the merge.

    现在,在邮件合并菜单上,您可以通过单击后退或前进箭头在收件人中单击。 如果您要做数百个标签……我将对它们进行抽查。 如果您对它们的外观感到满意,让我们进入第6步并完成合并。

    The Merge is complete!  Make sure your labels are set up in the printer and hit Print…

    合并完成! 确保在打印机中设置了标签,然后单击“ 打印”。

    You will be presented with the print select screen.  Choose all, or a specific number to print.  You will get a different record for each contact from your data source on each label.

    您将看到打印选择屏幕。 选择全部或特定号码进行打印。 您将从每个标签上的数据源获得每个联系人的不同记录。

    翻译自: https://www.howtogeek.com/howto/microsoft-office/create-mailing-labels-in-word-2003-with-mail-merge/

    word邮件合并

    展开全文
  • 方法 2: 创建一个宏来动态地修改超链接文本Microsoft 提供的编程示例仅用于说明,没有任何明示或暗示的担保。这包括但限于适销性或特定用途适用性的暗示担保。...创建一个宏,如果要动态修改合并的电子邮件中的...
  • C# 实现多种Word邮件合并功能

    千次阅读 2017-07-21 16:51:15
    C# 实现多种Word邮件合并功能 在处理Word文档的工作中经常会遇见这样一种情况:文件的主要内容和格式大体相同,只是需要填充的数据不同。如果一个一个填写数据的话会非常麻烦,而且很耗时间。这时候我们就可以灵活...
  • Word邮件合并能导出单个的文档(分页的),这个VBA插件可以帮助你拆分单个Word文档,使用时需要修改部分源码,建议有编程基础的同行们使用,使用前先把信函合并至最后一步(可打印状态),序号调至第一个,然后...
  • Word邮件合并时根据指定条件分页

    千次阅读 2019-12-21 15:30:20
    邮件合并选择文档为“目录”,因为这种模式不会自动分页,信函什么的是一条数据一个文档(或分页),标签模式格式不好设置。 在Word中添加if then域,判断指定值为1时则添加分页符,否则添加内容 数据源 ...
  • word邮件合并

    2012-04-01 14:46:40
    同事需要将excel 的记录在word中打印,学习了word邮件合并,感觉还比较简单, 但是需要在同一页中打印两条记录,测试多张方法,发现只能采用标签,具体方法如下: 1)在邮件合并中,选中标签 选中礼品证书,在详细...
  • word 邮件合并

    2011-09-10 14:32:00
    各们朋友,大家好,我现在为大家介绍OFFICE 2003的一个功能“邮件合并” 我... 下面我们来说下邮件合并的具体步骤: 1、 首先们要做一个WORD模板例如: <?xml:namespace prefix = v ns = "urn:schemas-microsoft-...
  • Word 中,下列能作为邮件合并数据源的是()A.HTML文档B.文本文件C.图像文件D.Excel文件更多相关问题指出下列散瘀止痛、接骨疗伤的要药A.自然铜B.苏木C.红花D.牛膝E.续断生地黄在一贯煎中为A.反佐药B.佐药...
  • 邮件 开始邮件合并 选择收件人 -- 使用Excel数据源 (保存通讯录的Excel表) 插入合并域 -- 选择姓名。。。 规则 (如果。。那么否则) 域名选择性别,比较对象男 则先生 否则女士 预览结果 完成并合并 -- 打印...
  • 我構建了一個SOW模板生成器,它將doc合併欄位的Word郵...要得到我需要的子彈點樣式,Word實際上使用一個'o'並指定'信使新'作為字體。 無法指定字體,因為word將始終使用文檔樣式重寫。如果文本在文檔的邊緣從文檔的...
  • Word邮件合并在地质灾害遥感解译信息化中的应用,李鑫,卢玉东,利用Word邮件合并功能,将Access数据库中的数据源推送到主文档,实现了地质灾害遥感解译与野外核查记录卡片册的批量生成。该应用避�
  • 有时我们需要给不同的收件人发去内容大体一致,但是有些地方有区别的邮件...怎样用同一个主文档和数据源合并出不同的邮件? 这时就要用到“插入Word域”。在邮件中需出现不同文字的地方插入“插入Word域”中的“i
  • 邮件合并 wps文字无法打开数据源

    千次阅读 2020-02-11 13:19:36
    用XLS格式数据源, 如果XLS正常XLSX无法打开,则需要安装AccessDatabaseEngine 支持
  • WORD邮件合并功能

    2005-01-28 13:45:00
    今天把老凯做的那个生成精华区文章的WORD下载下来玩了一下。真有意思。不用写代码就能实现从数据库里把数据生成到WORD,还按模板排...2.新建数据源 3.然后插入域 4.检查错误(直接完成合并)就OK了。 转载于:h...
  • 其中必可少的步骤包括用于填充的模板文档、填充的数据源以及实现邮件合并的功能。下面,通过Java程序展示如何来实现创建模板,并通过邮件合并功能来合并文本数据和图片数据的方法,分别以2个示例来展示,即: 1. ...
  • Word邮件合并的应用

    2011-10-05 17:25:00
    Word邮件合并的应用 一、什么是邮件合并? 邮件合并功能用于创建套用信函、邮件标签、信封、目录以及大宗电子邮件和传真分发。例如,一个公司要向所有的客户分发内容相同的回忆邀请函,所不同的是每位客户的姓名...
  • Word邮件合并技巧四则(转)  “邮件合并”是Word的一项高级功能,是办公自动化人员应该掌握的基本技术之一。但是大多数书上对“邮件合并”的介绍都很简单,如果按照书的上介绍去做,合并打印出的邮件并能完全...
  • Word2003中的邮件合并功能相信很多人都没使用过,下面,以制作学校录取通知书为例,说明在Word2003中具体的制作步骤:第一步:单击“工具”·“信函与邮件”·“邮件合并”,任务窗格·“邮件合并”,见图1。...
  • 实现一张A4纸上能够打印6个学员证,利用excel数据源word(wps)的邮件合并功能实现批量打印 1.首先我们要准备好数据源,以本文为了,excel表中保存了学员信息。 2.打开word(wps),可以通过表格布局的方式,制作3行...
  • 有多个xls数据源需要邮件合并,通过word一个一个来手动合并明显效率很低,Python有相应的docx-mailmerge库来实现合并,但在实际处理中,当doc模板的域处于文本框时,docx-mailmerge合并的速度能让人崩溃,几百条数据...
  • Word邮件合并打印

    2010-11-28 19:13:00
    2007年的全县三教征文结果出来了,一看550人的庞大队伍,这要是写或者人工排版,不定要划好长时间,对我这样的懒人来说宁肯划一天时间来研究一下偷懒的办法来完成半天的工作的,好在这次划的时间并没那么久,...
  • public class MailTest {  public static void main(String[] args) throws Exception { ...邮件合并测试开始。。。");    String template = "C:/Users/aspose words/asposeWordsTe...
  • 数据源为excel,word中建立表模板,利用邮件合并功能实现批量填表,利用VBA技术将填表结果分成独立的文档
  • 利用word邮件合并批量导入照片

    万次阅读 2011-09-13 17:17:05
    利用word邮件合并批量导入照片  ------嘉为 张辛   “邮件合并”是Wor
  • Word邮件合并快速制作询证函(转)

    千次阅读 2019-06-19 12:18:04
    Word邮件合并快速制作询证函(转) 作为一名财务人员,笔者负责单位往来账项的询证工作。查阅凭证、合同台账和合同原件,笔者费了九牛二虎之力,总算把本单位与百余家公司的往来账项搞清楚了,并编辑成了一张Excel...
  • 一天HR的MM找我,说公司最近有一批人事任命在Excel表格中存着,但是下发的时候需要使用Word形式的,模板她都做好了,但是如果一个一个敲的话太费劲了,问我看有没有什么办法可以批量的办法来根据Excel数据生成Word版...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,299
精华内容 3,319
关键字:

word邮件合并不支持的数据源