2013-09-30 2 views
1

Я написал следующий код для редактирования закладок документа Word., Поскольку документ сгенерирован, документ видна, но если я закрываю его и пытаюсь открыть тот же документ снова, слово doc дает error as:Невозможно открыть файл Doc после редактирования в C#

1. Проверить права доступа к файлу/файлу. 2. Убедитесь, что имеется достаточное количество памяти и свободного места на диске.

private void GenerateApplication() 
{ 
object readOnly = true; 
object repair = false; 
object bookMarkName = "applicantName"; 
object bookMarkCompany = "firmName"; 
object bookMarkPost = "postName"; 

fielName = @"C:\Documents and Settings\AllUsers\Desktop\OperateWordFromC#.dotx"; 


objDoc = wordApp.Documents.Open(ref fielName, ref missingValuesValues, ref readOnly,  ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref repair, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues); 

objDoc.Activate(); 

objDoc.Bookmarks.get_Item(ref bookMarkName).Range.Text = txtApplicantName.Text;  

objDoc.Bookmarks.get_Item(ref bookMarkCompany).Range.Text = txtAppliedCompany.Text; 
objDoc.Bookmarks.get_Item(ref bookMarkPost).Range.Text = txtAppliedPost.Text; 

string outputFile = @"C:\Documents and Settings\All Users\Desktop\ApplicationOf-" + txtApplicantName.Text + ".docx"; 

bookMarkName = null; 
bookMarkCompany = null; 
bookMarkPost = null; 

Object objSaveAsFile = outputFile; 
Object objFileFormat = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatDocument; 

wordApp.ActiveDocument.SaveAs(ref objSaveAsFile, ref repair, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues, ref missingValuesValues); 
wordApp.Visible = true; 
} 
+0

Закрыт ли файл после его сохранения? – AsfK

ответ

1

вы открываете (который на него ссылается objDoc), имеет свой собственный .SaveAs метод со следующими параметрами документа, детали в Microsoft documentation:

objDoc.SaveAs(ref objSaveAsFile, ref objFileFormat, ref objLockComments, 
    ref objPassword, ref objAddToRecentFiles, ref objWritePassword, 
    ref objReadOnlyRecommended, ref objEmbedTrueTypeFonts, 
    ref objSaveNativePictureFormat, ref objSaveFormsData, 
    ref objSaveAsAOCELetter, ref objEncoding, ref objInsertLineBreaks, 
    ref objAllowSubstitutions, ref objLineEnding, ref objAddBiDiMarks); 

Таким образом, сохранить документ таким образом (вместо ссылки на wordApp.ActiveDocument). Перед вызовом SaveAs вам необходимо объявить и инициализировать переменные выше.

Вы также должны закрыть документ, если вам больше не нужен доступ (с использованием objDoc.Close()), но не позднее, чем ваше приложение закроется.

Когда вы позже снова откроете вновь сохраненный документ и измените его, вместо него вы можете использовать .Save() (для этого не требуются какие-либо параметры).

+0

Спасибо !!! Это сработало для меня :) –

Смежные вопросы