C# - 为什么直方图在 Excel 2016 中不起作用?

标签 c# vsto excel-charts

我在 c# 中构建了 excel 2016 vsto 应用程序。我有一个图表控件,想将图表类型设置为直方图。我可以从 excel 中选择此图表,但无法以编程方式设置此图表类型。 enter image description here

换句话说,我无法在 XlChartType 枚举中找到直方图图表类型。

最佳答案

在这种情况下,您应该始终在 excel 宏中打开对象浏览器并搜索您要查找的内容

histogram

正如您从对象浏览器中看到的那样,直方图的值是十六进制的 11876。您可以通过定义常量直接在代码中使用它

Edit-1:代码

调试下面的代码我发现了一个问题

Worksheet sheet1 = Globals.Factory.GetVstoObject(Globals.Sheet1.Application.Worksheets[1]);
//chartTest
Excel.ChartObject myChart = (Excel.ChartObject)sheet1.ChartObjects("chartTest");
myChart.Chart.SetSourceData(sheet1.Range["A1", "A51"]);
myChart.Chart.Type = 118;

您需要做的是将 118 分配给 ChartType 而不是 Type。下面的代码对我来说很好用

Worksheet sheet1 = Globals.Factory.GetVstoObject(Globals.Sheet1.Application.Worksheets[1]);
//chartTest
Excel.ChartObject myChart = (Excel.ChartObject)sheet1.ChartObjects("chartTest");
myChart.Chart.SetSourceData(sheet1.Range["A1", "A51"]);
Excel.XlChartType myType = (Excel.XlChartType)118;

myChart.Chart.ChartType = myType;

关于C# - 为什么直方图在 Excel 2016 中不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46959831/

相关文章:

c# - 使用 c# 函数交叉应用加速查询

c# - 使用 flexbox 的 3 列流体布局第 3 列向左推

c# - 如何找到覆盖多边形的圆的最小扇区?

.net - 打开位于 addin 文件夹中的 XML 文件

VBA 更新图表的源数据

c# - 是否可以重写此 C# 方法重复(Lambdas?委托(delegate)?)?

c# - Outlook 2007 加载项部署为 DLL

WPF ContextMenu 单击路由到 WinForms 应用程序

VBA循环使用另一张表中的数据更新图表中的系列

charts - Highcharts:从 Excel 重新创建具有正值和负值的堆积面积图时遇到问题