2017-11-06 8 views
1

開いているPowerPointドキュメントのすべてのテキストをアドインから抽出します。 WordでOfficeJS PowerPointドキュメントの各スライドからすべてのテキストを抽出する

、我々は次のようにします。

Word.run(context => { 
    var paragraphs = context.document.body.paragraphs; 
    context.load(paragraphs, 'text'); 
    return context.sync().then(() => { 
    var items = paragraphs.items.; 
    // Do something with items 
    } 
}); 

私たちは、PowerPointの文書のテキスト内にのみ興味を持っています。

PowerPoint用のAPIの具体的な使用方法については、あまり知られていません(thisはすべて見つかりました)。 This sample projectは、ドキュメントからデータを抽出するという点で私たちが望むものに近づいていますが、圧縮されたファイルを読み込んだり、ファイルチャンクからテキストを解析したりすることなく、それを行うことを望んでいました。

これに最も近づけるにはどうすればよいですか?

答えて

1

これは可能ではありません。 Office.jsリファレンスドキュメントでは、PowerPoint APIs以外のすべてをフィルタリングできますが、機能は多少原始的です。この場合、WordやExcelのようにドキュメント内のオブジェクトを繰り返し処理できるAPIはありません。

このサンプルで見つかったように、Document.getFileAsyncメソッドを使用して、生のOOXMLを取得できます。 OOXMLを解析することは、当初考えられていたほど苦痛ではありません(単なるXMLです)。大規模な課題は、OOXMLを使用した後で、変更内容をPowerPointにプッシュする方法がないことです。事実上、読み取り専用操作です。

Office Dev UserVoiceサイトにアクセスし、あなたの提案を追加することを強くお勧めします。 UserVoiceは、製品チームによって定期的にレビューされ、PowerPointがAPIで実行している制限事項を認識するための最良の方法です。

+0

返信いただきありがとうございます!私はバイナリ圧縮XMLを文字列XMLに変換するのに苦労しており、そこからスライドの内容を解析できます。私はデータを取得するために次の方法を使用しています:https://dev.office.com/reference/add-ins/shared/document.getfileasync#example---get-a-document-in-office-open-xml -compressed-format最後にfileContent変数をロギングすると、まだバイト単位であり、それを解析してOOXMLに戻すことはできません。これは圧縮のためですか? – IronLionZion

+0

'Compressed'を使ってファイルを返すように指示すると、実際にはOOXMLとその他のアセットを含む' .zip'ファイルである '.pptx'ファイルが送られます。生のコンテンツにアクセスする前に、ファイルを解凍する必要があります。 –

+0

それは理にかなっています。再度、感謝します。また、これは新しいスレッドを作っていますが、これは古いスレッドの回答を更新すると便利です:アドインが実行されているホスト(Word、Excelなど)を調べるにはどうすればよいですかに?私はStackOverflow上の "新しいAPI"への多くの参照を参照していますが、リリース(そして関連するリンクされたGitHubページはもはや存在しません)から明らかな更新はありません。ドキュメントをスキャンすると、これはWord 2016を確認する適切な方法だと思われます。Office.context.requirements.isSetSupported( 'WordApi')間違っていると、それを確認したり、正しい方向に向けることができますか? – IronLionZion

関連する問題