#c_sharp
public static Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application(); public static string generalfile = Application.StartupPath + "\\Shablon\\1.docx"; // файл-шаблон public static string newfile = Application.StartupPath + "\\" + Program.namePath + "\\протокол1.docx"; // новый файл на основе файла-шаблона public static Object fileName = generalfile; public static Object missing = Type.Missing; public void OpenFile() { app.Documents.Open(ref fileName); } public void SaveCloseFile() { app.ActiveDocument.SaveAs(newfile); app.ActiveDocument.Close(); app.Quit(); } public void FindReplace(string str_old, string str_new) { Microsoft.Office.Interop.Word.Find find = app.Selection.Find; find.Text = str_old; // текст поиска find.Replacement.Text = str_new; // текст замены find.Execute(FindText: Type.Missing, MatchCase: false, MatchWholeWord: false, MatchWildcards: false, MatchSoundsLike: missing, MatchAllWordForms: false, Forward: true, Wrap: Microsoft.Office.Interop.Word.WdFindWrap.wdFindContinue, Format: false, ReplaceWith: missing, Replace: Microsoft.Office.Interop.Word.WdReplace.wdReplaceAll); } При повторном создание файла ругается на метод openFile исключением System.Runtime.InteropServices.COMException. Сам вызов: OpenFile(); FindReplace("name", Program.namePath); FindReplace("Predsedatel", predsedatel_name + " - " + dolzhnostPred); FindReplace("V1", textBox6.Text.Trim()); FindReplace("V2", textBox7.Text.Trim()); FindReplace("V3", textBox8.Text.Trim()); FindReplace("Com1", comissionname[0] + " - " + dolzhnostCom[0]); FindReplace("Com2", comissionname[1] + " - " + dolzhnostCom[1]); FindReplace("Com3", comissionname[2] + " - " + dolzhnostCom[2]); FindReplace("Com4", comissionname[3] + " - " + dolzhnostCom[3]); FindReplace("Secretar", secretar_name + " - " + dolzhnostSec); FindReplace("ocenkaGos", Program.ocenkaGos + " %"); SaveCloseFile();
Ответы
Ответ 1
public static Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application(); Жил был Word... app.Quit(); ... но его закрыли ... app.Documents.Open(ref fileName); а потом попросили открыть файл... но было уже некому... В общем, перенеси app = new Microsoft.Office.Interop.Word.Application(); туда, где начинается работа - это где-то раньше вызова OpenFile.
Комментариев нет:
Отправить комментарий