使用 C# 在 Powerpoint 2013 中创建具有多个系列的图表

2024-05-07

我使用的是 VS2013 Ultimate,带有 Office 2013(已安装 PowerPoint、Excel 和 Word)。我正在用 C# 编码。

我正在使用 C# 创建 PowerPoint 演示文稿。到目前为止,我已经成功地完成了我想做的一切。但是,我在尝试创建图表时遇到问题。我的理解是Excel用于管理数据(在工作表中)。我有以下代码,它将在 PowerPoint 幻灯片中生成包含两个系列的图表。问题是“有时”图表不会添加到幻灯片中。它被添加,工作表出现,数据被修改,图表从幻灯片中消失!我还注意到有 2 个 Excel 实例启动,但我不明白为什么。有人能解释一下吗?谢谢。

public void CreateChart(PPT.Slide slide)
    {
        slide.Layout = PPT.PpSlideLayout.ppLayoutBlank;

        var chart = slide.Shapes.AddChart(XlChartType.xlLine, 10f, 10f, 900f, 400f).Chart;

        var workbook = (EXCEL.Workbook)chart.ChartData.Workbook;
        workbook.Windows.Application.Visible = true;

        var dataSheet = (EXCEL.Worksheet)workbook.Worksheets[1];
        dataSheet.Cells.ClearContents();


        dataSheet.Cells.Range["A1"].Value2 = "Bananas";
        dataSheet.Cells.Range["A2"].Value2 = "Apples";
        dataSheet.Cells.Range["A3"].Value2 = "Pears";
        dataSheet.Cells.Range["A4"].Value2 = "Oranges";
        dataSheet.Cells.Range["B1"].Value2 = "1000";
        dataSheet.Cells.Range["B2"].Value2 = "2500";
        dataSheet.Cells.Range["B3"].Value2 = "4000";
        dataSheet.Cells.Range["B4"].Value2 = "3000";

        var sc = (PPT.SeriesCollection)chart.SeriesCollection();

        do
        {
            var seriesToDelete = sc.Item(1);
            seriesToDelete.Delete();
        }
        while (sc.Count != 0);

        var series1 = sc.NewSeries();
        series1.Name = "Pauls Series";
        series1.XValues = "'Sheet1'!$A$1:$A$2";
        series1.Values = "'Sheet1'!$B$1:$B$2";
        series1.ChartType = XlChartType.xlLine;

        var series2 = sc.NewSeries();
        series2.Name = "Seans Series";
        series2.XValues = "'Sheet1'!$A$1:$A$2";
        series2.Values = "'Sheet1'!$B$3:$B$4";
        series2.ChartType = XlChartType.xlLine; 

        chart.HasTitle = true;
        chart.ChartTitle.Font.Italic = true;
        chart.ChartTitle.Text = "My First Chart!";
        chart.ChartTitle.Font.Size = 12;
        chart.ChartTitle.Font.Color = Color.Black.ToArgb();
        chart.ChartTitle.Format.Line.Visible = Microsoft.Office.Core.MsoTriState.msoTrue;
        chart.ChartTitle.Format.Line.ForeColor.RGB = Color.Black.ToArgb();

        chart.HasLegend = true;
        chart.Legend.Font.Italic = true;
        chart.Legend.Font.Size = 10;

        chart.Refresh();


    }

因此,将 Chart.refresh() 放在 Do{} 块中解决了我的问题!多么奇怪!?!

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

使用 C# 在 Powerpoint 2013 中创建具有多个系列的图表 的相关文章

  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 在Excel中,我可以使用超链接来运行vba宏吗?

    我有一个包含多行数据的电子表格 我希望能够单击一个单元格 该单元格将使用该行中的数据运行宏 由于行数总是在变化 我认为每行的超链接可能是最好的方法 ROW MeterID Lat Long ReadX ReadY ReadZ CoeffA
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • 两个日期之间的小时数在 Excel 中不起作用

    根据要求 我提供了一张简化的屏幕截图来说明该问题 如您所见 我减去了两个日期并将其格式化为 h mm ss 为什么这不能提供两个日期之间经过的总小时数 有一个更好的方法吗 下面有一个很好的答案 但我试图弄清楚为什么按照此屏幕截图中所示的方式
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 使用输入作为显示日期的基础

    我需要一种方法来使用用户窗体上的输入来确定将在输出上显示的日期 这是我的代码 If StatusBox Value lt 23 59 And ShiftCode Value AP Then Cells emptyRow 8 Value Da
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • C# - 当代表执行异步任务时,我仍然需要 System.Threading 吗?

    由于我可以使用委托执行异步操作 我怀疑在我的应用程序中使用 System Threading 的机会很小 是否存在我无法避免 System Threading 的基本情况 只是我正处于学习阶段 例子 class Program public
  • 为什么 C# 2.0 之后没有 ISO 或 ECMA 标准化?

    我已经开始学习 C 并正在寻找标准规范 但发现大于 2 0 的 C 版本并未由 ISO 或 ECMA 标准化 或者是我从 Wikipedia 收集到的 这有什么原因吗 因为编写 审查 验证 发布 处理反馈 修订 重新发布等复杂的规范文档需要
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • 我如何以更好的方式编码而不是像这样的VBA编码

    我正在 Excel 中创建一个仪表板 但是我想知道是否有比这更好的编码方式 我想对其进行模块化 而不是这样做以使其更加整洁 Private Sub Afford If af Value True Then af afr Value Shee
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • C# 中的 IPC 机制 - 用法和最佳实践

    不久前我在 Win32 代码中使用了 IPC 临界区 事件和信号量 NET环境下场景如何 是否有任何教程解释所有可用选项以及何时使用以及为什么 微软最近在IPC方面的东西是Windows 通信基础 http en wikipedia org
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • C# 中最小化字符串长度

    我想减少字符串的长度 喜欢 这串 string foo Lorem ipsum dolor sit amet consectetur adipiscing elit Aenean in vehicula nulla Phasellus li
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat

随机推荐

  • 类方法的自定义代码完成?

    在 MATLAB 中 可以定义代码建议和完成 如标题为 的文档页面中所述 自定义代码建议和完成 https www mathworks com help matlab matlab prog customize code suggestio
  • 如何从 Ant 构建文件设置 Eclipse 构建路径和类路径?

    关于 Ant 和 Eclipse 有很多讨论 但之前的答案似乎对我没有帮助 事情是这样的 我正在尝试构建一个可以从命令行使用 Ant 成功编译的 Java 程序 更令人困惑的是 我尝试编译的程序是 Ant 本身 我真正想做的是将这个项目引入
  • Android Studio 不允许我更改 SDK 位置

    我打开 Android Studio 然后我打开 SDK 管理器 我拥有最新版本 但是我的 SDK 平台需要 Android 6 0 它甚至不让我点击任何东西 在此图像中 您可以看到文本和复选框变色 我无法单击 SDK 平台内的任何内容 甚
  • 压缩 Log4j 文件

    是否可以压缩日志文件 我通过 RollingFileAppender 进行 log4j 附加功能 http logging apache org log4j extras 对此表示支持 只需将以下内容添加到您的RollingFileAppe
  • 实施策略模式的函数式方法

    我正在尝试解决一个处理从一种温度单位到另一种温度单位 摄氏度 开尔文 华氏度 转换的问题 在Java中 我需要创建一个接口并提供多个实现来封装输入类型并将结果作为输出类型的单元返回 例如开尔文到摄氏度或摄氏度到华氏度等 我已经在 scala
  • 当查询没有返回记录时,如何通过 PDO/Sqlite 获取列名?

    下面的代码允许我将 SQL 语句传递给一个类并调用其方法来显示一个漂亮的结果表 包括列名 然而 如果没有结果 我仍然想要列名要显示 很遗憾 getColumnMeta没有像我发现的其他示例中那样返回任何数据 有谁知道如何让 getColum
  • 删除超过 2 个月的分区

    我有一个基于日期字段进行分区的表 现在 我必须编写一个过程来删除所有超过 2 个月的分区 即 test date 超过 2 个月 我该怎么做 create table test table test id number test date
  • 从values() 或values_list() 中排除字段

    有没有一种有效的方法从函数中排除字段values or values list e g Videos objects filter id 1 get values 我想从此查询集中排除该字段duration 我知道我可以指定我想要在结果中包
  • 在java中获取调用层次结构

    我在追踪错误时遇到了很大的困难 了解哪个方法调用了某个方法会很有帮助 有没有一种简单的方法可以从java获取调用层次结构 Java 是应用程序的一小部分 因此我无法在 eclipse net beans 中编译和运行整个应用程序 因此我无法
  • 无法访问jsf组件中的javascript文件

    我有一个必须访问 javascript 文件的 jsf 组件 我添加了这个输出脚本 如下面的代码所示 我在生成的 html 中收到错误 并且无法访问 javascript javascript 文件位于 document root js 目
  • 类的自定义格式

    我当前正在使用 Serilog 我希望能够将一个类传递给记录器并让它在输出到文本文件之前以自定义格式记录 有点类似于格式提供者 https github com serilog serilog wiki Formatting Output
  • 在 Ubuntu 11 上的 Apache 2 上使用 virtualenv 的多个 Django 应用程序

    我已经使用以下命令成功设置了一个 Django 应用程序virtualenv在 Ubuntu 和 Apache 2 上 使用WSGIPythonHome指令指向我的virtualenv地点 现在我需要创建一个单独的 Django 应用程序
  • 使用 sidekiq 只执行众多重复作业之一?

    我有一个后台作业 在 MongoDB 上执行映射 归约作业 当用户向文档发送更多数据时 它会启动在文档上运行的后台作业 如果用户发送多个请求 它将启动同一文档的多个后台作业 但实际上只有一个需要运行 有没有办法可以防止多个重复实例 我正在考
  • 哪个更好:保留向量容量、预分配大小或在循环中推回?

    我有一个函数 它将指向 char 数组和段大小的指针作为输入参数 并调用另一个需要std array
  • Javascript Concat 多维数组

    我正在尝试连接一个多维数组 以便可以迭代并显示所有数据 有一篇关于如何访问嵌套数据的非常好的帖子here https stackoverflow com questions 11922383 access process nested ob
  • 警告:mysqli_stmt::bind_param():变量数量与准备好的语句中的参数数量不匹配[重复]

    这个问题在这里已经有答案了 我收到以下错误 Warning mysqli stmt bind param Number of variables doesn t match number of parameters in prepared
  • 如何在 JTextArea 中查找光标位置

    有人会帮我找到 JTextArea 中以像素为单位的光标位置吗 我用过txtArea getCaretPosition 但这不是我所期望的位置 实际上我想要光标位置在x y像素坐标 TextUI http download oracle c
  • Ionic Cordova Build Android 未找到已安装的构建工具

    我在 Ubuntu 16 04 上的 Android 上构建 ionic 应用程序时遇到问题 这是我为了实现这一目标所做的一步 下载Android Studio 下载Android SDK 在 bashrc 和 bash profile 中
  • Android:单击分组通知会重新启动应用程序

    我正在尝试解决我在通知方面遇到的问题 在我的应用程序中 当有人单击列表项下载文件时 我将创建一个通知 带有不确定的进度和随机生成的整数代码 在下载回调中 我使用原始通知的相同 ID 更新通知以停止进度 单击通知应该打开手机上的下载文件夹 使
  • 使用 C# 在 Powerpoint 2013 中创建具有多个系列的图表

    我使用的是 VS2013 Ultimate 带有 Office 2013 已安装 PowerPoint Excel 和 Word 我正在用 C 编码 我正在使用 C 创建 PowerPoint 演示文稿 到目前为止 我已经成功地完成了我想做