为Excel饼图添加数据标签

2024-01-09

我正在绘制带有一些数据的饼图:

private void DrawFractionChart(Excel.Worksheet activeSheet, Excel.ChartObjects xlCharts, Excel.Range xRange, Excel.Range yRange)
{
        Excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Add(200, 500, 200, 100);
        Excel.Chart chartPage = myChart.Chart;

        Excel.SeriesCollection seriesCollection = chartPage.SeriesCollection();
        Excel.Series series1 = seriesCollection.NewSeries();
        series1.XValues = activeSheet.Range["E1","E3"];
        series1.Values = activeSheet.Range["F1","F3"];

        chartPage.ApplyDataLabels(Excel.XlDataLabelsType.xlDataLabelsShowPercent, true,true,false,true,true,true,true);
        chartPage.ChartType = Excel.XlChartType.xlDoughnut;

        Excel.Axis axis = chartPage.Axes(Excel.XlAxisType.xlValue, Microsoft.Office.Interop.Excel.XlAxisGroup.xlPrimary) as Excel.Axis;
}

我只是不知道如何打开数据标签。我到处搜索它,但遗憾的是到目前为止没有任何帮助。


尝试这个 (久经考验)

    private void DrawFractionChart(Excel.Worksheet activeSheet, Excel.ChartObjects xlCharts, Excel.Range xRange, Excel.Range yRange)
    {
        Excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Add(200, 500, 200, 100);
        Excel.Chart chartPage = myChart.Chart;

        Excel.SeriesCollection seriesCollection = chartPage.SeriesCollection();
        Excel.Series series1 = seriesCollection.NewSeries();
        series1.XValues = activeSheet.Range["E1", "E3"];
        series1.Values = activeSheet.Range["F1", "F3"];

        chartPage.ChartType = Excel.XlChartType.xlDoughnut;

        Excel.Axis axis = chartPage.Axes(Excel.XlAxisType.xlValue, Microsoft.Office.Interop.Excel.XlAxisGroup.xlPrimary) as Excel.Axis;

        series1.ApplyDataLabels(Excel.XlDataLabelsType.xlDataLabelsShowPercent, true, true, false, true, true, true, true);
    }

不过有一个简单的问题。如果您不使用xRange and yRange那为什么还要声明呢?

这是经过尝试和测试的完整代码。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel; 

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Microsoft.Office.Interop.Excel.Application xlexcel;
            Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
            Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;

            object misValue = System.Reflection.Missing.Value;
            xlexcel = new Excel.Application();

            xlexcel.Visible = true;
            // Add a Workbook
            xlWorkBook = xlexcel.Workbooks.Add();

            // Set Sheet 1 as the sheet you want to work with
            xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

            xlWorkSheet.Cells[1, 5] = "Apples";
            xlWorkSheet.Cells[2, 5] = "Oranges";
            xlWorkSheet.Cells[3, 5] = "Pears";

            xlWorkSheet.Cells[1, 6] = "80";
            xlWorkSheet.Cells[2, 6] = "65";
            xlWorkSheet.Cells[3, 6] = "45";

            Excel.ChartObjects myCharts = (Excel.ChartObjects)xlWorkSheet.ChartObjects(Type.Missing);

            // Specified xlWorkSheet.Cells[3, 6], xlWorkSheet.Cells[3, 6] just for the heck of it.
            DrawFractionChart(xlWorkSheet, myCharts, xlWorkSheet.Cells[3, 6], xlWorkSheet.Cells[3, 6]);

            //Once done close and quit Excel
            //xlWorkBook.Close(true, misValue, misValue);
            //xlexcel.Quit();

            //releaseObject(xlWorkSheet);
            //releaseObject(xlWorkBook);
            //releaseObject(xlexcel);
        }

        private void DrawFractionChart(Excel.Worksheet activeSheet, Excel.ChartObjects xlCharts, Excel.Range xRange, Excel.Range yRange)
        {
            Excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Add(200, 500, 200, 100);
            Excel.Chart chartPage = myChart.Chart;

            Excel.SeriesCollection seriesCollection = chartPage.SeriesCollection();
            Excel.Series series1 = seriesCollection.NewSeries();
            series1.XValues = activeSheet.Range["E1", "E3"];
            series1.Values = activeSheet.Range["F1", "F3"];

            chartPage.ChartType = Excel.XlChartType.xlDoughnut;

            Excel.Axis axis = chartPage.Axes(Excel.XlAxisType.xlValue, Microsoft.Office.Interop.Excel.XlAxisGroup.xlPrimary) as Excel.Axis;

            series1.ApplyDataLabels(Excel.XlDataLabelsType.xlDataLabelsShowPercent, true, true, false, true, true, true, true);
        }

        //private void releaseObject(object obj)
        //{
        //    try
        //    {
        //        System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
        //        obj = null;
        //    }
        //    catch (Exception ex)
        //    {
        //        obj = null;
        //        MessageBox.Show("Unable to release the Object " + ex.ToString());
        //    }
        //    finally
        //    {
        //        GC.Collect();
        //    }
        //} 
    }
}

SNAPSHOT

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为Excel饼图添加数据标签 的相关文章

  • 如何检查QProcess是否正确执行?

    QProcess process sdcompare QString command sdcompare QStringList args sdcompare command sdcompare diff args sdcompare lt
  • 为 Visual Studio 2013 编译 Tesseract

    我正在尝试使用tesseract在 Visual Studio 2013 中 我在链接器 gt 输入 不是 libtesseract302 static lib 中使用 libtesseract302 lib 一切都正常 并且已编译并运行
  • 如何为 C 分配的 numpy 数组注册析构函数?

    我想在 C C 中为 numpy 数组分配数字 并将它们作为 numpy 数组传递给 python 我可以做的PyArray SimpleNewFromData http docs scipy org doc numpy reference
  • 将内置类型转换为向量

    我的 TcpClient 类接受vector
  • 在新的浏览器进程中打开 URL

    我需要在新的浏览器进程中打开 URL 当浏览器进程退出时我需要收到通知 我当前使用的代码如下 Process browser new Process browser EnableRaisingEvents true browser Star
  • 单元测试一起运行时失败,单独运行时通过

    所以我的单元测试遇到了一些问题 我不能只是将它们复制并粘贴到这里 但我会尽力而为 问题似乎是 如果我一项一项地运行测试 一切都会按预期进行 但如果我告诉它一起运行测试 则 1 5 将通过 TestMethod public void Obj
  • 如何从 .resx 文件条目获取注释

    资源文件中的字符串有名称 值和注释 The ResXResourceReader类让我可以访问名称和值 有办法看评论吗 你应该能够得到Comment via ResXDataNode class http msdn microsoft co
  • 无法在 Windows 运行时组件库的 UserControl 中创建依赖项属性

    我想在用户控件内创建数据可绑定属性 这个用户控件包含一个 Windows 运行时组件 项目 我使用下面的代码来创建属性 public MyItem CurrentItem get return MyItem GetValue Current
  • 如何将整数转换为 void 指针?

    在 C 中使用线程时 我面临警告 警告 从不同大小的整数转换为指针 代码如下 include
  • C++:.bmp 到文件中的字节数组

    是的 我已经解决了与此相关的其他问题 但我发现它们没有太大帮助 他们提供了一些帮助 但我仍然有点困惑 所以这是我需要做的 我们有一个 132x65 的屏幕 我有一个 132x65 的 bmp 我想遍历 bmp 并将其分成小的 1x8 列以获
  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做
  • 上下文敏感与歧义

    我对上下文敏感性和歧义如何相互影响感到困惑 我认为正确的是 歧义 歧义语法会导致使用左推导或右推导构建多个解析树 所有可能的语法都是二义性的语言是二义性语言 例如 C 是一种不明确的语言 因为 x y 总是可以表示两个不同的事物 如下所述
  • 如何在 Blackberry Cascades 中显示具有特定号码的电话板

    我正在使用带有 C QT 和 QML 的 Blackberry Cascades 10 Beta 3 SDK 以及 Blackberry 10 Dev Alpha Simulator 和 QNX Momentics IDE 并且我正在尝试实
  • 如何将自定义 JSON 文件添加到 IConfiguration 中?

    我正在使用 asp net Autofac 我正在尝试加载自定义 JSON 配置文件 并基于该文件创建 实例化 IConfiguration 实例 或者至少将我的文件包含到默认情况下构建的 IConfiguration asp net 中
  • HttpWebRequest 在第二次调用时超时

    为什么以下代码在第二次 及后续 运行时超时 代码挂在 using Stream objStream request GetResponse GetResponseStream 然后引发 WebException 表示请求已超时 我已经尝试过
  • 有人可以提供一个使用 Amazon Web Services 的 itemsearch 的 C# 示例吗

    我正在尝试使用 Amazon Web Services 查询艺术家和标题信息并接收回专辑封面 使用 C 我找不到任何与此接近的示例 所有在线示例都已过时 并且不适用于 AWS 的较新版本 有一个开源项目CodePlex http www c
  • 修剪工作簿中的所有单元格(VBA)

    我尝试向一直在开发的 Excel 加载项添加功能 该功能会修剪已用单元格末尾的前导空格 甚至可能解析文本 我需要这样做的原因只是为了将其变成超链接我已经在工作了 但是那部分很好 这是我到目前为止所尝试的 我已经修剪了active works
  • 线程和 fork()。我该如何处理呢? [复制]

    这个问题在这里已经有答案了 可能的重复 多线程程序中的fork https stackoverflow com questions 1235516 fork in multi threaded program 如果我有一个使用 fork 的
  • 使用 GhostScript.NET 打印 PDF DPI 打印问题

    我在用GhostScript NET http ghostscriptnet codeplex com打印 PDF 当我以 96DPI 打印时 PDF 打印效果很好 但有点模糊 如果我尝试以 600DPI 打印文档 打印的页面会被极大地放大
  • 检查Windows控制台中是否按下了键[重复]

    这个问题在这里已经有答案了 可能的重复 C 控制台键盘事件 https stackoverflow com questions 2067893 c console keyboard events 我希望 Windows 控制台程序在按下某个

随机推荐

  • Rails 在控制器中异步执行任务

    当我的路线中有一条路线时 我需要执行三项任务Controller叫做 现在我的代码看起来像这样 缩写 def set quotas TaskOne new ex TaskTwo new ex TaskThree new ex quotas
  • 如何将svn分支和标签导入git-svn?

    我有一个必须提交的中央 SVN 存储库 但我对 git 充满热情 就像我认识的任何其他开发人员一样 此案众所周知 然后我读到了 git svn 并尝试了一下 由于我不需要完整的历史记录 只需要两个月左右的时间 我确实喜欢这样 git svn
  • 如何使用 OpenCv 查找图像上的角点

    我正在尝试找到图像上的角点 我不需要轮廓 只需要 4 个角点 我将使用 4 个角来改变视角 我正在使用 Opencv 但我需要知道找到角点的步骤以及我将使用什么函数 My images will be like this without r
  • 检查 Android 设备上的 NFC 功能

    这是为了回应question https stackoverflow com questions 5805034 detecting nfc on android devices Step 1 Put this in your manife
  • Z3 对指数的支持

    我是 Z3 的新手 我试图了解它是如何工作的 以及它能做什么和不能做什么 我知道Z3至少有some通过幂 运算符支持指数 请参阅Z3py 使用 pow 函数返回未知方程 https stackoverflow com questions 3
  • 如何使用 Java 计算 Selenium WebDriver 中的 HTML 子标签数量

    在 Selenium JAVA WebDriver 中 如何计算子标签 例子 div class subcategory container div class products container div class product ro
  • MongoDB - 多对多关系?

    我很好奇如何构建一个具有多对多关系 可能有数万条记录的 MongoDB 假设您有一个餐厅数据库 可以跟踪大量餐厅以及所有入住过这些餐厅的人 因此 用户可能想要查找一个人并查看他们已签到的所有餐厅 而且还想查找一家餐厅并查看所有已签到的人 如
  • “react-native弹出”:无法识别的命令“弹出”

    我正在尝试为我的反应本机项目重新创建 ios 和 android 文件夹 据我所知 这是通过以下命令完成的 react native eject 但我收到错误 error Unrecognized command eject 我做错了什么吗
  • 从 ItemDataBound 事件中的转发器控件获取值

    如何在 ItemDataBound 事件中获取转发器控件的值 我写了下面的asp代码
  • 处理推文时使用 JSON 或正则表达式

    哪种方法更快 使用 JSON 解析器 python 2 6 或正则表达式来获取相关数据 由于数据量巨大 我认为使用一种方法与其他方法相比在时间上会有很大差异 假设你在问什么 我相信您会问 通过反序列化序列化 JSON 字符串或通过正则表达式
  • 返回 R 中别名系数的 VIF

    我想知道是否有人可以帮助我解决以下问题 当我在各种解释变量之间进行 VIF 分析时 会出现以下错误消息 test lt vif lm Spring Autumn Oct Nov Dec Jan Feb Mar Apr May Jun Jul
  • 重写 HashSet 的 Contains 方法

    有人能告诉我如何重写 HashSet 的 contains 方法以使用正则表达式匹配而不是仅使用 equals 吗 或者 如果不覆盖 我如何添加一个方法来使用正则表达式模式 基本上 我希望能够在包含字符串的 HashSet 上运行正则表达式
  • C# - 使用 HTMLAgilityPack 获取 JavaScript 变量值

    我目前有 2 个 JavaScript 变量 需要从中检索值 HTML 由一系列没有 id name 属性的嵌套 DIV 组成 是否可以使用 HTMLAgilityPack 从这些变量中检索数据 如果是这样 我将如何去做 如果不是需要什么
  • 如何在magento中添加密件抄送或抄送

    我不知道如何在以下编码中添加抄送或密件抄送 我尝试了密件抄送 但邮件无法发送 请有人帮忙 代码是 data array name gt username to user id gt to userid email gt email tele
  • 在 MyEclipse 中开发 Maven 战争应用程序值得吗?

    我的组织已做出上层决定 将 Maven 作为 Java 项目的标准构建工具 我的任务是帮助我们的本地团队将项目迁移到 Maven MyEclipse IDE 是正在发挥作用的核心工具之一 MyEclipse 似乎与 Maven 团队有着一段
  • 蟒蛇熊猫。日期对象由单独的列分割。

    我在Python pandas 中将日期写为 1 31 2010 为了应用线性回归 我想要 3 个单独的变量 天数 月数 年数 将 pandas 中包含日期的列分成 3 列的方法是什么 另一个问题是将天数相同但分为 3 组 1 10 11
  • 当测试一起运行时,所有测试中使用的外部库模拟补丁不起作用

    我正在使用 Python 的模拟库和单元测试 我正在为一个类编写单元测试 该类在其方法之一中使用外部库的函数 根据情况 该函数返回不同的值 假设我想测试 A 类 from external library import function f
  • Ubuntu 服务器上的 PHP PDO 到 MS SQL Server

    我正在尝试使用 PDO 连接到 MS SQL Server 我尝试过使用这个 db new PDO sqlsrv server server database databaseName username password 我读到不再支持 s
  • 如何将 jQuery 对象转换为字符串?

    如何将 jQuery 对象转换为字符串 我假设您需要完整的 HTML 字符串 如果是这样的话 类似这样的事情就可以解决问题 div append item of interest clone html 这有更深入的解释here http j
  • 为Excel饼图添加数据标签

    我正在绘制带有一些数据的饼图 private void DrawFractionChart Excel Worksheet activeSheet Excel ChartObjects xlCharts Excel Range xRange