0

VB Net と telerik コントロールを使用して Web アプリケーションを構築しています。いくつかの ColumnChart RadHtmlCharts をオンにした画面があり、それらをコード ビハインド ファイルの PowerPoint プレゼンテーションに入れる必要があります。

私の現在のアプローチは、既存の .PPTX ファイルを取得してステップ実行し、必要に応じてテキストを置き換えるなどです。あとは、グラフをプレゼンテーションに取り込むだけです。

これが私がスライドを通して作っているループです。

    ' generate
    For Each slide As SlidePart In pCopy.PresentationPart.SlideParts

        ' THIS IS WHERE THE CHARTS NEED TO BE ADDED TO THE SLIDE

    Next

注: グラフを返す関数を作成しましたが、今欠けているのは、それをプレゼンテーションに組み込むために必要な手順だけです。

これが私が含めた「インポート」です...

Imports Telerik.Web.UI 
Imports System.Data 
Imports System.IO 
Imports System.Data.SqlClient
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.PowerPoint 
Imports DocumentFormat.OpenXml
Imports DocumentFormat.OpenXml.Packaging 
Imports DocumentFormat.OpenXml.Presentation

どんな助けでも大歓迎です

4

2 に答える 2

1

rdmptnが提案したように、まずグラフを取得して画像として保存し、そこからテンプレートを使用して画像をスライドに追加しました。

だから私が取った基本的なステップは...

1) 保留中の画像を含む PowerPoint プレゼンテーションを作成します (「選択ペイン」で画像に名前を付けます)。

2) すべてのスライド パーツをコード ビハインド ループでループし、パーツの名前 (画像) が探しているチャートであるかどうかを確認します。

3) 次のコードを使用して、保持している画像をチャートの生成された画像に置き換えます (GenerateChartImage() は、生成された画像へのファイルパスを返します)。

                Using imgStream As FileStream = New FileStream(GenerateChartImage(), FileMode.Open)
                    imagePart.FeedData(imgStream)
                End Using

チャートを画像として保存する方法は次のとおりです(チャートを生成すると、プログラムでチャートが作成されます...

    Dim Chart As New RadChart()

    Dim FilePath As String = "~/Folder/" & FileName & ".jpg"
    Dim Path As String = Server.MapPath(FilePath)

    Chart = GenerateChart(Index)

    ' save the image and return the filepath
    Chart.Save(Path, System.Drawing.Imaging.ImageFormat.Jpeg)

    return Path

このトピックは非常に混乱する可能性があることを理解しているので、これが他の人の助けになることを願っています!

于 2015-10-07T08:46:15.637 に答える
0

pptx ファイルに画像を配置する方法を知っていると仮定すると (私自身は知りません)、HtmlChart から画像を取得するだけで済みます。いくつかのアプローチがあります:

  1. コントロールのエクスポートについては、次のコード ライブラリから始めてください。 http://www.telerik.com/support/code-library/exporting-radhtmlchart-to-png-and-pdf ClientExportManager コントロールの使用は非常に簡単です。

  2. これにより、既存のコードで使用できるサーバー上のチャートのイメージが提供されます。

あなたが考えることができる他のアイデア:

  • 複数のチャートを埋め込みたい場合は、最初にサービスを使用してサーバー上で多くの画像を取得できます: http://docs.telerik.com/devtools/aspnet-ajax/controls/clientexportmanager/how-to/save-exported-files

  • PhantomJS のようなツールを使用すると、サーバー上でブラウザーを実行できるため、エクスポートして埋め込むことができるグラフを生成できます。それ以外の場合は、チャートを含むページをロードするエンド ユーザー アクションが必要になります。

于 2015-10-06T13:22:58.400 に答える