zoukankan      html  css  js  c++  java
  • Word复制和替换实例

            public string Path
            {
                get
                {
                    DirectoryInfo info = new DirectoryInfo(Application.StartupPath);
                    return info.Parent.Parent.FullName + "\WordData\Table.docx";
                }
            }
            //【C# 在word文档中复制表格并粘帖到下一页中】
            private void button1_Click(object sender, EventArgs e)
            {
                object missing = Missing.Value;
                Word.Application app = new Word.Application();
                app.Visible = true;
                //导入模板
                object filename = Path;
                Word.Document doc = app.Documents.Add(ref filename, missing, missing, missing);
    
                //复制第一个表格
                doc.Tables[1].Select();
                app.Selection.Copy();
                //在这里操作表格的文本
                Word.Cell cellOne = doc.Tables[1].Cell(1, 1);
                cellOne.Range.Text = "这是第一个表格";
                cellOne.Range.Bold = 2;
                cellOne.Range.Font.ColorIndex = Word.WdColorIndex.wdRed;
    
    
    
                //下一页
                object myunit = Word.WdUnits.wdStory;
                app.Selection.EndKey(ref myunit, ref missing);
                object pBreak = (int)Word.WdBreakType.wdPageBreak;
                app.Selection.InsertBreak(ref pBreak);
    
                //粘贴第一个表格
                app.Selection.Paste();
    
                //操作第二个表格单元格
                Word.Cell cellTwo = doc.Tables[2].Cell(1, 1);
                cellTwo.Range.Text = "这是第二个表格";
                cellTwo.Range.Underline = Word.WdUnderline.wdUnderlineDash;
            }
    
            //【C#实现WORD文档的内容复制和替换】
            private void button2_Click(object sender, EventArgs e)
            {
                LocalPathHelper pathHelper = new LocalPathHelper();
                string sourceWord = WordPath.GetWordDataFullFileName("copy.docx");
                string targetWord = pathHelper.DesktopPath() + "\target.docx";
                //复制文件
                Word.Document doc = copyWord(sourceWord);
                //查找替换
    
                ReplaceAndSave(doc, targetWord);
            }
    
            //复制word内容到Document对象
            public Word.Document copyWord(object sourcePath)
            {
                object objDocType = Word.WdDocumentType.wdTypeDocument;
                object type = Word.WdBreakType.wdSectionBreakContinuous;
                object missing = Missing.Value;
    
                Word.Application app = new Word.Application();
                Word.Document doc;
    
                object readOnly = false;
                object isVisible = false;
    
                doc = app.Documents.Add(ref missing, ref missing, ref missing, ref missing);
                Word.Document opendWord = app.Documents.Open(ref sourcePath, ref missing,
                    ref readOnly, ref missing, ref missing, ref missing,
                    ref missing, ref missing, ref missing, ref missing, ref missing,
                    ref isVisible, ref missing, ref missing, ref missing, ref missing);
                opendWord.Select();
                opendWord.Sections[1].Range.Copy();
    
                object start = 0;
                Word.Range newRange = doc.Range(ref start, ref start);
    
                //插入换行符
                //newWordDoc.Sections[1].Range.InsertBreak(ref type); 
                doc.Sections[1].Range.PasteAndFormat(Word.WdRecoveryType.wdPasteDefault);
                opendWord.Close(ref missing, ref missing, ref missing);
                return doc;
            }
    
            //替换复制好的内容
            public void ReplaceAndSave(Word.Document doc, object savePath)
            {
                object format = Word.WdSaveFormat.wdFormatDocument;
                object missing = Missing.Value;
                object readOnly = false;
                object isVisible = false;
    
                string strOldText = "{Word}";
                string strNewText = "{提花后的文本}";
                List<string> listStr = new List<string>();
                listStr.Add("{Word1}");
                listStr.Add("{Word2}");
    
                Word.Application app = new Word.Application();
                //Microsoft.Office.Interop.Word.Document oDoc = wordApp.Documents.Open(ref obj, ref Nothing, ref readOnly, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref isVisible, ref Nothing, ref Nothing, ref Nothing, ref Nothing); 
                Word.Document newDoc = doc;
    
                object FindText, ReplaceText, ReplaceAll;
                foreach (string str in listStr)
                {
                    newDoc.Content.Find.Text = str;
                    //要找的文本
                    FindText = str;
                    //替换文本
                    ReplaceText = strNewText;
                    //wdReplaceAll - 替换找到的所有项。 
                    //wdReplaceNone - 不替换找到的任何项。 
                    //wdReplaceOne - 替换找到的第一项。 
                    ReplaceAll = Word.WdReplace.wdReplaceAll;
                    //移除Find的搜索文本和段落格式设置
                    newDoc.Content.Find.ClearFormatting();
    
                    if (newDoc.Content.Find.Execute(ref FindText, ref missing, ref missing, ref missing, ref missing,
                        ref missing, ref missing, ref missing, ref missing, ref ReplaceText, ref ReplaceAll, ref missing, ref missing, ref missing, ref missing))
                    {
                        MessageBox.Show("替换成功");
                    }
                    else
                    {
                        MessageBox.Show("没有相关替换的:'" + str + "'字符");
                    }
                }
    
                newDoc.SaveAs2(ref savePath);
                //关闭文档对象,关闭组件对象
                newDoc.Close(ref missing, ref missing, ref missing);
                app.Quit(ref missing, ref missing, ref missing);
            }
  • 相关阅读:
    集合关系运算 交、差、并集
    字符串 数字 列表 元祖 字典 的不同分类and集合的概念
    我的python之路6(基础练习)
    我的python之路6(整理)
    编写Linux下socket协议TCP和UDP的Client Server程序
    linux添加新用户
    HTML5怎样在网页中使用摄像头功能 时间:2013-04-10 19:56 来源:18素材
    boost 同步定时器
    C++的multiple definition of *** first defined here错误
    TCP与UDP的区别,以及它们各自的定义
  • 原文地址:https://www.cnblogs.com/tianma3798/p/3555451.html
Copyright © 2011-2022 走看看