POIを参照して- Excel で開いているファイルに書き込めませんか?
開発中のJava アプリケーションに必要な機能は、上記の PowerPoint バージョンです。Java を使用してスライドを作成し、キャプチャしたアプリケーション データから生成されたコンテンツを追加してから、Microsoft PowerPoint で現在開いている既存の PowerPoint ファイルにスライドを追加します。
PowerPoint ファイルが開かれていない場合、Java アプリケーションはまず必要に応じて Microsoft PowerPoint を開き、次に新しい空の PowerPoint ファイルを作成してから Microsoft PowerPoint で開きます。
たとえば、私のアプリケーションはTest.pptx
. アプリケーションは、Microsoft PowerPoint アプリケーションでそれを開きます。次に、スライドを追加します。操作は成功し、例外はスローされません。ただし、変更は Microsoft PowerPoint ビューに反映されません。
- Microsoft PowerPoint でファイルを閉じて再度開くと、更新された変更が表示されます。しかし、これは私が望むものではありません。ユーザーは新しいスライドを継続的に追加し、スライドを追加するたびに Microsoft PowerPoint アプリケーションを再起動しなくても、これらのスライドがリアルタイムで Microsoft PowerPoint ビューに更新されるのを確認できる必要があります。
~$Test.pptx
Microsoft PowerPoint で PowerPoint ファイルを開くと、デスクトップに一時ファイルが作成されることに気付きました。生成されたスライドを Java アプリケーションに直接追加しようとしまし~Test.pptx
たFileNotFoundException: the process cannot access the file because it is being used by another process.
が、その後スローされます。
このアプリケーションは、Java 1.8 を使用して実装され、Windows 10 で実行され、Microsoft Office 2013 を使用します。この特定の機能の開発はゼロから始まったばかりなので、解決策はまだ模索されています。
現在、Apache POI を使用していますが、問題を解決することを意味する場合は、Apache POI を使用しないように切り替えることができます。Microsoft Office マクロを使用してみようということになりました。マクロの使用方法が十分に理解されていないため、このアイデアはまだ調査中です。
必要な機能をどのように実装できますか? 仕事を成し遂げるには、どのようなテクノロジやライブラリが必要ですか?
TutorialsPoint の Apache POI PPT チュートリアルからのサンプル コード。既存の PowerPoint ファイルは既に Microsoft PowerPoint で開かれている必要があります。以下のコードを実行すると、追加されたスライドが Microsoft PowerPoint ビューですぐに表示される必要があります。注意: Apache POI の使用は必須ではありません。
public class EditPresentation {
public static void main(String ar[]) throws IOException{
//opening an existing slide show
File file = new File("example1.pptx");
FileInputStream inputstream=new FileInputStream(file);
XMLSlideShow ppt = new XMLSlideShow(inputstream);
//adding slides to the slodeshow
XSLFSlide slide1 = ppt.createSlide();
XSLFSlide slide2 = ppt.createSlide();
//saving the changes
FileOutputStream out = new FileOutputStream(file);
ppt.write(out);
System.out.println("Presentation edited successfully");
out.close();
}
}