首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SeriesCollection中的读/写值/XValue

SeriesCollection中的读/写值/XValue
EN

Stack Overflow用户
提问于 2021-07-19 08:28:06
回答 1查看 85关注 0票数 0

使用Interop将一个旧的VBA项目迁移到C#以操作Powerpoint,并设法复制一些旧的解决方案

我可以通过以下方式获得我的系列收藏:

NetOffice.PowerPointApi.Series test_sc = (NetOffice.PowerPointApi.Series)sh.Chart.SeriesCollection(1);

但是试图访问这些值或XValues并不像我预期的那样有效。

我可以使用以下任何一种方法获取内容

代码语言:javascript
复制
string[] arr = ((IEnumerable)test_sc.Values).Cast<object>()
                       .Select(x => x.ToString())
                       .ToArray();

代码语言:javascript
复制
foreach (object item in (Array)test_sc.Values) { var aa = item;  }

但这不能让我更新。

目前,我正在使用ChartData.WorkBook.Worksheet.Cells.get_Range机制更新基础表,但这是一个复杂的事实,因为这个系列并不总是使用工作表中的相同单元格范围,这取决于源文件,因此我不能简单地将旧的SeriesCollection1.Values 1值映射到范围“b2..m2”或其他任何东西。

1我是不是遗漏了一些显而易见的东西(c#不是我通常的平台,所以很有可能)来获得对集合的值/XValues的读/写访问权?还有更好的方法可以让我相对访问该系列所代表的底层范围吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-03-09 20:53:40

要更新值(在值轴上),您应该能够这样做,例如使用一个双数组:

代码语言:javascript
复制
double[] someNewValues = {6,3,4,7,3};
PowerPoint.Series ser = chart.SeriesCollection(1);
ser.Values=someNewValues;

根据我的经验,在类别轴(即ser.XValues)上更新值可能更棘手。如果它是一个散点图,它似乎不工作双值,但转换为浮动对我有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68437367

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档