こんにちはみんな良い午後(アルゼンチン時間)、私は、システムがクライアントからのいくつかの要件に応じてワード文書をフォーマットプロジェクトを受け取っていました。私が受け取る単語文書は.doc上にあります。また、別の形式または内部設計でエクスポートまたは作成する文書は.docxです。重要なことは、この同じコードがOffice12アセンブリで使用されていたことですが、Office15の新しいアセンブリを追加するとクラッシュしました。COM例外Range.InsertParagraphAfterを(使用)
私は、次のされたフローのクラッシュのproyectの一部を使用していますサンプルコード:
public void Prueba()
{
// Open word and a docx file
var wordApplication = new Application() { Visible = false };
string [email protected]"<Path>" ;
string strNombreArchivo = "<Name of the doc>.doc";
string strddd = "Foo.docx";
var docOriginal = wordApplication.Documents.Open(strPath+strNombreArchivo, ReadOnly: true);
//var docddd = wordApplication.Documents.Open(strPath + strddd, ReadOnly: false);
var docNuevo = wordApplication.Documents.Add(DocumentType: WdDocumentType.wdTypeDocument);
docOriginal.Content.Copy();
docNuevo.Content.Paste();
var docAUsar = docNuevo;
Range searchRange = docAUsar.Range();
searchRange.Find.ClearFormatting();
int nextSearchStart = searchRange.Start;
searchRange.Start = nextSearchStart;
Paragraph ParagraphParrafo = searchRange.Paragraphs.First;
nextSearchStart = ParagraphParrafo.Range.End;
String titleText = ParagraphParrafo.Range.Text;
try
{
// This is the point where the code crashes.
searchRange.InsertParagraphAfter();
docAUsar.Save();
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
// Close word
wordApplication.Quit();
this.Close();
}
例外メッセージは、次のとおりです。
System.Runtime.InteropServices.COMException was unhandled
HelpLink=wdmain11.chm#37373
HResult=-2146823683
Message=This method or property is not available because this command is not available for reading.
Source=Microsoft Word
ErrorCode=-2146823683
StackTrace:
en Microsoft.Office.Interop.Word.Range.InsertParagraphAfter()
en WindowsFormsApplication3.Form1.Prueba() en C:\Users\Dleekam\Google Drive\Proyectos\WindowsFormsApplication3\WindowsFormsApplication3\Form1.cs:línea 58
en WindowsFormsApplication3.Form1.Form1_Load(Object sender, EventArgs e) en C:\Users\Dleekam\Google Drive\Proyectos\WindowsFormsApplication3\WindowsFormsApplication3\Form1.cs:línea 25
en System.Windows.Forms.Form.OnLoad(EventArgs e)
en System.Windows.Forms.Form.OnCreateControl()
en System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
en System.Windows.Forms.Control.CreateControl()
en System.Windows.Forms.Control.WmShowWindow(Message& m)
en System.Windows.Forms.Control.WndProc(Message& m)
en System.Windows.Forms.ScrollableControl.WndProc(Message& m)
en System.Windows.Forms.Form.WmShowWindow(Message& m)
en System.Windows.Forms.Form.WndProc(Message& m)
en System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
en System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
en System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
InnerException:
興味深い:
に- 新しいファイルを使用するとクラッシュしません。
- 私は手でコンテンツを書き込むときにクラッシュしません。
- コンテンツをコピーして貼り付けると、クラッシュするコンテンツの一部が貼り付けられます。
- 新しい文書の内容を削除してもう一度やり直すとクラッシュします。
私は、ドキュメント原文の単語や段落の書式設定に関連すると思います。それは、元のドキュメントの内容を使用する場合にのみ発生します。しかし、私はまだ何が起こっているのか、それをどう対処するのか、あるいはこれを回避する方法はわかりません。それ以来、例外はそれほど説明的ではありません(私はいつも必要な特定の情報やエラーメッセージを受け取るわけではありません)が、私は既に誰かが同じ、関連しているか無関係なものかを調べるためにウェブを探していますエラーの
すべてのヘルプや向き意志とは高く評価され、コードを読み、理解するあなたの時間をありがとうございました。
親切よろしく ダグラスLeekam