1
我需要生成doc(真正的文檔,而不是docx)文件,我發現的「最好」的方式是使用字自動(Word 2010)。我有我打開的文件,然後在將其保存爲新名稱之前替換內部的值。 (例如:我用「155023」替換「CHRONO」)。 爲此,我使用Application.Selection.Find。當新值超過255個字符時(微軟的限制......),我剛剛遇到了問題。爲了避免這個問題,我在這種情況下使用TypeText。 現在我的問題是一旦我使用TypeText,替換不再工作。我找不到原因。 任何想法將不勝感激。替換TypeText後無效
我的代碼是在一個函數,稱爲與每個值的foreach來代替:
private void Replace(Application app, string name, string newValue)
{
Selection selection = app.Selection;
Find find = selection.Find;
Replacement replacement = find.Replacement;
find.ClearFormatting();
find.Text = "<" + name + ">";
// Word limitation : can't replace with more than 255 characters,
// use another way to do it if that's the case
if (tempNewValue.Length < 255)
{
replacement.ClearFormatting();
replacement.Text = tempNewValue;
find.Execute(Replace: replaceAll);
}
else
{
while (find.Execute())
{
selection.TypeText(tempNewValue);
}
}
Marshal.ReleaseComObject(replacement);
Marshal.ReleaseComObject(find);
Marshal.ReleaseComObject(selection);
}