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>

  • 相关阅读:
    1856: [Scoi2010]字符串(Catalan数)
    11.6NOIP模拟赛
    bzoj1257[CQOI2007]余数之和(除法分块)
    11.5NOIP模拟赛
    bzoj1048(记忆化搜索)
    置顶公告+更新日志
    CF585F Digits of Number Pi
    [SHOI2007]善意的投票
    [HEOI2015]最短不公共子串
    树形背包复杂度+P3177 [HAOI2015]树上染色
  • 原文地址:https://www.cnblogs.com/evlon/p/1611881.html
Copyright © 2011-2022 走看看