3

VSTO Office 2007 アドインを作成しています。

byte[]ハードドライブの代わりに Web サービスに保存できるソリューションを有効にするか、見つける必要があります。

そのため、Web サイトにアクセスして URL をクリックし、[Word ドキュメントを送信] をクリックしてドキュメントを開き、[MS Word 2007 を使用して開く] を選択します。

ドキュメントが開き、データを確認すると、次のようになります。

ActiveDocument.Fullname = http://[サーバー名または IP]/[一部の iis フォルダー]/file.asp?id=353&type=doc`

元のファイルまたは一時ファイルが存在する場合は存在しないため、これはすべてメモリ内にあると思います。

ドキュメントが開いていても、ディスクから問題はありません。byte[]現在からどうすればよいActiveDocumentですか?

私は多くの答えを見つけましたが、それはできないと述べています。しかし、私はまたbyte[]、現在のActiveDocument.

誰でも私を助けることができますか?

4

1 に答える 1

2

ActiveDocumentCOM 相互運用機能に変換してIPersistFile、開いているドキュメントのバイトのコピーをローカルの一時パスに保存し、それらを読み込んで Web サービスに送信することができます。Office では、最初にディスクに保存しないと、アクティブなドキュメントからバイトを読み取ることはできません。この MSDN ブログを参照してください。

COM.IPersistFile compoundDocument = Application.ActiveDocument as COM.IPersistFile; 
compoundDocument.Save(filePath, false);
byte[] content = File.ReadAllBytes(filePath);
于 2012-08-29T14:17:47.570 に答える