Member 12699376 Ответов: 0

Исключение, выданное, в адок = wordapp.документы.открыть


Программа для получения пользовательского ввода из текстовых полей и использования его для замены слов в документе.

Я получаю исключение, когда запускаю его, и документ word, который он изначально использует для замены word, затем блокируется.

Есть помощники, пожалуйста?

Исключение части:
//Open the word document
              aDoc = wordApp.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 isVisible, ref missing, ref missing,
                  ref missing, ref missing);



Сведения об исключении:
System.Runtime.InteropServices.COMException was unhandled
  ErrorCode=-2146824090
  HelpLink=wdmain11.chm#36966
  Message=Command failed
  Source=Microsoft Word
  StackTrace:
       at Microsoft.Office.Interop.Word.Documents.Open(Object& FileName, Object& ConfirmConversions, Object& ReadOnly, Object& AddToRecentFiles, Object& PasswordDocument, Object& PasswordTemplate, Object& Revert, Object& WritePasswordDocument, Object& WritePasswordTemplate, Object& Format, Object& Encoding, Object& Visible, Object& OpenAndRepair, Object& DocumentDirection, Object& NoEncodingDialog, Object& XMLTransform)
       at HowToModifyWordDocuments.InputInfo.CreateWordDocument(Object fileName, Object saveAs) in C:\Users\gamalr\Desktop\Example\Input.cs:line 106
       at HowToModifyWordDocuments.InputInfo.Submit_Click(Object sender, EventArgs e) in C:\Users\gamalr\Desktop\Example\Input.cs:line 50
       at System.Windows.Forms.Control.OnClick(EventArgs e)
       at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
       at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       at System.Windows.Forms.Control.WndProc(Message& m)
       at System.Windows.Forms.ButtonBase.WndProc(Message& m)
       at System.Windows.Forms.Button.WndProc(Message& m)
       at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
       at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
       at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
       at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
       at HowToModifyWordDocuments.Program.Main() in C:\Users\gamalr\Desktop\Example\Program.cs:line 20
       at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args)
       at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
       at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
       at System.Threading.ThreadHelper.ThreadStart()
  InnerException: 


Что я уже пробовал:

использование системы;
использование системы.Коллекции.Общий;
использование системы.ComponentModel;
используя системы.Сведения;
использование системы.Рисование;
используя системы.Текст;
использование системы.Окна.Формы;
использование Word = Microsoft.Офис.- Взаимодействия.Слово;
использование системы.ИО;

пространство имен HowToModifyWordDocuments
{
открытый частичный класс InputInfo : Form
{

public string sowname { get; private set; }
public string cuslongname { get; private set; }
public string cusaddress { get; private set; }
public string engagementnum { get; private set; }
public string quotenum { get; private set; }
public string todaydate { get; private set; }
public string serviceagr { get; private set; }
public string serviceagrdate { get; private set; }
public string sename { get; private set; }
public string senum { get; private set; }
public string seemail { get; private set; }
public string setitle { get; private set; }
public string cusconname { get; private set; }
public string cuscontitle { get; private set; }
public string cusconnum { get; private set; }
public string funoverhour { get; private set; }
public string scope { get; private set; }
public string cusconmail { get; private set; }

общественные InputInfo()
{
метод InitializeComponent();

}

частная textBox2_TextChanged недействительным(объект отправителя, EventArgs в электронной)
{

}

общественного недействительными Submit_Click(объект отправителя, EventArgs в электронной)
{


CreateWordDocument (@"C:\Users\Public\Documents\test.doc", @"C:\Users\Public\Documents\new.doc");

}

частная SoWName_TextChanged недействительным(объект отправителя, EventArgs в электронной)
{

}
public void CreateWordDocument(имя объекта,
объект сохранить как)
{


sowname = SoWName.Текст;
cuslongname = CusLongName.Текст;
cusaddress = CusAddress.Текст;
engagementnum = EngagementNum. Text;
quotenum = QuoteNum.Текст;
todaydate = TodayDate.Текст;
serviceagr = ServiceAgr. Text;
serviceagrdate = ServiceAgrDate.Текст;
нудн = Нудн.Текст;
сенум = Сенум.Текст;
seemail = SEemail. Text;
setitle = SETitle.Текст;
cusconname= CusConName.Текст;
cuscontitle= Кусконтитл.Текст;
кусконнум= Кусконнум.Текст;
cusconmail= CusConMail. Text;
funoverhour= FunOverHour. Text;
объем= объем.Текст;

// Set Missing Value parameter-используется для представления
// пропущенное значение при вызове методов через
// взаимодействия.
объект отсутствует = система.Отражение.Недостающий.Ценность;

// Настройка слова.Класс приложения.
Слово.Приложение wordApp =
новое слово.ApplicationClass();

// Установи наше слово.Класс документа, который мы будем использовать.
Слово.Документ aDoc = null;

// Проверьте, существует ли этот файл
если (файл.Существует((строковый)именем))
{
Сегодня датавремя = Датавремя.Сейчас;

объект только для чтения = false;
объект isVisible = false;

// Установите слово так, чтобы оно не было видно.
wordApp.Видна = ложь;

// Откройте документ word
адок = wordApp.Документы.Открытые(арт именем, ссылка отсутствует,
ссылка только для чтения, ссылка отсутствует, отсутствует ссылка ссылка отсутствует,
ссылка отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует,
ссылка отсутствует, ссылка isVisible, ссылка отсутствует, ссылка отсутствует,
отсутствует Реф Реф отсутствует);

// Активация документа
адок.Активировать();

// Найдите владельцев мест и замените их ценностями.
этот.FindAndReplace(wordApp, "Sow NAME", sowname);
этот.FindAndReplace(wordApp, "длинное имя клиента", cuslongname);
этот.FindAndReplace(wordApp, "адрес клиента", cusaddress);
этот.FindAndReplace(wordApp, " ENGAGEMENT#", engagementnum);
этот.FindAndReplace(wordApp, " MYQUOTES#", quotenum);
этот.FindAndReplace(wordApp, "TODAYS DATE", todaydate);
этот.FindAndReplace(wordApp, "название соглашения об услугах", serviceagr);
этот.FindAndReplace(wordApp, "дата соглашения об услугах", serviceagrdate);
этот.FindAndReplace(wordApp, "SE NAME", sename);
этот.FindAndReplace(wordApp, "SE NUMBER", senum);
этот.FindAndReplace(wordApp, "SE EMAIL", seemail);
этот.FindAndReplace(wordApp, "SE TITLE", setitle);
этот.FindAndReplace(wordApp, "имя контакта с клиентом", cusconname);
этот.FindAndReplace(wordApp, "название контакта с клиентом", cuscontitle);
этот.FindAndReplace(wordApp, "номер клиента", cusconnum);
этот.FindAndReplace(wordApp, "электронная почта клиента", cusconmail);
этот.FindAndReplace(wordApp, "X HOURS", funoverhour);
этот.FindAndReplace(wordApp, "STR NAME", scope);

// Пример записи в начало документа.
адок.Содержание.InsertBefore ("это в начале\r\n\r\n");

// Пример записи в конец документа.
адок.Содержание.InsertAfter ("\r\n\r\n это в конце");
}


// Сохраните документ как правильное имя файла.
адок.Отсутствует Реф Реф "сохранить как" (ссылка "сохранить как", отсутствует холодильник, отсутствует,
ссылка отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует,
ссылка отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует,
ссылка отсутствует, ссылка отсутствует, ссылка отсутствует, ссылка отсутствует);

// Закройте документ - вы должны это сделать.
адок.Закрыть(ссылка отсутствует, отсутствует ссылка ссылка отсутствует);

Ящик для сообщений.Показать ("документ создан.");
}

///
/// Это просто вспомогательный метод для поиска / замены
/// текст.
///

/// & lt;param name= "WordApp" / & gt;Word Application to use
/// < param name= "findText" / & gt;текст для поиска
/// < param name= "replaceWithText" / & gt;Replacement text
частная пустота FindAndReplace (Word.Приложение WordApp,
объект findText,
объект replaceWithText)
{
объект matchCase = true;
объект matchWholeWord = true;
объект matchWildCards = false;
объект matchSoundsLike = false;
объект nmatchAllWordForms = false;
объект = истина;
формат объекта = false;
объект matchKashida = false;
объект matchDiacritics = false;
объект matchAlefHamza = false;
объект matchControl = false;
объект read_only = false;
объект, видимый = истина;
замена объекта = 2;
обертывание объекта = 1;

WordApp.Выбор.Найти.Execute(ref findText,
ref matchCase, ref matchWholeWord,
ref matchWildCards, ref matchSoundsLike,
nmatchAllWordForms Реф, Реф вперед,
Реф пленкой, формат Реф, Реф replaceWithText,
Реф заменить, matchKashida Реф ,
ref matchDiacritics, ref matchAlefHamza,
Реф matchControl);


}



частная textBox6_TextChanged недействительным(объект отправителя, EventArgs в электронной)
{

}
}


//частная btnCreateDocument_Click недействительным(объект отправителя, EventArgs в электронной)
// {
// CreateWordDocument (@"C:\Users\Public\Documents\test.doc", @"C:\Users\Public\Documents\new.doc");
//}
}

0 Ответов