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

C# - why Histogram does not work in Excel 2016?

我有 excel 2016 vsto 应用程序构建在 c# 中。我有一个图表控件,想将图表类型设置为直方图。我可以 select 来自 excel 的图表,但我无法以编程方式设置此图表类型。

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

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

正如您从对象浏览器中看到的那样,直方图的值为十六进制的 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;

在向 sheet 添加直方图时,只需录制一个宏即可。

停止录制并按 Alt+F11 打开 Visual Basic 编辑器。打开重新编码的宏和 convert/compare VBA 到 C# 代码。