您可以像我那樣做。對不起,可能壞的編碼,但偉大工程
using Microsoft.office.interop.word.
var application = new Word.Application();
string path = Path.GetDirectoryName(Path.GetFullPath("YourDocsName.doc"));
object path_YourDocsName = path + @"\folder\YourDocsName.doc";
object o = Missing.Value;
object oFalse = false;
object oTrue = true;
Word._Application app = null;
Word.Documents docs = null;
Word.Document doc = null;
try
{
app = new Word.Application();
app.Visible = false;
app.DisplayAlerts = Word.WdAlertLevel.wdAlertsNone;
docs = app.Documents;
doc = docs.Open(ref path_YourDocsName, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o, ref o);
doc.Activate();
foreach (Word.Range range in doc.StoryRanges)
{
Word.Find find = range.Find;
object findText = "[Todays date]";
// object findText = { "[Todays date]","[]" };
object replacText = todaysdate; //gets todays date and time to doc
object replace = Word.WdReplace.wdReplaceAll;
object findWrap = Word.WdFindWrap.wdFindContinue;
find.Execute(ref replaceThis, ref o, ref o, ref o, ref oFalse, ref o,
ref o, ref findWrap, ref o, ref replaceThisWith,
ref replace, ref o, ref o, ref o, ref o);
Word.Find find1 = range.Find;
object findText1 = "[doc content]";
object replacText1 = Name;
object replace1 = Word.WdReplace.wdReplaceAll;
object findWrap1 = Word.WdFindWrap.wdFindContinue;
find.Execute(ref findText1, ref o, ref o, ref o, ref oFalse, ref o,
ref o, ref findWrap1, ref o, ref replacText1,
ref replace1, ref o, ref o, ref o, ref o);
Word.Find find2 = range.Find;
object findText2 = "[doc content]";
object replacText2 = Somestringyouneed;
object replace2 = Word.WdReplace.wdReplaceAll;
object findWrap2 = Word.WdFindWrap.wdFindContinue;
find.Execute(ref findText2, ref o, ref o, ref o, ref oFalse, ref o,
ref o, ref findWrap2, ref o, ref replacText2,
ref replace2, ref o, ref o, ref o, ref o);
Word.Find find3 = range.Find;
object findText3 = "[Doc content]";
object replacText3 = somesecondstringyouneed;
object replace3 = Word.WdReplace.wdReplaceAll;
object findWrap3 = Word.WdFindWrap.wdFindContinue;
find.Execute(ref findText3, ref o, ref o, ref o, ref oFalse, ref o,
ref o, ref findWrap3, ref o, ref replacText3,
ref replace3, ref o, ref o, ref o, ref o);
Word.Find find4 = range.Find;
object findText4 = "[doc content]";
object replacText4 = somesecondstringyouneed;
object replace4 = Word.WdReplace.wdReplaceAll;
object findWrap4 = Word.WdFindWrap.wdFindContinue;
find.Execute(ref findText4, ref o, ref o, ref o, ref oFalse, ref o,
ref o, ref findWrap4, ref o, ref replacText4,
ref replace4, ref o, ref o, ref o, ref o);
Word.Find find5 = range.Find;
object findText5 = "[doc content]";
object replacText5 = somesecondstringyouneed;
object replace5 = Word.WdReplace.wdReplaceAll;
object findWrap5 = Word.WdFindWrap.wdFindContinue;
find.Execute(ref findText5, ref o, ref o, ref o, ref oFalse, ref o,
ref o, ref findWrap5, ref o, ref replacText5,
ref replace5, ref o, ref o, ref o, ref o);
Word.Find find6 = range.Find;
object findText6 = "[doc content]";
object replacText6 = somesecondstringyouneed;
object replace6 = Word.WdReplace.wdReplaceAll;
object findWrap6 = Word.WdFindWrap.wdFindContinue;
find.Execute(ref findText6, ref o, ref o, ref o, ref oFalse, ref o,
ref o, ref findWrap6, ref o, ref replacText6,
ref replace6, ref o, ref o, ref o, ref o);
Word.Find find7 = range.Find;
object findText7 = "[doc content]";
object replacText7 = somesecondstringyouneed;
object replace7 = Word.WdReplace.wdReplaceAll;
object findWrap7 = Word.WdFindWrap.wdFindContinue;
find.Execute(ref findText7, ref o, ref o, ref o, ref oFalse, ref o,
ref o, ref findWrap7, ref o, ref replacText7,
ref replace7, ref o, ref o, ref o, ref o);
Word.Find find8 = range.Find;
object findText8 = "[doc content]";
object replacText8 = somesecondstringyouneed;
object replace8 = Word.WdReplace.wdReplaceAll;
object findWrap8 = Word.WdFindWrap.wdFindContinue;
find.Execute(ref findText8, ref o, ref o, ref o, ref oFalse, ref o,
ref o, ref findWrap8, ref o, ref replacText8,
ref replace8, ref o, ref o, ref o, ref o);
Word.Find find9 = range.Find;
object findText9 = "[doc content]";
object replacText9 = somesecondstringyouneed;
object replace9 = Word.WdReplace.wdReplaceAll;
object findWrap9 = Word.WdFindWrap.wdFindContinue;
find.Execute(ref findText9, ref o, ref o, ref o, ref oFalse, ref o,
ref o, ref findWrap9, ref o, ref replacText9,
ref replace9, ref o, ref o, ref o, ref o);
Marshal.FinalReleaseComObject(find);
Marshal.FinalReleaseComObject(find1);
Marshal.FinalReleaseComObject(find2);
Marshal.FinalReleaseComObject(find3);
Marshal.FinalReleaseComObject(find4);
Marshal.FinalReleaseComObject(find5);
Marshal.FinalReleaseComObject(find6);
Marshal.FinalReleaseComObject(find7);
Marshal.FinalReleaseComObject(find8);
Marshal.FinalReleaseComObject(find9);
Marshal.FinalReleaseComObject(range);
}
var path_YourDocsName = path + @"\folder\YourDocsName.doc";
Console.WriteLine(path_YourDocsName);
doc.SaveAs(path_YourDocsName);
((Word._Document)doc).Close(ref o, ref o, ref o);
doc.Close();
app.Quit(ref o, ref o, ref o);
}
catch (Exception ex)
{
Console.WriteLine(ex.StackTrace);
}
finally
{
if (doc != null) Marshal.FinalReleaseComObject(doc);
if (docs != null) Marshal.FinalReleaseComObject(docs);
if (app != null) Marshal.FinalReleaseComObject(app);
}
爲什麼你要尋找一個替代內置的方法? – stuartd
這是我寫的程序。我只想知道我必須處理的不同選擇。查找和替換內置方法的作品,但不是我的情況最好的解決方案。 – Dylan