Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#&;Word-替换为格式化_C#_Ms Word_Ms Office - Fatal编程技术网

C#&;Word-替换为格式化

C#&;Word-替换为格式化,c#,ms-word,ms-office,C#,Ms Word,Ms Office,以最简单的形式,我试图做的是在一个已经存在的word文档中填写一些信息。我的代码做得很好 它没有做的是按照需要修改格式,替换的文本需要变为黑色和粗体,表上的totals字段需要右对齐 如果有人能在我的代码中指出我可能如何做到这一点,我将不胜感激 这是我目前的代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing;

以最简单的形式,我试图做的是在一个已经存在的word文档中填写一些信息。我的代码做得很好

它没有做的是按照需要修改格式,替换的文本需要变为黑色和粗体,表上的totals字段需要右对齐

如果有人能在我的代码中指出我可能如何做到这一点,我将不胜感激

这是我目前的代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Word = Microsoft.Office.Interop.Word;

namespace WordDocTesting
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void FindAndReplace(Word.Application WordApp,
                                    object findText,
                                    object replaceWithText)
        {
            object missing = Type.Missing;

            object matchCase = true;
            object matchWholeWord = true;
            object matchWildCards = false;
            object matchSoundLike = false;
            object nmatchAllWordForms = false;
            object forward = true;
            object format = false;
            object matchKashida = false;
            object matchDiacritics = false;
            object matchAlefHamza = false;
            object matchControl = false;
            object read_only = false;
            object visible = true;
            object replace = 2;
            object wrap = 1;

            if (replaceWithText.ToString().Length < 250) // Normal execution
            {
                WordApp.Selection.Find.Execute(ref findText,
                                               ref matchCase,
                                               ref matchWholeWord,
                                               ref matchWildCards,
                                               ref matchSoundLike,
                                               ref nmatchAllWordForms,
                                               ref forward,
                                               ref wrap,
                                               ref format,
                                               ref replaceWithText,
                                               ref replace,
                                               ref matchKashida,
                                               ref matchDiacritics,
                                               ref matchAlefHamza,
                                               ref matchControl);
            }
            else
            {
                WordApp.Application.Selection.Find.Execute(ref findText, 
                                                           ref missing, 
                                                           ref missing, 
                                                           ref missing, 
                                                           ref missing,
                                                           ref missing, 
                                                           ref missing, 
                                                           ref missing, 
                                                           ref missing, 
                                                           ref missing,
                                                           ref missing, 
                                                           ref missing,
                                                           ref missing, 
                                                           ref missing, 
                                                           ref missing);

                WordApp.Application.Selection.Text.

                WordApp.Application.Selection.Text = (string)replaceWithText; 
            }

        }

        private void button1_Click(object sender, EventArgs e)
        {
            Word.Application word = new Word.Application();
            Word.Document document = new Word.Document();

            // Define an object to pass to the word API for missing parameters
            object missing = Type.Missing;

            try
            {
                // Everything that word accepts must be an object
                object fileName = @"R:\Project\Proposals\TestMe.docx";

                object readOnly = true;
                document = word.Documents.Open(ref fileName, ref missing, ref readOnly,
                                               ref missing, ref missing, ref missing,
                                               ref missing, ref missing, ref missing, 
                                               ref missing, ref missing, ref missing, 
                                               ref missing, ref missing, ref missing,
                                               ref missing);

                document.Activate();

                String propsalTitle = "Lorem ipsum dolor sit amet";
                this.FindAndReplace(word, "Enter Proposal Title Here", propsalTitle);

                string defaultTechDesc = "ENTER RELEVANT TECHNICAL INFORMATION ABOUT PROJECT HERE.  USE PICTURES WHEN AVAILABLE AND APPLICABLE.";
                String techDesc = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer tempor rutrum libero sed dapibus. Praesent vehicula mollis ultricies. Maecenas vulputate enim vitae nisi gravida euismod. Morbi aliquam lacus enim. Donec suscipit mi at sem mollis id gravida sapien tempor. Donec in sem at quam dignissim placerat et a urna. Maecenas nec tellus vel ipsum volutpat aliquet nec ut tortor. Nulla facilisi. Donec vel quam lectus, ac mattis sapien. Nullam a justo nisl, sit amet congue velit. Ut imperdiet, velit id luctus vulputate, augue libero consectetur eros, quis gravida quam orci ac lacus. Curabitur mollis, mi sit amet interdum feugiat, risus lacus dignissim metus, ut luctus nulla orci a ante. Nunc et turpis vel ipsum faucibus rhoncus eu eu velit. Sed interdum, magna sit amet porta euismod, orci felis tincidunt mauris, et iaculis ligula arcu molestie justo. Duis sollicitudin purus ut purus hendrerit adipiscing. Donec aliquam ultricies eros. " + "\n\n" + defaultTechDesc;
                this.FindAndReplace(word, defaultTechDesc, techDesc);

                String deliverables = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
                this.FindAndReplace(word, "ENTER ALL ITEMS THAT WILL BE DELIVERD OVER PERIOD OF PERFORMANCE FOR THIS PROJECT.", deliverables);

                String Contact = "Jenny";
                this.FindAndReplace(word, "ENTER POINT OF CONTACT HERE", admContact);

                String PocTitle = "ipsum";
                this.FindAndReplace(word, "ENTER POC TITLE HERE", admPocTitle);

                String PocTeam = "dolor";
                this.FindAndReplace(word, "ENTER POC TEAM NAME HERE", admPocTeam);

                String PocPhone = "867-5309";
                this.FindAndReplace(word, "ENTER POC PHONE NUMBER HERE", admPocPhone);

                String PocEmail = "Jenny.G.Time@Sit.amet";
                this.FindAndReplace(word, "ENTER POC EMAIL HERE", admPocEmail);

                // Tables
                Word.Table table = document.Tables[1];

                double totalCost = 0;
                Word.Row row;
                for (int i = 1; i <= 10; i++)
                {
                    row = table.Rows.Add(ref missing);
                    row.Cells[1].Range.Text = "Task New " + i;
                    row.Cells[2].Range.Text = String.Format("{0:C}", i);
                    totalCost = totalCost + i;
                }

                row = table.Rows.Add(ref missing);
                row.Cells[1].Range.Text = "Total";
                row.Cells[2].Range.Text = String.Format("{0:C}", totalCost);

                object newFileName = @"R:\Project\Proposals\TestMe2.docx";

                document.SaveAs(ref newFileName,
                                ref missing, ref missing, ref missing, ref missing,
                                ref missing, ref missing, ref missing, ref missing,
                                ref missing, ref missing, ref missing, ref missing,
                                ref missing, ref missing, ref missing);
            }

            catch (Exception ex)
            {
                // Message here
            }
            finally
            {
                document.Close(ref missing, ref missing, ref missing);
                word.Application.Quit(ref missing, ref missing, ref missing);
            }
        }
    }
}
使用系统;
使用System.Collections.Generic;
使用系统组件模型;
使用系统数据;
使用系统图;
使用System.Linq;
使用系统文本;
使用System.Windows.Forms;
使用Word=Microsoft.Office.Interop.Word;
命名空间WordDoctTesting
{
公共部分类Form1:Form
{
公共表格1()
{
初始化组件();
}
专用void findandplace(Word.Application WordApp,
对象findText,
对象替换为文本)
{
对象缺失=类型。缺失;
objectmatchcase=true;
对象匹配wholeword=true;
对象匹配通配符=false;
对象matchSoundLike=false;
对象nmatCharlWordForms=false;
对象向前=真;
对象格式=false;
对象matchKashida=false;
对象匹配DicalCritics=false;
对象匹配alefhamza=false;
对象匹配控件=false;
对象只读=假;
对象可见=真实;
对象替换=2;
对象包裹=1;
if(replaceWithText.ToString().Length<250)//正常执行
{
WordApp.Selection.Find.Execute(参考findText,
参考火柴盒,
matchWholeWord裁判,
ref匹配通配符,
听起来像,
参考nmatchAllWordForms,
参考前进,
参考包装,
参考格式,
ref替换为文本,
参考替换,
matchKashida裁判,
参考变音符号,
参考matchAlefHamza,
参考匹配控制);
}
其他的
{
WordApp.Application.Selection.Find.Execute(参考findText,
参考失踪,
参考失踪,
参考失踪,
参考失踪,
参考失踪,
参考失踪,
参考失踪,
参考失踪,
参考失踪,
参考失踪,
参考失踪,
参考失踪,
参考失踪,
参考号缺失);
WordApp.Application.Selection.Text。
WordApp.Application.Selection.Text=(字符串)替换为文本;
}
}
私有无效按钮1\u单击(对象发送者,事件参数e)
{
Word.Application Word=新单词.Application();
Word.Document文档=新的Word.Document();
//定义一个对象以传递给word API以查找缺少的参数
对象缺失=类型。缺失;
尝试
{
//word接受的一切都必须是对象
对象文件名=@“R:\Project\Propositions\TestMe.docx”;
对象只读=真;
document=word.Documents.Open(ref文件名、ref缺失、ref只读、,
参考缺失,参考缺失,参考缺失,
参考缺失,参考缺失,参考缺失,
参考缺失,参考缺失,参考缺失,
参考缺失,参考缺失,参考缺失,
参考号缺失);
document.Activate();
字符串propsalTitle=“Lorem ipsum dolor sit amet”;
this.FindAndReplace(单词“在此处输入提案标题”,专有标题);
string defaultTechDesc=“在此处输入有关项目的相关技术信息。在可用和适用的情况下使用图片。”;
字符串techDesc="我们的知识来自于我们的精英,来自于我们的精英,来自于我们的自由,来自于我们的工具,来自于我们的经验,来自于我们的经验,来自于我们的经验,来自于我们的经验,来自于我们的经验,来自于我们的经验,来自于我们的经验,来自于我们的经验,来自于我们的经验不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Word = Microsoft.Office.Interop.Word;
using Color = Microsoft.Office.Interop.Word.WdColor;

namespace WordDocTesting
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void FindAndReplace(Word.Application WordApp,
                                    object findText,
                                    object replaceWithText,
                                    bool boldIt)
        {
            object missing = Type.Missing;

            object matchCase = true;
            object matchWholeWord = true;
            object matchWildCards = false;
            object matchSoundLike = false;
            object nmatchAllWordForms = false;
            object forward = true;
            object format = false;
            object matchKashida = false;
            object matchDiacritics = false;
            object matchAlefHamza = false;
            object matchControl = false;
            object read_only = false;
            object visible = true;
            object replace = 2;
            object wrap = 1;


            WordApp.Selection.Find.Execute(ref findText,
                                           ref matchCase,
                                           ref matchWholeWord,
                                           ref matchWildCards,
                                           ref matchSoundLike,
                                           ref nmatchAllWordForms,
                                           ref forward,
                                           ref wrap,
                                           ref format,
                                           /*ref replaceWithText,*/ ref missing,
                                           /*ref replace,*/         ref missing,
                                           ref matchKashida,
                                           ref matchDiacritics,
                                           ref matchAlefHamza,
                                           ref matchControl);


            if (boldIt)
            {
                WordApp.Application.Selection.Font.Bold = 1;
            }

            WordApp.Application.Selection.Font.Italic = 0;
            WordApp.Application.Selection.Font.Color = Color.wdColorBlack;

            WordApp.Application.Selection.Text = (string)replaceWithText; 
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Word.Application word = new Word.Application();
            Word.Document document = new Word.Document();

            // Define an object to pass to the word API for missing parameters
            object missing = Type.Missing;

            try
            {
                // Everything that word accepts must be an object
                object fileName = @"R:\Project\Proposals\TestMe.docx";

                object readOnly = true;
                document = word.Documents.Open(ref fileName, ref missing, ref readOnly,
                                               ref missing, ref missing, ref missing,
                                               ref missing, ref missing, ref missing, 
                                               ref missing, ref missing, ref missing, 
                                               ref missing, ref missing, ref missing,
                                               ref missing);

                document.Activate();

                String propsalTitle = "Lorem ipsum dolor sit amet";
                this.FindAndReplace(word, "Enter Proposal Title Here", propsalTitle, true);

                string defaultTechDesc = "ENTER RELEVANT TECHNICAL INFORMATION ABOUT PROJECT HERE.  USE PICTURES WHEN AVAILABLE AND APPLICABLE.";
                String techDesc = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer tempor rutrum libero sed dapibus. Praesent vehicula mollis ultricies. Maecenas vulputate enim vitae nisi gravida euismod. Morbi aliquam lacus enim. Donec suscipit mi at sem mollis id gravida sapien tempor. Donec in sem at quam dignissim placerat et a urna. Maecenas nec tellus vel ipsum volutpat aliquet nec ut tortor. Nulla facilisi. Donec vel quam lectus, ac mattis sapien. Nullam a justo nisl, sit amet congue velit. Ut imperdiet, velit id luctus vulputate, augue libero consectetur eros, quis gravida quam orci ac lacus. Curabitur mollis, mi sit amet interdum feugiat, risus lacus dignissim metus, ut luctus nulla orci a ante. Nunc et turpis vel ipsum faucibus rhoncus eu eu velit. Sed interdum, magna sit amet porta euismod, orci felis tincidunt mauris, et iaculis ligula arcu molestie justo. Duis sollicitudin purus ut purus hendrerit adipiscing. Donec aliquam ultricies eros. ";
                this.FindAndReplace(word, defaultTechDesc, techDesc, false);

                String deliverables = "Lorem ipsum dolor sit amet, consectetur adipiscing elit.";
                this.FindAndReplace(word, "ENTER ALL ITEMS THAT WILL BE DELIVERD OVER PERIOD OF PERFORMANCE FOR THIS PROJECT.", deliverables, false);

                String Contact = "Jenny";
                this.FindAndReplace(word, "ENTER POINT OF CONTACT HERE", Contact, false);

                String PocTitle = "ipsum";
                this.FindAndReplace(word, "ENTER POC TITLE HERE", PocTitle, false);

                String PocTeam = "dolor";
                this.FindAndReplace(word, "ENTER POC TEAM NAME HERE", PocTeam, false);

                String PocPhone = "867-5309";
                this.FindAndReplace(word, "ENTER POC PHONE NUMBER HERE", PocPhone, false);

                String PocEmail = "Jenny.G.Time@Sit.amet";
                this.FindAndReplace(word, "ENTER POC EMAIL HERE", PocEmail, false);

                // Tables
                Word.Table table = document.Tables[1];

                int x = 0;
                double totalCost = 0;
                Word.Row row;
                for (int i = 1; i <= 10; i++)
                {
                    x = i + 1;
                    row = table.Rows.Add(ref missing);
                    row.Cells[1].Range.Text = "Task New " + i;
                    row.Cells[2].Range.Text = String.Format("{0:C}", i);
                    table.Cell(x, 1).Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft;
                    table.Cell(x, 1).Range.Font.Bold = 0;
                    table.Cell(x, 2).Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight;
                    table.Cell(x, 2).Range.Font.Bold = 0;
                    totalCost = totalCost + i;
                }

                x = x + 1;
                row = table.Rows.Add(ref missing);
                row.Cells[1].Range.Text = "Total";
                row.Cells[2].Range.Text = String.Format("{0:C}", totalCost);
                table.Cell(x, 1).Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight;
                table.Cell(x, 1).Range.Font.Bold = 1;
                table.Cell(x, 2).Range.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight;
                table.Cell(x, 2).Range.Font.Bold = 1;

                object newFileName = @"R:\Project\Proposals\TestMe2.docx";

                document.SaveAs(ref newFileName,
                                ref missing, ref missing, ref missing, ref missing,
                                ref missing, ref missing, ref missing, ref missing,
                                ref missing, ref missing, ref missing, ref missing,
                                ref missing, ref missing, ref missing);
            }

            catch (Exception ex)
            {
                // Message here
            }
            finally
            {
                document.Close(ref missing, 
                               ref missing, 
                               ref missing);

                word.Application.Quit(ref missing, 
                                      ref missing, 
                                      ref missing);
            }
        }
    }
}