zoukankan      html  css  js  c++  java
  • 公文处理方案实现之使用模板新建文档并合并正文内容

    <script type="text/javascript">

    var wordApp = new ActiveXObject("word.application");
    wordApp.Visible 
    = true;

    ///    <summary>
    //
    /        依模板新建一个文档,合并正文内容到新建文档中并设置字体字号。
    //
    /     设置每个域的值
    //
    /    </summary>
    //
    /    <param name="wordApp">Word实例</param>
    //
    /    <param name="templatePath">Word模板全路径</param>
    //
    /    <param name="wordFilePath">公文正文内容文全路径</param>
    //
    /    <param name="regionValues">域名和值的数组 [{name:"name1", value:"value1"}]</param>
    //
    /    <returns type="Document">返回新建Word的文档实例</returns>
    function MergeDocument(wordApp , templatePath, wordFilePath, regionValues)
    {
        
    var docPreview = null;

        
    try
        {
            
    //通过模板新建文档
            docPreview = wordApp.Documents.Add(templatePath);
            
            
    //找到正文域
            var bmWord = docPreview.Bookmarks.Item("正文");
            
            
    //提取名称
            var bmName = bmWord.Name;
            
            
    //得到区域
            var desRange = bmWord.Range;
            
            
    //设置为空字串,注意不能是 ''
            //这一步导致域被删除
            desRange.Text = ' ';
            
    //新建一个域
            docPreview.Bookmarks.Add(bmName, desRange);
            
            
    //再次得到区域
            desRange = bmWord.Range
            
            
    //先收缩,这样导入时,不会把域删除
            desRange.Collapse();
            
            
    //导入合并正文
            desRange.ImportFragment(wordFilePath, true);
            
            
    //再次得到域区域
            desRange = bmWord.Range
            
            
    //设置正文内容的格式
            desRange.Font.Size = 16;
            
            
    //最后删除域
            bmWord.Delete();
            
            
    //设置每个域的值
            for(var i = 0; i < regionValues.length; ++i)
            {
                
    var rv = regionValues[i];
                
    try
                {
                    
    //不保存域,直接替换
                    docPreview.Bookmarks.Item(rv.name).Range.Text = rv.value;
                }
                
    catch(e)
                {
                }
            }
            
            
    return docPreview;
            
        }
        
    catch(e)
        {
            alert(e);
            
    return null;
        }
    }

    var doc = MergeDocument(wordApp, 'e:\\test\\temp.dot''e:\\test\\word.doc'
            [
                {name:
    "主送", value:"全通公司"},
                {name:
    "标题", value:"正文标题"},
                {name:
    "文号", value:"河北移动〔2009〕88号"},
                {name:
    "封发时间", value:"二○○九年九月七日"},
                {name:
    "抄送", value:"抄送单位"},
                {name:
    "印发单位", value:"印发单位"},
                {name:
    "印发日期", value:"2009年9月7日"}
            ]);


    </script>

  • 相关阅读:
    牛客网 二叉树的镜像 JAVA
    牛客网 反转链表 JAVA
    牛客网 调整数组顺序使奇数位于偶数前面 JAVA
    Integer to Roman LeetCode Java
    Valid Number leetcode java
    Longest Common Prefix
    Wildcard Matching leetcode java
    Regular Expression Matching
    Longest Palindromic Substring
    Add Binary LeetCode Java
  • 原文地址:https://www.cnblogs.com/evlon/p/1611881.html
Copyright © 2011-2022 走看看