1

私は使用するのが初めてでaspose.slides、このショットの説明にある棒グラフを作成できるかどうか疑問に思っています。

私が更新しようとしているグラフには、-100 から 100 までの y 軸と 0 の x 軸があり、棒グラフは正の側が上昇するか、負の側が下降する必要があります。

以下の通常の棒グラフのコードは次のとおりです。

// Instantiate PresentationEx class that represents PPTX file
PresentationEx pres = new PresentationEx("D:\\AsposeChart.pptx");

// Access first slide
SlideEx sld = pres.Slides[0];

// Add chart with default data
ChartEx chart = (ChartEx)sld.Shapes[0];

// Setting the index of chart data sheet 
int defaultWorksheetIndex = 0;

// Getting the chart data worksheet
ChartDataCellFactory fact = chart.ChartData.ChartDataCellFactory;

// Take first chart series
ChartSeriesEx series = chart.ChartData.Series[0];

// Now updating series data
fact.GetCell(defaultWorksheetIndex, 0, 1, "New_Series1");//modifying series name
series.Values[0].Value = 90;
series.Values[1].Value = 123;
series.Values[2].Value =44;

// Take Second chart series
series = chart.ChartData.Series[1];

// Now updating series data
fact.GetCell(defaultWorksheetIndex, 0, 2, "New_Series2");//modifying series name           
series.Values[0].Value = 23;
series.Values[1].Value = 67;
series.Values[2].Value = 99;

// Now, Adding a new series
chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 3, "Series 3"), chart.Type);

// Take 3rd chart series
series = chart.ChartData.Series[2];

// Now populating series data
series.Values.Add(fact.GetCell(defaultWorksheetIndex, 1, 3, 20));
series.Values.Add(fact.GetCell(defaultWorksheetIndex, 2, 3, 50));
series.Values.Add(fact.GetCell(defaultWorksheetIndex, 3, 3, 30));

chart.Type = ChartTypeEx.ClusteredCylinder;

// Save presentation with chart
pres.Write(@"D:\AsposeChartMoodified.pptx");
4

1 に答える 1

0

お客様の要件を確認しましたので、次のコード スニペットを使用して目的のチャートを生成できることをお知らせします。シリーズを負の領域でレンダリングできるサンプル コードを共有しました。ただし、負の値または水平スケール値より小さい値がレンダリングされると、塗りつぶしの色が削除されるという小さな問題があります。

これは、Aspose.Slides にプロパティがないことが原因であり、機能サポートを提供するために、 ID SLIDESNET-33821 (このリンクの Aspose.Slides 製品サポート フォーラムでこの問題のステータスを追跡できます) でイシューを作成しました。欠落している機能を強調する画像も共有しました。丸で囲まれた値のチェックを外すと、満たされていないシリーズの値が埋められます。私の意見では、テンプレート チャートを使用している場合、この問題は発生しない可能性があります。ただし、これは自分で確認できます。

public static void addBarChart()
{
    PresentationEx pres = new PresentationEx();
    ChartEx chart = pres.Slides[0].Shapes.AddChart(ChartTypeEx.ClusteredColumn, 20, 20, 500, 400);
    //Setting values of Y-axis or Value axis
    chart.ValueAxis.IsAutomaticMaxValue = false;
    chart.ValueAxis.IsAutomaticMinValue = false;
    chart.ValueAxis.CrossType = CrossesTypeEx.Custom;
    chart.ValueAxis.MinValue = 0;
    chart.ValueAxis.MaxValue = 400;
    chart.ValueAxis.CrossAt = 100f;

    chart.ChartData.Series.Clear();
    int defaultWorksheetIndex = 0;
    //Getting the chart data worksheet
    ChartDataCellFactory fact = chart.ChartData.ChartDataCellFactory;

    //Adding new series
    int id=chart.ChartData.Series.Add(fact.GetCell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.Type);
    ChartSeriesEx series = chart.ChartData.Series[id];


    //Now populating series data

    series.Values.Add(fact.GetCell(defaultWorksheetIndex, 1, 1, 30));
    series.Values.Add(fact.GetCell(defaultWorksheetIndex, 2, 1, 150));
    series.Values.Add(fact.GetCell(defaultWorksheetIndex, 3, 1, 320));
    series.Values.Add(fact.GetCell(defaultWorksheetIndex, 4, 1, 80));

    series.Format.Fill.FillType = FillTypeEx.Solid;
    series.Format.Fill.SolidFillColor.Color = Color.Red;
    series.IsColorVaried = false;
    pres.Write("D:\\Aspose Data\\SampleChart.pptx");

}

PS、私の名前は Nayyer です。Aspose の開発者エバンジェリストです。

于 2012-11-30T12:38:26.987 に答える