0

我正在使用 VB Net 和 Telerik 控件来构建 Web 应用程序。我有一个带有几个 ColumnChart RadHtmlCharts 的屏幕,我需要将它们放入 Code Behind 文件中的 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)在后面的代码中循环遍历所有的slideparts,检查部件(图像)的名称是否是我们正在寻找的图表

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. 这应该为您提供服务器上的图表图像,您可以在现有代码中使用它

您可以考虑的其他想法:

于 2015-10-06T13:22:58.400 回答