查找特定文本并替换为MS Word中的图像文件 [英] Find specific text and replace with Image file in MS Word
本文介绍了查找特定文本并替换为MS Word中的图像文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
MS word文件如下所示
MS word file shown like below
#A ## B ## C ## D ## E#
#A# #B# #C# #D# #E#
I已实现以下代码,以使用C#替换MS word文件中的文本。
I have implemented below code to replace text in MS word file using C#.
public void ReplaceWordDoc()
{
object missing = Missing.Value;
Document doc = Globals.ThisAddIn.Application.ActiveDocument;
List<ReplacerSearch> search = GetSearchList();
foreach (var searchItem in search)
{
foreach (Range tmpRange in ((Document)doc).StoryRanges)
{
tmpRange.Find.ClearFormatting();
tmpRange.Find.Text = searchItem.Find;
tmpRange.Find.Replacement.ClearFormatting();
tmpRange.Find.Replacement.Text = searchItem.Replace;
object replaceAll = WdReplace.wdReplaceAll;
if (searchItem.Replace.Contains("gif"))
{
tmpRange.InlineShapes.AddPicture(searchItem.Replace, Type.Missing, Type.Missing, tmpRange);
}
else
{
tmpRange.Find.Execute(ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref replaceAll, ref missing, ref missing, ref missing, ref missing);
}
}
}
}
private List<ReplacerSearch> GetSearchList()
{
List<ReplacerSearch> ilst = new List<ReplacerSearch>();
for (int i = 0; i <= 4; i++)
{
ReplacerSearch ObjReplacerSearch = new ReplacerSearch();
if (i == 0)
{
ObjReplacerSearch.Find = "#A#";
ObjReplacerSearch.Replace = "ABCD";
}
else if (i == 1)
{
ObjReplacerSearch.Find = "#B#";
ObjReplacerSearch.Replace = "EFGH";
}
else if (i == 2)
{
ObjReplacerSearch.Find = "#C#";
ObjReplacerSearch.Replace = "IJKL";
}
else if (i == 3)
{
ObjReplacerSearch.Find = "#D#";
ObjReplacerSearch.Replace = "MVC Developer";
}
else if (i == 4)
{
ObjReplacerSearch.Find = "#E#";
ObjReplacerSearch.Replace = "D:\\ajax_loader.gif";
}
ilst.Add(ObjReplacerSearch);
}
return ilst;
}
我的MS字输出就像是,
My MS word out put is like,
[图片] #ABCD ## EFGH ## IJKL #MVC开发者##E#
[Image] #ABCD# #EFGH# #IJKL# #MVC Developer# #E#
我需要#E#的地方图片开始。
I need image at place of #E# not on the start.
推荐答案
我得到了我的解决方案。
I got my solution.
public void ReplaceWordDoc()
{
object missing = Missing.Value;
Document doc = Globals.ThisAddIn.Application.ActiveDocument;
List<ReplacerSearch> search = GetSearchList();
foreach (var searchItem in search)
{
foreach (Range tmpRange in ((Document)doc).StoryRanges)
{
tmpRange.Find.ClearFormatting();
tmpRange.Find.Text = searchItem.Find;
tmpRange.Find.Replacement.ClearFormatting();
tmpRange.Find.Replacement.Text = searchItem.Replace;
if (searchItem.Replace.Contains("gif"))
{
tmpRange.Find.Replacement.Text = "";
Object end = doc.Characters.Count;
Range tmpRange1 = doc.Range(0, ref end);
Find fnd = tmpRange1.Find;
fnd.ClearFormatting();
fnd.Text = searchItem.Find;
fnd.Execute(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);
tmpRange1.InlineShapes.AddPicture(searchItem.Replace, Type.Missing, Type.Missing, Type.Missing);
}
tmpRange.Find.Execute(ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, WdReplace.wdReplaceAll, ref missing, ref missing, ref missing, ref missing);
}
}
doc.Close(ref missing, ref missing, ref missing);
}
private List<ReplacerSearch> GetSearchList()
{
List<ReplacerSearch> ilst = new List<ReplacerSearch>();
for (int i = 0; i <= 4; i++)
{
ReplacerSearch ObjReplacerSearch = new ReplacerSearch();
if (i == 0)
{
ObjReplacerSearch.Find = "#A#";
ObjReplacerSearch.Replace = "ABCD";
}
else if (i == 1)
{
ObjReplacerSearch.Find = "#B#";
ObjReplacerSearch.Replace = "EFGH";
}
else if (i == 2)
{
ObjReplacerSearch.Find = "#C#";
ObjReplacerSearch.Replace = "IJKL";
}
else if (i == 3)
{
ObjReplacerSearch.Find = "#D#";
ObjReplacerSearch.Replace = "Developer";
}
else if (i == 4)
{
ObjReplacerSearch.Find = "#E#";
ObjReplacerSearch.Replace = "D:\\ajax_loader.gif";
}
ilst.Add(ObjReplacerSearch);
}
return ilst;
}
这篇关于查找特定文本并替换为MS Word中的图像文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文