0

私は、C# を使用してサーバー上で PowerPoint ファイルを生成できる機能を任されました。基本的には、テンプレートから始めて、プログラムでテキストをデータベースからのライブ データに置き換えます。私は過去 1 日間、この分野についていくつかの調査を行ってきましたが、次のことがわかりました。

PowerPoint にはこのような機能が組み込まれているため、外部データ ソースに接続してデータを取り込むことができます。私が見つけたほとんどの例では、サーバー上で行われる PowerPoint オートメーションを使用するか (私はこれに反対するようにアドバイスされています)、SQL Server バックエンドを想定しています。当社では、RDMS のニーズに Oracle を使用しています。Oracle には、Oracle BI と呼ばれるこれに対するソリューションがありますが、さまざまな Java EE コンポーネントなどを実行するには、まったく新しい Web サーバーのセットアップが必要です。価格は見ていませんが、オラクルを知ると安くはありません。また、エンド ユーザーのマシンに新しいソフトウェアをインストールする必要がありますが、これは本当に避けたいことです。

その場で PowerPoint ファイルを生成することが可能です。基本的にこの問題を解決する頼りになる会社 (すべてのヘルプ フォーラムが指摘し、絶賛されている) はAsposeです。これらには、考えられるほぼすべての Office 形式を処理するための .NET コンポーネントがあります。問題は、それらが天文学的に高価であることです。PowerPoint コンポーネント (最大 10 人の開発者向けのサイト ライセンス) だけでも 3,995 ドルかかります。

3 つ目の可能性は、社内でソリューションを生成することです。結局のところ、PPTX ファイルは単なる xml ですよね? よく見ると、PPTX は gzip アーカイブのようです。これには多数のフォルダーが含まれており、それぞれに多数の XML ファイルが含まれています。PPTX ファイルを変更すると、ファイルを一時ディレクトリに解凍し、XML ファイルを読み取って内容を変更し、すべてを再度パッケージ化して、ファイルを応答ストリームに書き出す必要があります。おそらく、すべてを抽出することなく、オンザフライで gzip ストリームを処理できるライブラリがあるでしょう。

私の質問:圧縮された XML ファイルを操作したり、非常に高価なソフトウェアを購入したりする必要がない、.NET を使用して PPTX ファイルを操作する簡単な方法はありますか? 基本的に、PowerPoint ファイルを変更し、テキストを変更して、ユーザーがその生成されたファイルを Web サーバーからダウンロードできるようにする必要があります。

4

2 に答える 2

4

OpenXMLは、Office ドキュメントを操作できる Microsoft の .Net ライブラリです。PPTX ファイルを開くことができ、XML コンテンツをラップするオブジェクト モデルを提供します。

OpenXML SDKMSDN ドキュメントへのリンクは次のとおりです。

OpenXML を使用して、ASP.Net ページがデータベースから Word ドキュメントを動的に生成できるようにしました。

于 2013-11-13T17:57:38.773 に答える
4

Don't use Office Interop on a web server. It's an all-around bad idea.

If you are only replacing text placeholders for files that will not change, the home grown solution that finds the placeholders in the xml files in the gzip archive should be doable. .Net has had zip support for some time, and it is greatly improved if you are able to use .Net 4.5, so you shouldn't need to extract the archive to a temporary location at all.

PowerPoint should also support connecting directly to Oracle in the same way it supports connecting to Sql Server (just play around with the connection options), without needing the special Oracle BI stuff. However, I'd still prefer the home-grown solution, as this will only work while the powerpoint file is able to reach your database directly, which is typically only possible in your local LAN environment or with an active VPN.

If you want anything fancier than a simple text replacement, perhaps looks for an Aspose competitor.

于 2013-11-13T17:55:12.150 に答える