0

私はこのコードを持っています:

private void WriteChartSheet()
{
    _xlSheetChart = (Worksheet)_xlSheets.Item[2];

    if (_xlSheetChart != null)
    {
        _xlSheetChart.Name = ProduceUsageChartSheetName;
        // Contract vs. non-Contract pie chart 
        _xlSheetChart.Cells[1, 1] = "Contracted Items";
        _xlSheetChart.Cells[1, 2] = "Non-Contracted Items";
        _xlSheetChart.Cells[2, 1] = GetContractedItemsTotal();
        _xlSheetChart.Cells[2, 2] = GetNonContractedItemsTotal();

        ChartObjects xlCharts = (ChartObjects)_xlSheetChart.ChartObjects(Type.Missing);
        ChartObject contractChartObject = xlCharts.Add(0, 0, 300, 250); // left, top, width, height
        Chart contractChart = contractChartObject.Chart;

        Range chartRange = _xlSheetChart.get_Range("A1", "B2");
        contractChart.SetSourceData(chartRange, Missing.Value);
        contractChart.ChartType = XlChartType.xlPie;  //xl3DPie;
        contractChart.ApplyDataLabels(XlDataLabelsType.xlDataLabelsShowValue, XlDataLabelsType.xlDataLabelsShowLabel, true, false, false, true, false, true);
        . . .

...次の円グラフが生成されます。

ここに画像の説明を入力

私はそれを十分に気に入っていますが、パイの部分にも値を印刷する必要があります (「契約アイテム」の部分には「$361,779」、その他の部分には適切な値など)。どうやってやるの?

4

2 に答える 2

1

C# では、"true/false" によって、表示される値が決まります。

ここから:

void ApplyDataLabels(
    XlDataLabelsType Type = XlDataLabelsType.xlDataLabelsShowValue,
    object LegendKey,
    object AutoText,
    object HasLeaderLines,
    object ShowSeriesName,
    object ShowCategoryName,
    object ShowValue,
    object ShowPercentage,
    object ShowBubbleSize,
    object Separator
)

したがって、必要に応じて と を調整しTrueますFalse

于 2015-11-20T22:28:16.853 に答える
0

バットマンの情報を実験して、私はこれを思いつきました:

contractChart.ApplyDataLabels(XlDataLabelsType.xlDataLabelsShowValue, false, true, false, false, false, true, true, false, false);

...これが生成されます:

ここに画像の説明を入力

パーセンテージに先頭の「0」を含めない方がいいと思いますが (より賢明で経済的な「45」と「55」ではなく、「045」と「055」を表示しています)、私はそれらと一緒に暮らすことができます.

于 2015-11-20T22:39:53.090 に答える