我在網上找了些資料
public void Merge(string strOrgDoc, string[] arrCopies, string strOutDoc)
{
ApplicationClass objApp = null; //boxing of default values for COM interop purposes
object objMissing = Missing.Value;
object objFalse = false;
object objTarget = WdMergeTarget.wdMergeTargetSelected;
object objUseFormatFrom = WdUseFormattingFrom.wdFormattingFromSelected; try
{
objApp = new ApplicationClass();運行在這裏就出錯了,我用的是office 2007,在網上也找了相關資料,設置什麽dcom的Microsoft Office word97-2003中的權限,這裏不管我添加什麽人員,但最後運行是還是出錯.而我在winform中則正常運行,請問是什麽原因,請高手們賜教!!
object objOrgDoc = strOrgDoc;
Document objDocLast = null;
Document objDocBeforeLast = null; objDocLast = objApp.Documents.Open(
ref objOrgDoc, //FileName
ref objMissing, //ConfirmVersions
ref objMissing, //ReadOnly
ref objMissing, //AddToRecentFiles
ref objMissing, //PasswordDocument
ref objMissing, //PasswordTemplate
ref objMissing, //Revert
ref objMissing, //WritePasswordDocument
ref objMissing, //WritePasswordTemplate
ref objMissing, //Format
ref objMissing, //Enconding
ref objMissing, //Visible
ref objMissing, //OpenAndRepair
ref objMissing, //DocumentDirection
ref objMissing, //NoEncodingDialog
ref objMissing //XMLTransform
); foreach(string strCopy in arrCopies)
{
Debug.WriteLine("Merging file " + strCopy);
objDocLast.Merge(
strCopy, //FileName
ref objTarget, //MergeTarget
ref objMissing, //DetectFormatChanges
ref objUseFormatFrom, //UseFormattingFrom
ref objMissing //AddToRecentFiles
);
objDocBeforeLast = objDocLast;
objDocLast = objApp.ActiveDocument;
Debug.WriteLine("The active document is " + objDocLast.Name); if (objDocBeforeLast != null)
{
Debug.WriteLine("Closing " + objDocBeforeLast.Name);
objDocBeforeLast.Close(
ref objFalse, //SaveChanges
ref objMissing, //OriginalFormat
ref objMissing //RouteDocument
);
}
} object objOutDoc = strOutDoc;
objDocLast.SaveAs(
ref objOutDoc, //FileName
ref objMissing, //FileFormat
ref objMissing, //LockComments
ref objMissing, //PassWord
ref objMissing, //AddToRecentFiles
ref objMissing, //WritePassword
ref objMissing, //ReadOnlyRecommended
ref objMissing, //EmbedTrueTypeFonts
ref objMissing, //SaveNativePictureFormat
ref objMissing, //SaveFormsData
ref objMissing, //SaveAsAOCELetter,
ref objMissing, //Encoding
ref objMissing, //InsertLineBreaks
ref objMissing, //AllowSubstitutions
ref objMissing, //LineEnding
ref objMissing //AddBiDiMarks
); foreach(Document objDocument in objApp.Documents)
{
objDocument.Close(
ref objFalse, //SaveChanges
ref objMissing, //OriginalFormat
ref objMissing //RouteDocument
);
}
}
finally
{
objApp.Quit(
ref objMissing, //SaveChanges
ref objMissing, //OriginalFormat
ref objMissing //RoutDocument
);
objApp = null;
}
}
public void Merge(string strOrgDoc, string[] arrCopies, string strOutDoc)
{
ApplicationClass objApp = null; //boxing of default values for COM interop purposes
object objMissing = Missing.Value;
object objFalse = false;
object objTarget = WdMergeTarget.wdMergeTargetSelected;
object objUseFormatFrom = WdUseFormattingFrom.wdFormattingFromSelected; try
{
objApp = new ApplicationClass();運行在這裏就出錯了,我用的是office 2007,在網上也找了相關資料,設置什麽dcom的Microsoft Office word97-2003中的權限,這裏不管我添加什麽人員,但最後運行是還是出錯.而我在winform中則正常運行,請問是什麽原因,請高手們賜教!!
object objOrgDoc = strOrgDoc;
Document objDocLast = null;
Document objDocBeforeLast = null; objDocLast = objApp.Documents.Open(
ref objOrgDoc, //FileName
ref objMissing, //ConfirmVersions
ref objMissing, //ReadOnly
ref objMissing, //AddToRecentFiles
ref objMissing, //PasswordDocument
ref objMissing, //PasswordTemplate
ref objMissing, //Revert
ref objMissing, //WritePasswordDocument
ref objMissing, //WritePasswordTemplate
ref objMissing, //Format
ref objMissing, //Enconding
ref objMissing, //Visible
ref objMissing, //OpenAndRepair
ref objMissing, //DocumentDirection
ref objMissing, //NoEncodingDialog
ref objMissing //XMLTransform
); foreach(string strCopy in arrCopies)
{
Debug.WriteLine("Merging file " + strCopy);
objDocLast.Merge(
strCopy, //FileName
ref objTarget, //MergeTarget
ref objMissing, //DetectFormatChanges
ref objUseFormatFrom, //UseFormattingFrom
ref objMissing //AddToRecentFiles
);
objDocBeforeLast = objDocLast;
objDocLast = objApp.ActiveDocument;
Debug.WriteLine("The active document is " + objDocLast.Name); if (objDocBeforeLast != null)
{
Debug.WriteLine("Closing " + objDocBeforeLast.Name);
objDocBeforeLast.Close(
ref objFalse, //SaveChanges
ref objMissing, //OriginalFormat
ref objMissing //RouteDocument
);
}
} object objOutDoc = strOutDoc;
objDocLast.SaveAs(
ref objOutDoc, //FileName
ref objMissing, //FileFormat
ref objMissing, //LockComments
ref objMissing, //PassWord
ref objMissing, //AddToRecentFiles
ref objMissing, //WritePassword
ref objMissing, //ReadOnlyRecommended
ref objMissing, //EmbedTrueTypeFonts
ref objMissing, //SaveNativePictureFormat
ref objMissing, //SaveFormsData
ref objMissing, //SaveAsAOCELetter,
ref objMissing, //Encoding
ref objMissing, //InsertLineBreaks
ref objMissing, //AllowSubstitutions
ref objMissing, //LineEnding
ref objMissing //AddBiDiMarks
); foreach(Document objDocument in objApp.Documents)
{
objDocument.Close(
ref objFalse, //SaveChanges
ref objMissing, //OriginalFormat
ref objMissing //RouteDocument
);
}
}
finally
{
objApp.Quit(
ref objMissing, //SaveChanges
ref objMissing, //OriginalFormat
ref objMissing //RoutDocument
);
objApp = null;
}
}
{000209FF-0000-0000-C000-000000000046};
但我的程序是提示這個錯誤.我想原因是我的office 是2007的原因吧.所以我也不知道怎麽設置好,跑去注冊表把word.application12的增加權限,但是也不行
暈死.求救!!
设置完权限重启下!