我在 c# 中构建了 excel 2016 vsto 应用程序。我有一个图表控件,想将图表类型设置为直方图。我可以从 excel 中选择此图表,但无法以编程方式设置此图表类型。
换句话说,我无法在 XlChartType 枚举中找到直方图图表类型。
最佳答案
在这种情况下,您应该始终在 excel 宏中打开对象浏览器并搜索您要查找的内容
正如您从对象浏览器中看到的那样,直方图的值是十六进制的 118
或 76
。您可以通过定义常量直接在代码中使用它
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/