我在c#中使用excel 2016 vsto应用程序。我有一个图表控件,并希望将图表类型设置为直方图。我可以从excel中选择此图表,但我无法以编程方式设置此图表类型。
换句话说,我无法在XlChartType枚举中找到直方图图表类型。
答案 0 :(得分:3)
在这种情况下,您应该始终在excel宏中打开对象浏览器并搜索您要查找的内容
从对象浏览器中可以看到,直方图的值为十六进制的118
或76
。您可以通过定义常量
编辑-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;
答案 1 :(得分:0)
在向工作表添加直方图时,只需录制宏。
停止录制并按Alt + F11以打开Visual Basic编辑器。打开重新编码的宏并将VBA转换/比较为C#代码。