C# - 为什么直方图在 Excel 2016 中不起作用?
C# - why Histogram does not work in Excel 2016?
我有 excel 2016 vsto 应用程序构建在 c# 中。我有一个图表控件,想将图表类型设置为直方图。我可以 select 来自 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;
在向 sheet 添加直方图时,只需录制一个宏即可。
停止录制并按 Alt+F11 打开 Visual Basic 编辑器。打开重新编码的宏和 convert/compare VBA 到 C# 代码。
我有 excel 2016 vsto 应用程序构建在 c# 中。我有一个图表控件,想将图表类型设置为直方图。我可以 select 来自 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;
在向 sheet 添加直方图时,只需录制一个宏即可。
停止录制并按 Alt+F11 打开 Visual Basic 编辑器。打开重新编码的宏和 convert/compare VBA 到 C# 代码。