图表工作簿

从工作簿设置图表数据

Aspose.Slides提供了一些方法,可以让您读取和写入图表数据工作簿(包含用Aspose.Cells编辑的图表数据)。注意,图表数据必须以相同的方式组织,或必须具有类似于源的结构。

以下Python代码演示了一个示例操作:

import aspose.slides.charts as charts
import aspose.slides as slides

# 实例化一个表示演示文稿文件的Presentation类 
with slides.Presentation() as pres:
    chart = pres.slides[0].shapes.add_chart(charts.ChartType.BUBBLE, 50, 50, 600, 400, True)

    series = chart.chart_data.series

    series[0].labels.default_data_label_format.show_label_value_from_cell = True

    wb = chart.chart_data.chart_data_workbook

    series[0].labels[0].value_from_cell = wb.get_cell(0, "A10", "标签0单元格值")
    series[0].labels[1].value_from_cell = wb.get_cell(0, "A11", "标签1单元格值")
    series[0].labels[2].value_from_cell = wb.get_cell(0, "A12", "标签2单元格值")

    pres.save("resultchart.pptx", slides.export.SaveFormat.PPTX)

将工作簿单元格设置为图表数据标签

  1. 创建Presentation类的实例。
  2. 通过索引获取幻灯片的引用。
  3. 添加带有一些数据的气泡图表。
  4. 访问图表系列。
  5. 将工作簿单元格设置为数据标签。
  6. 保存演示文稿。

以下Python代码显示了如何将工作簿单元格设置为图表数据标签:xxx


管理工作表

以下Python代码演示了使用worksheets属性访问工作表集合的操作:

import aspose.slides.charts as charts
import aspose.slides as slides

with slides.Presentation() as pres:
   chart = pres.slides[0].shapes.add_chart(charts.ChartType.PIE, 50, 50, 400, 500)
   wb =  chart.chart_data.chart_data_workbook
   for i in range(len(wb.worksheets)):
      print(wb.worksheets[i].name)

指定数据源类型

以下Python代码显示了如何为数据源指定类型:

import aspose.slides as slides

with slides.Presentation() as pres:
    chart = pres.slides[0].shapes.add_chart(slides.charts.ChartType.COLUMN_3D, 50, 50, 600, 400, True)
    val = chart.chart_data.series[0].name

    val.data_source_type = slides.charts.DataSourceType.STRING_LITERALS
    val.data = "文本字符串"

    val = chart.chart_data.series[0].name
    val.data = chart.chart_data.chart_data_workbook.get_cell(0, "B1", "新单元格")

    pres.save("pres.pptx", slides.export.SaveFormat.PPTX)

外部工作簿

创建外部工作簿

使用**IChartData**的一些方法,您可以从头开始创建外部工作簿或使内部工作簿外部化。

以下Python代码演示了外部工作簿创建过程:

import aspose.slides.charts as charts
import aspose.slides as slides

with slides.Presentation() as pres:

    chart = pres.slides[0].shapes.add_chart(charts.ChartType.PIE, 50, 50, 500, 400)
    chart.chart_data.chart_data_workbook.clear(0)

    chart.chart_data.set_external_workbook(path + "externalWorkbook.xlsx")

    chart.chart_data.set_range("Sheet1!$A$2:$B$5")
    series = chart.chart_data.series[0]
    series.parent_series_group.is_color_varied = True
    pres.save("response2.pptx", slides.export.SaveFormat.PPTX)

设置外部工作簿

使用**chartData.set_external_workbook**方法,您可以将外部工作簿分配给图表作为其数据源。此方法还可用于更新外部工作簿的路径(如果后者已被移动)。

虽然您无法编辑存储在远程位置或资源中的工作簿中的数据,但仍然可以将这些工作簿用作外部数据源。如果提供了外部工作簿的相对路径,则会自动转换为完整路径。

以下Python代码显示了如何设置外部工作簿:

import aspose.slides.charts as charts
import aspose.slides as slides

# 文档目录的路径。
with slides.Presentation() as pres:

    chart = pres.slides[0].shapes.add_chart(charts.ChartType.PIE, 50, 50, 400, 600, False)
    chartData = chart.chart_data
                    
    chartData.set_external_workbook(path + "externalWorkbook.xlsx")
                  

    chartData.series.add(chartData.chart_data_workbook.get_cell(0, "B1"), charts.ChartType.PIE)
    chartData.series[0].data_points.add_data_point_for_pie_series(chartData.chart_data_workbook.get_cell(0, "B2"))
    chartData.series[0].data_points.add_data_point_for_pie_series(chartData.chart_data_workbook.get_cell(0, "B3"))
    chartData.series[0].data_points.add_data_point_for_pie_series(chartData.chart_data_workbook.get_cell(0, "B4"))

    chartData.categories.add(chartData.chart_data_workbook.get_cell(0, "A2"))
    chartData.categories.add(chartData.chart_data_workbook.get_cell(0, "A3"))
    chartData.categories.add(chartData.chart_data_workbook.get_cell(0, "A4"))
    pres.save("Presentation_with_externalWorkbook.pptx", slides.export.SaveFormat.PPTX)

chart_data参数(在set_external_workbook方法下)用于指定是否加载Excel工作簿。

  • chart_data值设置为false时,仅更新工作簿路径——图表数据将不会从目标工作簿加载或更新。当目标工作簿不存在或不可用时,您可能希望使用此设置。
  • chart_data值设置为true时,图表数据将从目标工作簿更新。
import aspose.slides.charts as charts
import aspose.slides as slides

with slides.Presentation() as pres:
    chart = pres.slides[0].shapes.add_chart(charts.ChartType.PIE, 50, 50, 400, 600, False)
    chartData = chart.chart_data

    chartData.set_external_workbook("http://path/doesnt/exists", False)

    pres.save("SetExternalWorkbookWithUpdateChartData.pptx", slides.export.SaveFormat.PPTX)

获取图表外部数据源工作簿路径

  1. 创建Presentation类的实例。
  2. 通过索引获取幻灯片的引用。
  3. 为图表形状创建一个对象。
  4. 创建一个表示图表数据源的源(ChartDataSourceType)类型的对象。
  5. 根据源类型与外部工作簿数据源类型相同的相关条件指定。

以下Python代码演示了该操作:

import aspose.slides.charts as charts
import aspose.slides as slides

with slides.Presentation("response2.pptx") as pres:
    chart = pres.slides[0].shapes[0]
    sourceType = chart.chart_data.data_source_type
    if sourceType == charts.ChartDataSourceType.EXTERNAL_WORKBOOK:
        print(chart.chart_data.external_workbook_path)

编辑图表数据

您可以像更改内部工作簿内容一样编辑外部工作簿中的数据。当无法加载外部工作簿时,会抛出异常。

以下Python代码是描述的过程的实现:

import aspose.slides.charts as charts
import aspose.slides as slides

with slides.Presentation(path + "presentation.pptx") as pres:
    pres.slides[0].shapes[0].chart_data.series[0].data_points[0].value.as_cell.value = 100
    pres.save("presentation_out.pptx", slides.export.SaveFormat.PPTX)