• c# word(1) 向标签处添加文字


    如题,c#操作word,向word模版标签处添加文字内容:

            public void word()
            {
                //模板文件
                string templateFile = Path.GetFullPath("../FileWord/w1.docx").Replace("\bin", ""); //模板路径
                //生成的具有模板样式的新文件
                string fileName = Path.GetFullPath("../WordData/w3.docx").Replace("\bin", "");  //另存为的路径
    
                ExportWord(templateFile, fileName);
            }
    
            /// <summary>
            /// 调用模板生成word
            /// </summary>
            /// <param name="templateFile">模板文件</param>
            /// <param name="fileName">生成的具有模板样式的新文件</param>
            public void ExportWord(string templateFile, string fileName)
            {
                //生成word程序对象
                Word.Application app = new Word.Application();
                Word.Document doc = new Word.Document();
                try
                {
    
                    //模板文件
                    string TemplateFile = templateFile;
                    //生成的具有模板样式的新文件
                    string FileName = fileName;
    
                    //模板文件拷贝到新文件
                    File.Copy(TemplateFile, FileName,true);//允许覆盖同名文件
                    //File.Copy(TemplateFile, FileName);//不允许覆盖同名文件
                    //生成documnet对象
                    
                    object Obj_FileName = FileName;
                    object Visible = false;
                    object ReadOnly = false;
                    object missing = System.Reflection.Missing.Value;
    
                    //打开文件
                    doc = app.Documents.Open(ref Obj_FileName, ref missing, ref ReadOnly, ref missing,
                        ref missing, ref missing, ref missing, ref missing,
                        ref missing, ref missing, ref missing, ref Visible,
                        ref missing, ref missing, ref missing,
                        ref missing);
                    doc.Activate();
    
                        //按照标签名称定位标签位置(也可以循环标签进行操作)
                        object WordMarkName = "医院名称";//word模板中的书签名称
                        object what = Word.WdGoToItem.wdGoToBookmark;
                        doc.ActiveWindow.Selection.GoTo(ref what, ref missing, ref missing, ref WordMarkName);//光标转到书签的位置
                        doc.ActiveWindow.Selection.TypeText("XXXX");//插入的内容,插入位置是word模板中书签定位的位置
                                                                    //doc.ActiveWindow.Selection.ParagraphFormat.Alignment = WdParagraphAlignment.wdAlignParagraphCenter;//设置当前定位书签位置插入内容的格式
                                                                    //doc.ActiveWindow.Selection.TypeParagraph();//回车换行
    
                    //输出完毕后关闭doc对象
                    object IsSave = true;
                    doc.Close(ref IsSave, ref missing, ref missing);
                    app.Quit();
                    MyHelper.Show("生成“" + FileName + "”成功!", "提示");
                }
                catch (Exception Ex)
                {
                    //关闭doc对象
                    object IsSave = true;
                    object missing = System.Reflection.Missing.Value;
                    doc.Close(ref IsSave, ref missing, ref missing);
                    app.Quit();
                    MyHelper.Show(Ex.ToString(), "提示");
                    return;
                }
            }
    View Code

    附循环标签操作代码:

                foreach (Word.Bookmark bk in doc.Bookmarks)
                {
                    if (bk.Name == "name")
                    {
                        bk.Range.Text = "Hyman";//插入文字
                    }
                    else if (bk.Name == "picture")
                    {
                        bk.Select();
                        Word.Selection sel = app.Selection;
                        sel.InlineShapes.AddPicture("D:\Test.jpg");//插入图片
                    }
                }
    View Code
  • 相关阅读:
    简版一致性hash算法实现
    js类型转换问题
    VIVADO 2017.4配置MIG IP注意事项
    工作笔记2
    工作笔记1
    spring5 + hibernate5(redisson二级缓存) + JPA + JTA + ActiveMQ(JMS)
    spring data jpa 缓存(hibernate)
    JPA @Temporal
    C++ RTTI
    二叉树遍历方法总结
  • 原文地址:https://www.cnblogs.com/xiaoqi123/p/7474512.html
Copyright © 2020-2023  润新知