0

perlで次の例外が発生しています。また、私は今 perl テクノロジーに取り組んでいます。例外は:

Win32::OLE<0.1709> error 0x800a1423
       in METHOD/PROPERTYGET "Close" at getWordComments.pl line no 350

例外が発生している getWordComments.pl のサンプル コードを次に示します。
A)ドキュメントを開くための次のコード

#Open the document in MS Word
use Win32::OLE;
{
    no warnings;
    use Win32::OLE::Const 'Microsoft.Word';    # wd  constants
}

$word=Win32::OLE->new('Word.Application');
$word->{Visible} = 1;
$word->{DisplayAlerts} = 0;

$Document=$word->Documents->Open({Filename => $filename, ReadOnly => 1});

B)それから私はコメントを読んでいます。
C) ドキュメントを閉じるための次のコード。

$Document->{Saved}=1;
$Document->Close;
undef $Document;

#Close Word
$word->Quit;
undef $word;

これはoffice版の問題でしょうか?ドキュメントが .docx であるためです。.doc に対して適切に動作します。

この問題を解決するために私を助けてください。


ドキュメントからコメントを読み、ドキュメントをサーバーに保存しています。拡張子が *.docx および *.doc のドキュメントの残りの部分は正常に機能します。

また、perlでこれを行う方法を教えてください。

2003 Office および 2007 Office バージョンのドキュメントを閉じたいと思います。

これはバージョンの問題ですか?

ありがとう、よろしく Arvind Polekar

4

1 に答える 1

1

待って!読み取り専用で開いてから、保存済みとしてマークしていますか?? その右が私のメンタルプロセッサーにフラグを立てます。

  • 私が見つけたドキュメントは、これが別の形式への保存に関する問題であることを示しているようです。それは、あるケースでは機能するが、他のケースでは機能しないことを説明している可能性があります。

  • また、これが COM エラーであるという兆候も確認しました。COM について知っておくと役立ちます。doc と docx は、以前の doc ロジックで定義された同じインターフェイスの完全に異なる実装である可能性があります。また、古い実装 (ドキュメント) では、ReadOnly で開きたいと言って問題がなくても、保存済みとしてマークしたい場合がありますが、新しい実装では、これを行うべきではないという考えがあります。

ここでわかるように、処理される引数の 1 つが です。OriginalFormatその引数を指定しないと、デフォルトで doc 形式になり、明示的に指定せずに別の形式で保存しようとしているという例外がスローされる可能性があります。指示。同様に、別の引数はSaveChanges.

そのため、doc 形式で動作するデフォルトの doc 形式で変更を保存するよう暗黙的に指示している可能性がありますが、docx 形式の別の形式で保存しようとすると不平を言います。(当然)

于 2012-04-17T11:10:59.783 に答える