如何将 Telerik RadHtmlChart 放入 PowerPoint 演示文稿

How to get Telerik RadHtmlChart into PowerPoint presentation

我正在使用 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

注意:我已经编写了一个 returns 图表的函数,我现在缺少的只是将其放入演示文稿所需的步骤。

这是我包含的 'Imports'...

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

任何帮助将不胜感激

假设您知道如何将图像放入 pptx 文件(我自己不知道),您 "only" 需要从 HtmlChart 中获取图像。有几种方法:

  1. 从以下导出控件的代码库开始:http://www.telerik.com/support/code-library/exporting-radhtmlchart-to-png-and-pdf使用 ClientExportManager 控件非常简单。

  2. 这应该会为您提供服务器上图表的图像,您可以在现有代码中使用它

您可以考虑的其他想法:

正如 rdmptn 所建议的那样,我先将图表保存为图像,然后使用模板将图像添加到幻灯片中。

所以我采取的基本步骤是...

1) 创建带有持有图像的 Powerpoint 演示文稿(通过 'Selection Pane' 命名图像)

2) 在 Code Behind 循环遍历所有幻灯片部分,检查部分名称(图像)是否是我们要查找的图表

3) 使用以下代码将保存图像替换为图表的生成图像(GenerateChartImage() returns 生成图像的文件路径)

                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

我希望这对其他人有所帮助,因为我理解这个主题可能会非常混乱!